Tweets

Returns direct replies with automatic maximum coverage and pagination. A retweet ID returns replies to the original post. Complete mode adds nested replies, diagnostics, and a 424 below 80% coverage. A fully read time window returns 200. So does a post that shows none of the replies it counts, with hiddenReplies. It reads replies without a search, so q or query answers 400 before any read or charge. To search a post's replies, call GET /x/tweets/search with q=conversation_id:{id}.

get/api/v1/x/tweets/{id}/replies

Request

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

Path parameters

idstring required

Tweet ID or URL-encoded tweet URL, such as x.com/nasa/status/20. Takes x.com & twitter.com links with or without https://, www., mobile., a query or a fragment, & /i/status or /i/web/status links. Anything else gets 400 invalid_tweet_id.

Query parameters

cursorstring

Cursor from the previous response. Existing unprefixed cursors keep legacy standard behavior. Pages can be empty before more rows. Follow next_cursor. Also read as next_cursor, next_token, pagination_token or continuation_token.

afterstring

Legacy cursor alias. Prefer cursor.

mode'standard' | 'complete'

Override automatic coverage. Standard uses legacy pagination. Complete adds nested replies, diagnostics, scope, depth, and original-post controls.

limitinteger

Complete mode defaults to 25,000 combined direct & nested replies. Set another total with limit. Automatic pages accept 1-300, standard pages 1-100.

pageSizeinteger

Automatic pages accept 1-300 Tweets, standard pages 1-100. Default 20. Follow next_cursor for more pages. Its aliases are limit, count, max_results, maxItems, max_items & per_page.

scope'all' | 'direct' | 'nested'

Select all replies, direct replies, or nested replies.

maxDepthinteger

Maximum reply depth from the source post.

sort'relevance' | 'latest' | 'oldest' | 'likes'

Sorts the selected replies before limit applies. Complete mode defaults to relevance. Automatic pages list the newest first unless you set sort. Standard pages ignore it. With likes, each page is sorted by likes. A later page can hold a reply with more likes. The order is final on the last page. Latest & oldest sort every row by date. They read the whole thread first, for up to 20 s. An answer that stopped before every reply X shows sets orderPartial.

excludeOriginalAuthorboolean

Exclude replies written by the source-post author.

includeOriginalPostboolean

Include the source post and count it toward limit.

includeHiddenboolean

Complete mode only. Adds the replies the post's author hid, each with hiddenByAuthor true. They count toward limit like any reply. A paged read answers 400. Get its hidden replies from GET /x/tweets/{id}/hidden-replies.

hasMediaOnlyboolean

Only return replies containing media.

sinceTimestring

Inclusive ISO bound for Tweet creation time, such as 2026-09-25T19:20:41Z. Unix seconds also work. A time without an offset is UTC.

untilTimestring

Exclusive ISO bound for Tweet creation time. Unix seconds also work. A time without an offset is UTC.

fromUserstring

Filter by author username.

toUserstring

Filter replies sent to a username.

mentioningstring

Filter tweets mentioning a username.

languagestring

Filter by language. Its alias is lang.

sinceDatestring date

Start date in YYYY-MM-DD format, as a UTC day.

untilDatestring date

End date in YYYY-MM-DD format, as a UTC day, inclusive, so its own posts count.

mediaType'images' | 'videos' | 'gifs' | 'media' | 'links' | 'none'

Filter media. Its aliases are has_video & has_media.

minLikesinteger

Whole number from 0.

Minimum likes. Its aliases are minFaves, min_likes & min_faves.

minRetweetsinteger

Whole number from 0.

Minimum retweets threshold.

minRepliesinteger

Whole number from 0.

Minimum replies threshold.

minQuotesinteger

Whole number from 0.

Minimum quote count threshold.

minViewsinteger

Whole number from 0.

Minimum view count threshold.

minBookmarksinteger

Whole number from 0.

Minimum bookmark count threshold.

maxFavesinteger

Whole number from 0.

Maximum likes threshold. maxLikes & max_likes also work.

maxRetweetsinteger

Whole number from 0.

Maximum retweets threshold.

maxRepliesinteger

Whole number from 0.

Maximum replies threshold.

maxQuotesinteger

Whole number from 0.

Maximum quotes threshold.

blueVerifiedOnlyboolean

Only return tweets from Blue-verified authors.

sinceIdstring

Return Tweets whose IDs exceed this ID.

maxIdstring

Return Tweets at or below this ID.

withinTimestring
Example:7d

Keeps Tweets from a recent window, such as 90m or 7d. Use a whole number & s, m, h or d.

nativeRetweetsboolean

Only return native reposts.

verifiedOnlyboolean

Only return tweets from verified authors.

replies'include' | 'exclude' | 'only'

Reply mode. Exclude keeps own-thread replies.

retweets'include' | 'exclude' | 'only'

Only when the caller requests a repost mode.

quotes'include' | 'exclude' | 'only'

Only when the caller requests a quote mode.

exactPhrasestring

Match this literal phrase, including any hyphens.

excludeWordsstring

Words or quoted phrases to exclude. Separate with spaces, commas, or lines.

anyWordsstring

Words or quoted phrases where any one can match. Separate with spaces, commas, or lines.

hashtagsstring

Hashtags separated by spaces, commas, or lines.

cashtagsstring

Cashtags separated by spaces, commas, or lines.

urlstring

URL substring or domain filter.

conversationIdstring

Conversation ID filter.

inReplyToTweetIdstring

Only replies to this tweet ID.

quotesOfTweetIdstring

Only quotes of this tweet ID.

retweetsOfTweetIdstring

Only retweets of this tweet ID.

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

List of replies

filtered_countinteger

Whole number from 0.

has_next_pageboolean required
next_cursorstring required

Cursor for the next page. Send it unchanged.

readBackTostring date-time

How far back a filtered Latest search has read, in UTC. Xquik checked every newer post, so an empty page still moves this time back.

windowCompletetrue

Present on a last page whose sources all read past its start time.

searchedQuerystring

Search q as X ran it, when Xquik fixed it.

limit_reachedtrue

Present when your limit cut a complete-mode answer. The post has more replies. Raise limit to get them all.

orderPartialtrue

Present with latest or oldest sort. The read stopped before it held every reply X shows. Rows stay sorted by date, but replies may be missing between them. Retry later for a gap-free order. Complete mode and automatic pages set it alike.

hiddenRepliesinteger

Present on the last automatic page, and on a complete-mode answer without rows. X counts this many more replies but shows them to nobody. They may be hidden, protected or deleted. A retry returns the same replies.

partialBeforestring date-time

Present on an answer that lacks replies of a large thread posted before this time. X shows only part of the replies older than 7 days. A retry returns about the same replies.

messagestring

Explains an answer cut by your limit.

Example response

{
  "tweets": [
    {
      "id": "2102761519985332442",
      "text": "This galaxy is a little extra.\n\nMeet Messier 106, a spiral galaxy with an extra set of arms. These two additional arms are made of gas heated up by jets from the galaxy’s central black hole. The jets’ superheated shockwaves are depicted in royal blue by @chandraxray. https://t.co/421Lzs0r0c",
      "retweetCount": 1364,
      "replyCount": 271,
      "likeCount": 9775,
      "quoteCount": 85,
      "viewCount": 962488,
      "bookmarkCount": 599,
      "conversationId": "2102761519985332442",
      "contentDisclosure": {
        "aiGenerated": {
          "hasAiGeneratedMedia": false
        }
      },
      "displayTextRange": [
        0,
        267
      ],
      "edit": {
        "editableUntilMsecs": "1790175988000",
        "editTweetIds": [
          "2102761519985332442"
        ]
      },
      "entities": {
        "hashtags": [],
        "urls": [],
        "user_mentions": [
          {
            "id_str": "12415722",
            "indices": [
              254,
              266
            ],
            "name": "Chandra Observatory",
            "screen_name": "chandraxray"
          }
        ]
      },
      "isNoteTweet": false,
      "isPinned": false,
      "isQuoteStatus": false,
      "isReply": false,
      "isRetweet": false,
      "isTranslatable": false,
      "lang": "en",
      "possiblySensitive": false,
      "source": "<a href=\"https://www.sprinklr.com\" rel=\"nofollow\">Sprinklr</a>",
      "type": "tweet",
      "url": "https://x.com/NASA/status/2102761519985332442",
      "viewState": "EnabledWithCount",
      "createdAt": "Wed Sep 23 14:06:28 +0000 2026",
      "media": [
        {
          "altText": "A spiral galaxy, laying diagonally at a three-quarters profile view. Its center is a luminous yellow that stretches out into a pinwheel of wispy blue and red arms. The disc itself is decorated with a smattering of stars and dark dust.",
          "availabilityStatus": "Available",
          "displayUrl": "pic.x.com/421Lzs0r0c",
          "expandedUrl": "https://x.com/NASA/status/2102761519985332442/photo/1",
          "focusRects": [
            {
              "h": 1146,
              "w": 2047,
              "x": 0,
              "y": 419
            },
            {
              "h": 1565,
              "w": 1565,
              "x": 0,
              "y": 0
            },
            {
              "h": 1565,
              "w": 1373,
              "x": 0,
              "y": 0
            },
            {
              "h": 1565,
              "w": 783,
              "x": 0,
              "y": 0
            },
            {
              "h": 1565,
              "w": 2047,
              "x": 0,
              "y": 0
            }
          ],
          "height": 1565,
          "id": "2102761515958833152",
          "indices": [
            268,
            291
          ],
          "mediaKey": "3_2102761515958833152",
          "mediaUrl": "https://pbs.twimg.com/media/HS6CdTYWkAAp0e1.jpg",
          "sizes": {
            "large": {
              "h": 1565,
              "resize": "fit",
              "w": 2047
            },
            "medium": {
              "h": 917,
              "resize": "fit",
              "w": 1200
            },
            "small": {
              "h": 520,
              "resize": "fit",
              "w": 680
            },
            "thumb": {
              "h": 150,
              "resize": "crop",
              "w": 150
            }
          },
          "type": "photo",
          "url": "https://t.co/421Lzs0r0c",
          "width": 2047
        }
      ],
      "author": {
        "id": "11348282",
        "username": "NASA",
        "name": "NASA",
        "followers": 92376233,
        "following": 115,
        "verified": true,
        "isBlueVerified": true,
        "isVerified": true,
        "profilePicture": "https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB_normal.jpg",
        "coverPicture": "https://pbs.twimg.com/profile_banners/11348282/1788992290",
        "profileBannerUrl": "https://pbs.twimg.com/profile_banners/11348282/1788992290",
        "description": "Making the seemingly impossible, possible. ✨",
        "location": "Pale Blue Dot",
        "createdAt": "Wed Dec 19 20:20:32 +0000 2007",
        "statusesCount": 74336,
        "mediaCount": 28160,
        "protected": false,
        "url": "http://www.nasa.gov/",
        "favouritesCount": 17003,
        "isTranslator": false,
        "possiblySensitive": false,
        "verifiedType": "Government",
        "profile_bio": {
          "description": "Making the seemingly impossible, possible. ✨",
          "entities": {
            "description": {},
            "url": {
              "urls": [
                {
                  "display_url": "nasa.gov",
                  "expanded_url": "http://www.nasa.gov/",
                  "indices": [
                    0,
                    23
                  ],
                  "url": "https://t.co/9NkQJKAnuU"
                }
              ]
            }
          }
        },
        "hasGraduatedAccess": true,
        "parodyCommentaryFanLabel": "None",
        "profileDescriptionLanguage": "en",
        "profileImageShape": "Square",
        "profileTranslatorType": "regular",
        "superFollowEligible": false
      }
    },
    {
      "id": "2102425682286412261",
      "text": "Sept. 22 marks the fall equinox. That means day and night are nearly equal in length around the world, and in the Northern Hemisphere, fall begins. In the Southern Hemisphere, spring begins on this day. https://t.co/laEQ0JajuN",
      "retweetCount": 1258,
      "replyCount": 200,
      "likeCount": 7566,
      "quoteCount": 98,
      "viewCount": 961825,
      "bookmarkCount": 322,
      "conversationId": "2102425682286412261",
      "contentDisclosure": {
        "aiGenerated": {
          "hasAiGeneratedMedia": false
        }
      },
      "displayTextRange": [
        0,
        202
      ],
      "edit": {
        "editableUntilMsecs": "1790095918000",
        "editTweetIds": [
          "2102425682286412261"
        ]
      },
      "entities": {
        "hashtags": [],
        "urls": [],
        "user_mentions": []
      },
      "isNoteTweet": false,
      "isPinned": false,
      "isQuoteStatus": false,
      "isReply": false,
      "isRetweet": false,
      "isTranslatable": false,
      "lang": "en",
      "possiblySensitive": false,
      "source": "<a href=\"https://www.sprinklr.com\" rel=\"nofollow\">Sprinklr</a>",
      "type": "tweet",
      "url": "https://x.com/NASA/status/2102425682286412261",
      "viewState": "EnabledWithCount",
      "createdAt": "Tue Sep 22 15:51:58 +0000 2026",
      "media": [
        {
          "altText": "A satellite's-eye view from October 2022 of the Adirondack Mountains of northeast New York during fall. The leaves on trees are a fiery orange and red. Some trees remain green. White fluffy clouds are visible at the edges of the image.",
          "availabilityStatus": "Available",
          "displayUrl": "pic.x.com/laEQ0JajuN",
          "expandedUrl": "https://x.com/NASA/status/2102425682286412261/photo/1",
          "focusRects": [
            {
              "h": 1801,
              "w": 3216,
              "x": 0,
              "y": 1187
            },
            {
              "h": 2988,
              "w": 2988,
              "x": 0,
              "y": 0
            },
            {
              "h": 2988,
              "w": 2621,
              "x": 0,
              "y": 0
            },
            {
              "h": 2988,
              "w": 1494,
              "x": 0,
              "y": 0
            },
            {
              "h": 2988,
              "w": 3216,
              "x": 0,
              "y": 0
            }
          ],
          "height": 2988,
          "id": "2102425671280553984",
          "indices": [
            203,
            226
          ],
          "mediaKey": "3_2102425671280553984",
          "mediaUrl": "https://pbs.twimg.com/media/HS1RAkdW8AAY1Mp.jpg",
          "sizes": {
            "large": {
              "h": 1903,
              "resize": "fit",
              "w": 2048
            },
            "medium": {
              "h": 1115,
              "resize": "fit",
              "w": 1200
            },
            "small": {
              "h": 632,
              "resize": "fit",
              "w": 680
            },
            "thumb": {
              "h": 150,
              "resize": "crop",
              "w": 150
            }
          },
          "type": "photo",
          "url": "https://t.co/laEQ0JajuN",
          "width": 3216
        }
      ],
      "author": {
        "id": "11348282",
        "username": "NASA",
        "name": "NASA",
        "followers": 92376233,
        "following": 115,
        "verified": true,
        "isBlueVerified": true,
        "isVerified": true,
        "profilePicture": "https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB_normal.jpg",
        "coverPicture": "https://pbs.twimg.com/profile_banners/11348282/1788992290",
        "profileBannerUrl": "https://pbs.twimg.com/profile_banners/11348282/1788992290",
        "description": "Making the seemingly impossible, possible. ✨",
        "location": "Pale Blue Dot",
        "createdAt": "Wed Dec 19 20:20:32 +0000 2007",
        "statusesCount": 74336,
        "mediaCount": 28160,
        "protected": false,
        "url": "http://www.nasa.gov/",
        "favouritesCount": 17003,
        "isTranslator": false,
        "possiblySensitive": false,
        "verifiedType": "Government",
        "profile_bio": {
          "description": "Making the seemingly impossible, possible. ✨",
          "entities": {
            "description": {},
            "url": {
              "urls": [
                {
                  "display_url": "nasa.gov",
                  "expanded_url": "http://www.nasa.gov/",
                  "indices": [
                    0,
                    23
                  ],
                  "url": "https://t.co/9NkQJKAnuU"
                }
              ]
            }
          }
        },
        "hasGraduatedAccess": true,
        "parodyCommentaryFanLabel": "None",
        "profileDescriptionLanguage": "en",
        "profileImageShape": "Square",
        "profileTranslatorType": "regular",
        "superFollowEligible": false
      }
    }
  ],
  "has_next_page": true,
  "next_cursor": "DAAHCgABHTK6Vr___-sLAAIAAAATMjEwMTc3MDE4NjE1NjA1Mjk1OQgAAwAAAAIAAA",
  "filtered_count": 0
}

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

    • 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