Tweets
Twitter API get replies to a tweet & author fields
Get replies to a tweet by ID with cursors, author profiles, engagement metrics, media, and time filters. Complete mode reports coverage. 1 credit per reply.
- 200
- 400
- 401
- 402
- 404
- 409
- 410
- 424
- 429
- 502
- 503
GET
Twitter API get replies to a tweet & author fields
Repost records include
retweetedAt, the repost event’s UTC ISO 8601 timestamp. It is null when
that timestamp is unavailable. The API omits it for original posts. The nested original post keeps
its own creation date. This field does not report every account that reposted a post. Request
per-account timestamps with Get retweeters.402 insufficient_credits.
1 credit per tweet returned · All plans from $0.00012/credit · Supports guest paid reads
Omit
mode for automatic maximum coverage. Xquik combines available views
within a short request window. It keeps the existing response shape.
Pass next_cursor back unchanged as cursor. Keep the same endpoint, target,
query, and filters.after, limit, and
pageSize aliases also keep working. Billing still counts only returned rows.
Use mode=standard only to force legacy single-view pagination.
A page can be empty or underfilled. Continue while has_next_page is true.
Stop only after the response reports has_next_page=false.
First-page requests do not support Idempotency-Key retries.
Repeating a cursorless request starts a separate extraction.
Results returned by that extraction incur their normal charges.
Save each response before requesting its next page.
You cannot replay earlier or terminal responses after their cursors become unavailable.
If automatic coverage is busy, an initial request returns a standard data page.
Live coverage cursors remain atomic. Concurrent use returns
409 coverage_cursor_unavailable with exact Retry-After seconds. Wait, then
retry the same cursor once.
Repeated busy responses never authorize restarting with another cursor.
Finished, expired, superseded, or identity-mismatched cursors return
410 coverage_cursor_gone. The response omits Retry-After. Restart without
a cursor. Keep received results. Deduplicate restarted results by id.
Malformed cursors return 400 invalid_coverage_cursor. Restart without them.
Get replies by tweet ID for analysis, support, moderation, giveaways, and agents.
See reply coverage and optional fields.
Twitter API reply questions
How does the Twitter API get replies to a tweet?
Pass the original tweet’s numeric ID in the path. AutomaticpageSize accepts
1 through 300. Standard pages accept 1 through 100.
Responses include replies, author profiles & engagement counts.
Save each page & next_cursor. Continue while has_next_page is true.
A post X does not have returns 404 tweet_not_found & costs no credits.
How complete is a tweet reply collection?
Protected accounts’ replies count toward coverage but aren’t returned. X may omit deleted, hidden, or unavailable replies.mode=complete combines
timelines, rankings, cursors, hidden branches, parent windows & search.
Direct replies match inReplyToId to the source tweet.
Trust diagnostic.complete for direct coverage only. On a sinceTime or
untilTime request it means the whole window was read.
It does not prove that Xquik returned every nested reply.
Complete mode follows queued live cursors even after meeting direct coverage.
Child timelines find missing replies.
Verified reply counts & drained cursors let collection skip broader searches.
Requested limits, deadlines, and bounded collection budgets still apply.
Check strategiesAttempted for early stops.
How can a team analyze or moderate replies?
Store reply IDs, text, authors, timestamps, engagement counts & media. Create one moderation row per reply. Xquik does not infer sentiment.How can support teams receive new reply alerts?
Create an account monitor for the relevant profile. Selecttweet.reply events on the monitor and webhook. Verify every
webhook signature. Store each event ID before updating a support ticket. Replay
missed events through the events API. Poll this endpoint for conversation
backfills.
Which reply fields should applications keep?
Keep author IDs separate from usernames, which can change. SaveconversationId
and inReplyToId for thread joins. Store media URLs, engagement counts, time
filters, page size & cursors for audits & retries.
How can applications control reply API costs?
Each returned reply costs 1 credit. Direct replies use the default paid page size unless you setpageSize. Bound support periods with sinceTime and
untilTime, in Unix seconds. Use reply_extractor for fixed resultsLimit
exports.
Direct replies handoff
UseGET /x/tweets/{id}/replies for support, community, moderation, giveaway, or agent workflows.
The examples above write
JSON Lines rows with parent_tweet_id, reply_id, text, author IDs and
usernames, thread joins, media URLs, & cursors.
The moderation table below adds follower, verification, timing,
and engagement projections.
Use reply_extractor instead when a team needs
an estimate, a reusable extraction ID, stored result pages, or CSV, JSON, and XLSX
downloads after completion.
Build a reply moderation table
Store one row per reply. Keep the parent Tweet ID and conversation ID beside the reply. Support, moderation, campaign, and giveaway reviews can then reconstruct each conversation branch.Which replies endpoint?
- Use
GET /api/v1/x/tweets/{id}/repliesfor one tweet’s replies as JSON rows. - Use
reply_extractorwhen you need saved CSV, JSON, or XLSX exports. - Use
GET /api/v1/x/tweets/searchwhen you need keyword, operator, structured-filter, orqueryTypesearch. - Use
GET /api/v1/x/tweets/{id}/threadwhen you need ordered thread context around a tweet.
Path parameters
string
required
Post ID or URL-encoded post URL, such as
x.com/nasa/status/20. See path IDs.
A retweet ID returns the original post’s replies.Query parameters
string
Omit it for automatic maximum direct-reply coverage. Use
standard for
legacy pagination. Use complete for nested replies and detailed diagnostics.number
Complete mode defaults to
25000 combined direct and nested replies.
Set a smaller or larger total with limit, starting at 1.number
default:"20"
Automatic pages accept
1 through 300. Standard pages accept 1 through
100. Omit this field in complete mode. limit, count, max_results,
maxItems, max_items & per_page also work outside complete mode.string
Pass
next_cursor back unchanged. New Xquik cursors resume automatic
coverage. Existing unprefixed cursors keep legacy behavior.string
Legacy
cursor alias on automatic pages.string
Unix timestamp in seconds. Only return replies after this time.
string
Unix timestamp in seconds. Only return replies before this time. Pair with
sinceTime for closed campaign, support, or audit windows.string
In complete mode, select
all, direct, or nested replies.integer
In complete mode, set the maximum reply depth from the source post.
string
Sort by
relevance, latest, oldest, or likes. Complete mode defaults to
relevance. Automatic pages list the newest first unless you set sort.
latest & oldest sort every row by date. If some rows come from X views
without date order, the answer sets orderPartial: true.boolean
In complete mode, exclude replies from the source-post author.
boolean
In complete mode, include the source post and count it toward
limit.boolean
In complete mode, only return replies containing media.
Tweet result filters
These filters apply to automatic and standard pagination. Remove every filter before requesting complete mode.string
Filter to posts from this username. The
@ prefix is optional.string
Filter to replies directed to this username.
string
Filter to posts that mention this username.
string
Only include posts with this language code.
string
Include posts created on or after this date or timestamp.
string
Include posts up to this date or timestamp. A date is a UTC day, inclusive, so its own posts count.
string
Use
images, videos, gifs, media, links, or none.integer
Require this minimum like count.
integer
Require this minimum repost count.
integer
Require this minimum reply count.
integer
Require this minimum quote count.
integer
Require this minimum view count.
integer
Require this minimum bookmark count.
integer
Allow this maximum like count. Missing counts pass.
integer
Allow this maximum repost count. Missing counts pass.
integer
Allow this maximum reply count. Missing counts pass.
integer
Allow this maximum quote count. Missing counts pass.
boolean
When
true, only return posts from Blue-verified authors.boolean
When
true, only return posts from verified authors.string
Use
include, exclude, or only for replies.
This setting overrides includeReplies when the endpoint supports both.string
Use
include, exclude, or only for reposts.string
Match this literal phrase, including any hyphens.
string
Exclude comma-separated or whitespace-separated terms.
string
Require at least 1 comma-separated or whitespace-separated term.
string
Match these hashtags. Separate values with commas or spaces.
string
Match these cashtags. Separate values with commas or spaces.
string
Use
include, exclude, or only for quote posts.string
URL substring or domain that must appear in tweet URL entities.
string
Filter to tweets in this conversation thread.
string
Only include replies to this tweet ID.
string
Filter to quote tweets of this tweet ID.
string
Filter to retweets of this tweet ID.
string
Return Tweets whose IDs exceed this ID.
string
Return Tweets at or below this ID.
boolean
When
true, only return native reposts.string
Match Tweets from this recent window, such as
90m or 7d. Use a whole number & s, m, h or d.Headers
string
Full account key. Sessions and OAuth also work.
string
Bearer xq_your_guest_key_here for paid_reads.Response
200 OK
object[]
Array of reply tweets.
boolean
Whether more results are available.
string
Cursor for the next page.
object[]
Complete mode’s nested replies. Exclude them from direct coverage.
boolean
Present with
latest or oldest sort when some rows came from X views without date order. Rows stay sorted by date, but replies may be missing between them. Retry later for a gap-free order.object
Complete-mode coverage evidence. Omitted from standard responses.
400 Invalid tweet ID
The response usesinvalid_tweet_id. Send a post ID or post URL instead.
401 Unauthenticated
Anonymous requests getWWW-Authenticate: Bearer and a guest wallet checkout action. This is not a Payment challenge.
402 Payment required
Account keys get account options. Guest keys get guest top-up only. No checkout starts automatically. Confirm any payment action.502 X API unavailable
The read service returned an error. Retry after a short delay.429 Rate limit exceeded
You exceeded your tier rate limit. Wait for theRetry-After header before retrying.
424 Replies incomplete
Collected rows & diagnostics stay in the answer. Rows are billed as usual.recommendedFallback says what to do next. A cut at your limit returns 200
with limit_reached: true.
503 Complete reply extraction busy
Wait for theRetry-After duration before repeating complete mode.
Related. Tweet Replies Export Workflow for saved CSV, JSON, or XLSX files, Tweet Quotes, Tweet Thread, Retweeters, and Favoriters.