Articles

Get full X Article content with cover image and metadata

Changed on

Returns the full content of an X Article (long-form post) by numeric tweet ID. Returns article_not_found when the tweet is valid but is not an X Article.

get/x/articles/{tweetId}

Request

  • Base URL: https://xquik.com/api/v1
  • URL: https://xquik.com/api/v1/x/articles/{tweetId}
  • Auth: one of:
    • API key in header x-api-key
    • HTTP bearer
    • none

Path parameters

tweetIdstring required

Tweet ID of the article, 15-19 digits, or its URL-encoded tweet URL, such as x.com/nasa/status/2102882545427714266.

Query parameters

fieldsstring
Example:id,text,author.username

Fields to keep in each row, comma-separated. Use dots for nested fields, such as author.username. A list keeps the field in each item. Case & underscores do not matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics always stay. An unknown name answers 400 unknown_field with the valid names, before any read. The price stays the same. SDK row types then hold only the named fields. A longer URL fails at the edge before Xquik reads it.

omitstring
Example:entities,media

Fields to drop from each row, comma-separated. It takes the same names as fields. With fields, it drops from the kept fields. A longer URL fails at the edge before Xquik reads it.

Response

Article with author

Example response

{
  "article": {
    "articleId": "2100651802404544512",
    "title": "The Future of AI",
    "previewText": "A deep dive into the latest AI trends...",
    "summaryText": "- Pinned DMs now work on desktop.",
    "coverImageUrl": "https://pbs.twimg.com/media/example.jpg",
    "coverMedia": {},
    "metadata": {},
    "lifecycleState": {},
    "bodyText": "This is the first paragraph of the article.",
    "bodyMarkdown": "## Pinned DMs\n\n**Pinning DMs** now works on [desktop](https://x.com/discord).",
    "contents": [
      {
        "type": "paragraph",
        "tweetId": "2058951429612875794",
        "links": [
          {
            "offset": 15,
            "length": 13,
            "url": "https://x.com/discord"
          }
        ],
        "text": "This is the first paragraph of the article.",
        "url": "https://pbs.twimg.com/media/example.jpg",
        "previewUrl": "https://pbs.twimg.com/media/example.jpg",
        "width": 1200,
        "height": 675,
        "mediaType": "video",
        "caption": "Wordle is excellent because of its simplicity",
        "altText": "A chart of daily active users",
        "durationMs": 42376,
        "variants": [
          {
            "bitrate": 832000,
            "contentType": "video/mp4",
            "url": "https://video.twimg.com/ext_tw_video/1765989573685837824/pu/vid/avc1/462x360/RbrgrAMdncI-EzW7.mp4?tag=12"
          }
        ],
        "inlineStyleRanges": [
          {
            "length": 8,
            "style": "Bold"
          }
        ]
      }
    ],
    "createdAt": "2025-01-15T12:00:00Z",
    "likeCount": 150,
    "replyCount": 23,
    "quoteCount": 8,
    "retweetCount": 105,
    "bookmarkCount": 423,
    "viewCount": 5000
  },
  "author": {
    "id": "9876543210",
    "name": "Elon Musk",
    "username": "elonmusk"
  }
}

Changes

    • warning

      added the new topup_in_progress enum value to the ///// response property for the response status

    • warning

      added the new topup_in_progress enum value to the ////// response property for the response status

    • warning

      added the new topup_in_progress enum value to the / response property for the response status

    • warning

      added the new topup_in_progress enum value to the / response property for the response status

    • warning

      added the new topup_in_progress enum value to the / response property for the response status

    • warning

      added the new topup_in_progress enum value to the / response property for the response status

    • warning

      added the new topup_in_progress enum value to the / response property for the response status

    • warning

      added the new topup_in_progress enum value to the / response property for the response status

    • warning

      added the new topup_in_progress enum value to the // response property for the response status

    • warning

      added the new topup_in_progress enum value to the // response property for the response status

    • warning

      added the new topup_in_progress enum value to the // response property for the response status

    • warning

      added the new topup_in_progress enum value to the // response property for the response status

    • warning

      added the new topup_in_progress enum value to the // response property for the response status

    • warning

      added the new topup_in_progress enum value to the // response property for the response status

    • warning

      added the new topup_in_progress enum value to the ////// response property for the response status

    • warning

      added the new topup_in_progress enum value to the /////// response property for the response status

    • breaking

      added to the response body oneOf list for the response status

    • info

      the response property //// became required for the status

    • info

      the response property //// became required for the status

    • info

      the response property //// became required for the status

    • info

      the response property const value Ask the user to confirm a payment option before creating checkout. was added for the status

    • info

      removed the Ask the user to confirm a payment option before creating checkout. enum value from the //// response property for the response status

    • info

      removed the Ask the user to top up at /dashboard/account. This key cannot open checkout. enum value from the //// response property for the response status