Skip to main content
GET
/
2
/
insights
/
historical
Get historical Post insights
curl --request GET \
  --url https://api.x.com/2/insights/historical \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "errors": [
        {
          "error": "<string>",
          "tweets": [
            "<string>"
          ]
        }
      ],
      "measurement": {
        "metrics_time_series": [
          {
            "tweet_id": "1346889436626259968",
            "value": {
              "metric_values": [
                {
                  "metric_type": "<string>",
                  "metric_value": 123
                }
              ],
              "timestamp": {
                "iso8601_time": "<string>"
              }
            }
          }
        ],
        "metrics_total": [
          {
            "tweet_id": "1346889436626259968",
            "value": [
              {
                "metric_type": "<string>",
                "metric_value": 123
              }
            ]
          }
        ]
      }
    }
  ],
  "errors": [
    {
      "title": "<string>",
      "type": "<string>",
      "detail": "<string>",
      "status": 123
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.x.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Query Parameters

tweet_ids
string[]
required

List of PostIds for historical metrics.

Required array length: 1 - 25 elements

Unique identifier of this Tweet. This is returned as a string in order to avoid complications with languages and tools that cannot handle large integers.

Pattern: ^[0-9]{1,19}$
Example:
["20"]
end_time
string<date-time>
required

YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the end of the time range.

start_time
string<date-time>
required

YYYY-MM-DDTHH:mm:ssZ. The UTC timestamp representing the start of the time range.

granularity
enum<string>
required

granularity of metrics response.

Available options:
Daily,
Hourly,
Weekly,
Total
Example:

"Total"

requested_metrics
enum<string>[]
required

request metrics for historical request.

Minimum array length: 1
Available options:
AppInstallAttempts,
AppOpens,
DetailExpands,
EmailTweet,
Engagements,
Follows,
HashtagClicks,
Impressions,
Likes,
LinkClicks,
MediaEngagements,
MediaViews,
PermalinkClicks,
ProfileVisits,
QuoteTweets,
Replies,
Retweets,
UniqueVideoViews,
UrlClicks,
UserProfileClicks,
VideoCompletions,
VideoPlayed25Percent,
VideoPlayed50Percent,
VideoPlayed75Percent,
VideoStarts,
VideoViews
engagement.fields
enum<string>[]

A comma separated list of Engagement fields to display. The fields available for a Engagement object.

Minimum array length: 1
Available options:
errors,
measurement
Example:
["errors", "measurement"]

Response

The request has succeeded.

data
object[]
Minimum array length: 1
errors
object[]
Minimum array length: 1

An HTTP Problem Details object, as defined in IETF RFC 7807 (https://tools.ietf.org/html/rfc7807).