Skip to main content
GET
View quote tweets with Twitter API & author fields
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
Use this Twitter API to view quote tweets for one original tweet. Each row includes the quoting tweet’s commentary, author, engagement counts, and media attachments. The canonical route remains GET /api/v1/x/tweets/{id}/quotes.
The Node.js and Python snippets write JSON Lines quote rows plus a separate checkpoint instead of raw response pages. Persist each mapped row and the latest next_cursor so a moderation queue, campaign report, research job, or agent handoff can resume from the last completed page without duplicate rows.

Direct quote tweet handoff

Use GET /api/v1/x/tweets/{id}/quotes when a support, campaign, moderation, research, or agent workflow needs quote tweets as JSON rows. It returns one row for every quote tweet in the response. Store quoted_tweet_id, quote_id, text, author_id, author_username, author_name, author_followers, author_verified, author_profile_picture, created_at, engagement counts, media URLs, and a separate next_cursor checkpoint. Use sinceTime, untilTime, includeReplies, and tweet result filters to bound the quote set before exporting rows downstream.

Quote rows

Store tweets[] as quote tweet rows for one source tweet.

Stable upserts

Store tweets[].id as quote_id with quoted_tweet_id for idempotent imports and moderation queues.

Author joins

Store tweets[].author.id, username, name, followers, verified, and profilePicture for CRM, research, and review tools.

Engagement metrics

Store likeCount, replyCount, retweetCount, quoteCount, viewCount, and bookmarkCount when returned.

Media context

Store media[].mediaUrl, entities, quoted_tweet, and retweeted_tweet when returned to preserve attached context.

Window filters

Use sinceTime, untilTime, includeReplies, and tweet result filters to narrow campaign, support, or audit windows.

Next page

Store has_next_page and next_cursor; pass next_cursor back as cursor only when has_next_page is true.

Credit-limited pages

Use tweets.length, not a requested page size, for row counts. Low balances can return fewer rows.
Direct quote tweet reads cost 1 credit per tweet returned. Low credit balances can return fewer tweets than a full page; zero affordable results return 402 insufficient_credits.

Historical pages vs live quote alerts

Use this endpoint when you need existing quote tweets for one source tweet. Use monitors when future quote activity should arrive as stored events or signed webhook deliveries.

Historical quote pull

Call GET /x/tweets/{id}/quotes, store quote_id, and resume with next_cursor for one known source tweet.

Account quote monitor

Use POST /monitors with eventTypes: ["tweet.quote"] when one tracked account’s future quote tweets should produce events.

Keyword quote monitor

Use POST /monitors/keywords with eventTypes: ["tweet.quote"] when matching future quote tweets should produce events.

Signed webhook delivery

Use POST /webhooks with tweet.quote, verify signatures, and replay stored rows with GET /events.

Quote tweet questions

What are quote tweets?

A quote tweet is a new tweet containing commentary about an original tweet. X calls this format a Quote Post. This endpoint returns the quoting tweet, its author, and visible engagement. It never changes the original tweet.

How does a Twitter API view quote tweets?

Pass the original tweet’s numeric ID through the path. Store every returned quote_id before requesting next_cursor. Keep the original tweet ID beside each row for attribution, deduplication, and campaign reporting.

Why are some quote tweets not showing?

X controls which quote tweets each request exposes. Deleted, protected, withheld, blocked, or unavailable tweets may not appear. Filters can also remove otherwise visible rows. A missing row cannot confirm zero quote activity.

How do quote tweets differ from replies and reposts?

A quote tweet adds its author’s commentary and references the original tweet. A repost shares the original without added commentary. The replies endpoint returns tweets from the original conversation. Use retweeters for reposting profiles.

How can teams analyze quote tweets?

Store text, author, creation time, engagement counts, and media URLs. Keep the source relationship separate. Use both tweet IDs as the deduplication key. Use monitors and signed webhooks for future quote alerts.

Path parameters

string
required
Tweet ID (numeric string).

Query parameters

string
Pagination cursor from next_cursor in a previous response. Leave it empty for the initial request. Pass a cursor only when has_next_page is true.
string
Legacy pagination override. Use standard when required by an older client.
integer
Tweets per page. Range: 1-100. Defaults to 20.
string
Unix timestamp in seconds. Only return quotes after this time.
string
Unix timestamp in seconds. Only return quotes before this time.
boolean
Include reply tweets. Default: false.

Tweet result filters

These optional filters apply to tweets[] returned by this route. They keep the same quoted tweet and filter rows after each page is fetched, so selective filters can return fewer rows than an unfiltered page.
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 before this date or timestamp.
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.
string
Use include, exclude, or only for reposts.
string
Require this exact phrase.
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
Match the Tweet card name.
string
Match the source application.
string
Exclude Tweets from this source application.
string
Match latitude, longitude, and radius in X search syntax.
string
Return Tweets newer than this Tweet ID.
string
Return Tweets older than this Tweet ID.
string
Match this place name.
string
Set the radius for the near filter.
string
Match Tweets inside this recent time window.
boolean
When true, only return native reposts.
boolean
When true, enable X safe-search filtering.
boolean
When true, only return news results.

Which tweet engagement endpoint?

Quote tweets

Use GET /x/tweets/{id}/quotes for tweet rows that quote one source tweet.

Tweet replies

Use GET /x/tweets/{id}/replies when you need reply tweet rows under the source tweet.

Retweeters

Use GET /x/tweets/{id}/retweeters for user profiles that reposted one source tweet.

Tweet likers

Use GET /x/tweets/{id}/favoriters for user profiles that liked one source tweet.

Saved exports

Use Create extraction with toolType=quote_extractor when you need a saved job or CSV, JSON, or XLSX export.

Search handoff

Use Search tweets when you need keyword, operator, or structured-filter discovery across many source tweets.

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 quote tweets. Tweet object fields.
string
This value is the tweet ID.
string
This value contains the tweet text.
string
This value identifies the tweet type when available.
string
This value contains the ISO 8601 creation timestamp.
boolean
Whether this is a Note Tweet. Omitted if unavailable.
boolean
Whether the tweet is a reply. Omitted if unavailable.
string
This ID identifies the tweet receiving the reply.
string
User ID being replied to. Omitted if unavailable.
string
Username being replied to. Omitted if unavailable.
string
Conversation thread ID. Omitted if unavailable.
number
This value records the like count when available.
number
This value records the repost count when available.
number
This value records the reply count when available.
number
This value records the quote tweet count when available.
number
This value records the view count when available.
number
This value records the bookmark count when available.
string
Permalink URL on X. Omitted if unavailable.
string
The tweet’s language code appears here when X returns it.
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. Omitted if unavailable.
object
X can return paid partnership and AI-generated media labels here. Paid partnership state appears in advertising.isPaidPromotion. AI media state appears in aiGenerated.hasAiGeneratedMedia. X may omit this object.
object
Tweet author profile. Omitted if unavailable. Author object fields.
string
Author user ID.
string
Author handle without @.
string
Author display name.
number
This value records the author’s follower count when available.
boolean
Whether the author is verified. Omitted if unavailable.
string
Author profile image URL. Omitted if unavailable.
object[]
This array contains media attachments when available. Media object 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
Cursor for the next page.

401 Unauthenticated

Anonymous requests receive WWW-Authenticate: Bearer. This is not a Payment challenge.

402 Payment required

Account keys receive account options. A guest wallet receives a checkout option. Confirm any payment action.