Tweets
Search tweets
Search tweets by keyword, hashtag, or X query operator and return paginated JSON tweet data for CRM, agents, or export handoff
GET
Search tweets
Documentation Index
Fetch the complete documentation index at: https://docs.xquik.com/llms.txt
Use this file to discover all available pages before exploring further.
Requested result counts are upper bounds for paid authenticated calls. When
remaining credits cannot cover the full page or ID list, Xquik returns fewer
results. Large
limit pulls are resumable: if has_next_page is true, pass
next_cursor back as cursor with the same query, filters, queryType, and
limit. If zero paid results are affordable, it returns
402 insufficient_credits.Use Search Tweets for keyword, hashtag, operator, and filtered discovery. For
plain account timelines, call Get user timeline
(
GET /x/users/{id}/tweets). When limit is present, a bare
q=from:username with no sinceTime or untilTime is handled as a user
timeline pull and returns one bounded page.1 credit per tweet returned · All plans from $0.00012/credit
Direct API handoff
UseGET /x/tweets/search when an app, queue worker, CRM enrichment job, or
agent needs the latest matching tweets without creating a stored extraction job.
It returns paginated JSON for live search pages and app ingestion. The examples
above write JSON Lines rows with tweet fields, author ID, username, display
name, follower count, verified state, profile image URL, media, and cursor
fields so a worker can resume from the last saved next_cursor.
Use tweet_search_extractor instead when a team
needs an estimate, extraction ID, saved result pages, or CSV, JSON, and XLSX
downloads after completion.
Live search page
Call
GET /x/tweets/search with q, filters, queryType, limit, and
cursor for low-latency JSON rows.Saved export job
Run
tweet_search_extractor for estimates, job status, stored pages, and
downloadable files.limit pulls, treat limit as a batch-size upper bound. If the
response returns fewer tweets than limit and has_next_page is true, store
next_cursor and continue with the same q, structured filters, queryType,
and limit plus cursor.
For bounded limit requests, q=from:username with no sinceTime or
untilTime is treated as a user timeline pull and returns a single page with
has_next_page: false. Add another search term, use the fromUser structured
filter with a keyword, or include sinceTime or untilTime when you need
search pagination for that user.
For CSV or XLSX output, project the returned tweets[] rows locally or use
tweet_search_extractor for saved CSV, JSON, or
XLSX files.
Tweet rows
Store
tweets[] as the matching tweet rows for app ingestion, analyst export, or retrieval.Tweet keys
Store
tweets[].id as the stable tweet key for dedupe, CRM notes, queues, and follow-up lookups.Search context
Store
tweets[].text and tweets[].createdAt for search hit context and time ordering.Author joins
Store
tweets[].author.id, tweets[].author.username, tweets[].author.name,
tweets[].author.followers, tweets[].author.verified, and
tweets[].author.profilePicture for author joins and enrichment.Scoring fields
Store engagement counts for scoring, routing, and prioritization.
Relationship context
Store
tweets[].media, quoted_tweet, and retweeted_tweet to preserve attached media and relationship context when available.Next page
Store
has_next_page and next_cursor as the cursor handoff. For bounded
limit batches, keep the same query, filters, queryType, and limit
when resuming.File exports
Use
tweet_search_extractor when the output must be saved CSV, JSON, or XLSX.limit is an upper bound from 1 to 200 for a bounded request. Omit it for a
simple cursor-driven page loop. When a bounded request returns
has_next_page: true, continue by sending the same q, filters, queryType,
and limit with cursor set to next_cursor. This can happen when the route
returns a partial batch before reaching limit.
Tweet search costs 1 credit per tweet returned. Low credit balances can return fewer tweets than limit; zero affordable results return 402 insufficient_credits. Retry 429 with the Retry-After header, and retry 424 or 502 after a short backoff.
Query parameters
Search query. Supports X search operators such as
from:username, to:username, #hashtag, and boolean operators.Sort order for search results.
Top returns most relevant tweets, Latest returns most recent. Defaults to Latest.Pagination cursor. Pass the
next_cursor value from the previous response to fetch the next page.Filter tweets published after this date. Uses X search
since: operator format (e.g. 2026-03-01).Filter tweets published before this date. Uses X search
until: operator format (e.g. 2026-03-27).Maximum number of tweets to collect in one bounded request (1-200). If the
response includes
has_next_page: true, keep the same limit when continuing
with cursor.Structured filters
Structured filters are part of the public Search Tweets API. Xquik converts them into X search operators before fetching results, then filters returned rows again when the response fields are available. Keep the same filters on every cursor request.Filter to tweets authored by this username. The
@ prefix is optional.Filter to replies directed to this username.
Filter to tweets that mention this username.
Filter by tweet language code, such as
en, tr, or es.Filter to tweets created on or after this date or timestamp.
Filter to tweets created before this date or timestamp. A
YYYY-MM-DD value includes the whole day before the boundary.Filter by attached media or links. Values:
images, videos, gifs, media, links, none.Minimum like count.
Minimum retweet count.
Minimum reply count.
Minimum quote count.
When
true, only return tweets from verified authors.Reply mode. Values:
include, exclude, only.Retweet mode. Values:
include, exclude, only.Quote mode. Values:
include, exclude, only.Exact text that must appear in the tweet.
Words or quoted phrases to exclude from returned tweets. Separate with spaces, commas, or lines.
Words or quoted phrases where at least 1 term must appear in the tweet. Separate with spaces, commas, or lines.
Hashtags to match. Separate with spaces, commas, or lines. The
# prefix is optional.Cashtags to match. Separate with spaces, commas, or lines. The
$ prefix is optional.URL substring or domain that must appear in tweet URL entities.
Filter to tweets in this conversation thread.
Filter to replies to this tweet ID.
Filter to quote tweets of this tweet ID.
Filter to retweets of this tweet ID.
Search-only operators
These query parameters apply only toGET /x/tweets/search because they map to
search operators before the request runs. Use advancedQuery only when you
already have trusted raw X search operator syntax to append.
Search within this X List ID.
Search within this X place ID.
Search within this country code.
Geo point radius in X search syntax, such as
-73.99 40.73 25mi.Geo bounding box in X search syntax, such as
-74.1 40.6 -73.9 40.8.Raw X search operators appended to the final search query.
Headers
Your API key. Session cookie authentication is also supported.
Response
- 200 OK
- 400 Missing query
- 401 Unauthenticated
- 402 Subscription required
- 429 Rate Limit Exceeded
- 424 Dependency Failed
Next steps: Tweet Search Export Workflow when you need saved CSV, JSON, or XLSX files, Get Tweet to fetch full details for a specific tweet, or Get User to look up an author profile.
Last modified on May 25, 2026
Search tweets