Tweets

Search tweets with minLikes, normalized likeCount, media & cursors

Changed on

Tweets include authors, like counts, media, URLs & cursors. Omit mode for maximum coverage. Reuse next_cursor with unchanged filters.

get/x/tweets/search

Request

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

Query parameters

qstring required

Query, Tweet ID, or URL. Alias query. Hyphens negate terms. Use exactPhrase for literals. from: & -from: take a handle or a user ID, also in an OR group. Valid bounds apply per page. since: & until: dates are UTC days, written YYYY-MM-DD. 25/12/2026 & 12/25/2026 also work, since each has 1 reading. 04/01/2026 has 2 & answers 424 with the form to write. since_time: & until_time: take Unix seconds or an ISO 8601 time. list: takes a public List's ID. A private List answers 404 list_not_found. X searches up to 512 characters. A longer query answers 424 before any read, unless a term of its first OR group fits alone. When each OR alternative has -filter:replies, Xquik drops every reply X sends. Dropped replies cost nothing.

queryTypestring

Latest lists posts newest first. Top keeps X's engagement ranking within each read. Xquik reads several of X's views, so a later page can hold a post X ranks higher. Top skips posts X shows above a ranked reply that cannot match the query. They cost nothing. Any case works. Photos, Videos & Media read Latest with mediaType images, videos or media, unless mediaType is set. People & Lists answer 400 & point to /x/users/search & /x/lists/search. Aliases result_type, sort_order, type, search_type, product, category & section.

mode'standard' | 'coverage'

Omit mode for resumable maximum coverage. Standard keeps legacy pagination. Coverage returns diagnostics once and rejects cursors.

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.

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.

limitinteger

Most unique matches to return after filtering. Default 20. Explicit coverage defaults to 2000. At the deadline it returns kept rows & diagnostics. Xquik bills only returned rows. A low credit balance can cut results. A balance that covers 0 rows returns 402. Its aliases are pageSize, count, max_results, maxItems, max_items & per_page.

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 as a UTC day, written YYYY-MM-DD. 25/12/2026 & 12/25/2026 also work, since each has 1 reading. A date that fits both orders reads month first, so 04/01/2026 is 1 April.

untilDatestring date

End date as a UTC day, inclusive, so its own posts count. It takes the same date forms as sinceDate.

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.

cardNamestring

Keep only Tweets with this card type, such as poll2choice_text_only. Tweet search checks each Tweet's card.

sourcestring

X search no longer supports source. A Tweet search with it answers 424 & charges nothing.

excludeSourcestring

X search no longer supports excludeSource. A Tweet search with it answers 424 & charges nothing.

geocodestring

X search no longer supports geocode. A Tweet search with it answers 424 & charges nothing.

sinceIdstring

Return Tweets whose IDs exceed this ID.

maxIdstring

Return Tweets at or below this ID.

nearstring

A place name. A country, such as United States, works like placeCountry & keeps Tweets tagged there. A city keeps Tweets about it.

withinstring

X search no longer supports within. A Tweet search with it answers 424 & charges nothing. Use near alone.

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.

safeboolean

Enable the safe-search filter.

newsboolean

X no longer searches filter:news.

verifiedOnlyboolean

Only return tweets from verified authors.

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

Reply mode. Exclude drops every reply, own-thread replies too.

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.

keywordsstring

Words the Tweets must match, in X search syntax.

listIdstring

Search within a list ID.

placestring

Search within a place ID.

placeCountrystring

Search within a country code.

pointRadiusstring

Geo point radius, such as -73.99 40.73 25mi.

boundingBoxstring

Geo bounding box, such as -74.1 40.6 -73.9 40.8.

advancedQuerystring

Raw advanced search query appended as-is.

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

Search results

OR

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

    • info

      added the optional property ////////////// to the response with the status

    • info

      added the optional property //////////////// to the response with the status

    • info

      added the optional property //////////////// to the response with the status

    • info

      added the optional property //////////////// to the response with the status

    • info

      added the optional property ////////////////// to the response with the status

    • info

      added the optional property //////////////////// to the response with the status

    • info

      added the optional property //////////////////// to the response with the status

    • info

      added the optional property //////////////////// to the response with the 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