Skip to main content
GET
Twitter Replies Scraper & Profile Timeline

Choose Replies By Default

Use this route when replies must appear by default. It can include parent context for each reply row. Use the standard user timeline when original posts are the primary target.
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. If zero paid results are affordable, it returns 402 insufficient_credits.
1 credit per tweet returned · All plans from $0.00012/credit · Supports guest paid reads
Get user replies timeline is the dedicated With Replies endpoint for one public X profile. Use it when replies must be included by default instead of adding includeReplies=true to GET /api/v1/x/users/{id}/tweets.

User replies handoff

Use GET /x/users/{id}/replies when a support queue, community workflow, research job, or agent needs a profile’s With Replies timeline. This endpoint accepts either a username or numeric user ID, includes replies by default, and returns one JSON page at a time. Store source_user_id_or_username, tweet_id, text, author fields, created_at, reply context, conversation_id, engagement counts, media_urls, page_cursor, has_next_page, and next_cursor. Treat next_cursor as opaque and pass it back as cursor only when has_next_page is true.

Build a With Replies sync

Use these checkpoints when a timeline sync needs reply rows, parent context, and resumable cursor state.

Dedicated replies route

Call GET /x/users/{id}/replies when every page should include replies by default.

Parent context

Set includeParentTweet=true when reply rows need the parent tweet for triage, moderation, or conversation joins.

Route chooser

Use Get user timeline when replies are optional. Use this route when replies are required.

Cursor checkpoint

Persist page_cursor, next_cursor, and has_next_page before requesting another page.

Which timeline endpoint?

  • Use GET /api/v1/x/users/{id}/replies for one user’s With Replies timeline. Replies are included by default.
  • Use GET /api/v1/x/users/{id}/tweets for one user’s profile timeline when replies are optional or should be excluded by default.
  • Add includeParentTweet=true when reply rows need parent tweet context.
  • Use GET /api/v1/x/users/{id}/media when every returned row should contain profile media.
  • Use GET /api/v1/x/tweets/{id}/replies for replies under one specific tweet.

Build a profile reply archive

Use this route to collect replies authored by one profile. Preserve the source profile ID with every reply. Also preserve the replied-to tweet ID when available. Useful reply columns include:
  • Reply tweet ID, text, and creation time.
  • Author username and numeric user ID.
  • Parent or conversation identifiers.
  • Like, reply, repost, quote, and view counts.
  • Media URLs, cursor, and collection time.
Use reply rows for support review, conversation research, or approved archiving. Do not merge them into original posts without a clear reply flag. Deduplicate by reply tweet ID. Save every page before advancing its cursor. New replies can shift the first page between runs. Use tweet replies to inspect replies under one specific tweet. Use user tweets for a profile timeline. Those routes begin from different targets.

Path parameters

string
required
X username or numeric user ID. Use a username such as elonmusk when the profile handle is known, or a numeric ID such as 44196397 when you store stable user IDs.

Query parameters

string
Pagination cursor for the With Replies timeline. Omit it for the first page, then pass the next_cursor value from the previous response to fetch the next page.
boolean
default:"false"
Include parent tweet context for returned replies. Defaults to false; set it to true when replies need conversation context.

Tweet result filters

These optional filters apply to tweets[] returned by this route. They keep the same user target and filter rows after each page is fetched, so selective filters can return fewer rows than an unfiltered page.
string
Filter to tweets authored by this username. The @ prefix is optional.
string
Filter to replies directed to this username.
string
Filter to tweets that mention this username.
string
Only include tweets with this language code, such as en, tr, or es.
string
Filter to tweets created on or after this date or timestamp.
string
Filter to tweets created before this date or timestamp. A YYYY-MM-DD value includes the whole day before the boundary.
string
Filter by attached media or links. Values: images, videos, gifs, media, links, none.
integer
Only include tweets meeting this minimum like count.
integer
Only include tweets meeting this minimum repost count.
integer
Minimum reply count.
integer
Minimum quote count.
boolean
When true, only return tweets from verified authors.
string
Set include, exclude, or only for reply tweets.
string
Set include, exclude, or only for reposts.
string
Set include, exclude, or only for quote tweets.
string
Exact text that must appear in the tweet.
string
Words or quoted phrases to exclude from returned tweets. Use commas or whitespace between values.
string
Words or quoted phrases where at least 1 term must appear. Use commas or whitespace between values.
string
Only include tweets matching these hashtags. Use commas or whitespace between values. The # prefix is optional.
string
Only include tweets matching these cashtags. Use commas or whitespace between values. The $ prefix is optional.
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.

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 tweets from the user’s With Replies timeline. Tweet object fields:
string
Tweet ID.
string
Tweet text content.
string
Tweet type. Omitted if unavailable.
string
ISO 8601 creation timestamp. Omitted if unavailable.
boolean
Whether this is a Note Tweet (long-form post). Omitted if unavailable.
number
Like count. Omitted if unavailable.
number
Retweet count. Omitted if unavailable.
number
Reply count. Omitted if unavailable.
number
Quote tweet count. Omitted if unavailable.
number
View count. Omitted if unavailable.
number
Bookmark count. Omitted if unavailable.
string
Permalink URL on X. Omitted if unavailable.
string
Tweet language code. Omitted if unavailable.
boolean
Whether the tweet is a reply. Omitted if unavailable.
string
Tweet ID being replied to. Omitted if not a reply.
string
User ID being replied to. Omitted if not a reply.
string
Username being replied to. Omitted if not a reply.
string
Conversation thread ID. Omitted if unavailable.
string
Client used to post the tweet. Omitted if unavailable.
number[]
Start and end offsets for rendered tweet text. Omitted if unavailable.
boolean
Whether replies are limited. Omitted if unavailable.
boolean
Whether this tweet quotes another tweet. Omitted if unavailable.
object
Parsed entities (URLs, hashtags, mentions). Omitted if unavailable.
object
Disclosure metadata for paid partnership and AI-generated media labels. Includes advertising.isPaidPromotion and aiGenerated.hasAiGeneratedMedia when X returns them. Omitted if unavailable.
object
Tweet author profile. Omitted if unavailable. Author object fields:
string
Author user ID.
string
Author X username.
string
Author display name.
number
Follower count. Omitted if unavailable.
boolean
Whether the author is verified. Omitted if unavailable.
string
Profile picture URL. Omitted if unavailable.
object[]
Media attachments. Omitted if unavailable. Media item fields:
string
Direct media URL.
object[]
Available video renditions with bitrate, content type, and URL. Omitted for images.
string
Media type.
string
Shortened URL from the tweet text.
object
Embedded quoted tweet. Omitted if not a quote tweet.
object
Original retweeted tweet. Omitted if not a retweet.
boolean
Whether more results are available.
string
Opaque cursor for the next page. Empty string when no more results.

400 Invalid user ID

The user ID is empty or invalid.

404 User not found

401 Unauthenticated

Anonymous requests get WWW-Authenticate: Bearer and a guest wallet checkout action. This is not a Payment challenge.
Missing or invalid API key.

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

Your tier rate limit was exceeded. Wait for the Retry-After header before retrying.

424 Dependency Failed

The normalized v1 response contract can return 424 when the read service is unavailable.