Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/xquik-api-tweets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Xquik Tweets API
version: '1.0'
description: "Xquik is an independent third-party service. Not affiliated with X Corp. \"Twitter\" and \"X\" are trademarks of X Corp. Look up tweets, users, and X trends. Search tweets, check follow relationships, download media, and monitor accounts. 33 paid-read endpoints accept prepaid credits without a subscription. 7 fixed-price lookups also accept direct MPP payments. Write and automation endpoints require an API key or OAuth 2.1 bearer token.\n\n## Xquik SDKs\n\nStainless generates each SDK from this OpenAPI schema. Pick a language:\n\n- TypeScript / Node.js: `npm i x-twitter-scraper` -\n [Xquik-dev/x-twitter-scraper-typescript](https://github.com/Xquik-dev/x-twitter-scraper-typescript)\n\n- Python: `pip install x-twitter-scraper` -\n [Xquik-dev/x-twitter-scraper-python](https://github.com/Xquik-dev/x-twitter-scraper-python)\n\n- Go: `go get github.com/Xquik-dev/x-twitter-scraper-go` -\n [Xquik-dev/x-twitter-scraper-go](https://github.com/Xquik-dev/x-twitter-scraper-go)\n\n- Ruby: `gem install x-twitter-scraper` -\n [Xquik-dev/x-twitter-scraper-ruby](https://github.com/Xquik-dev/x-twitter-scraper-ruby)\n\n- Java (source build; Maven Central pending) -\n [Xquik-dev/x-twitter-scraper-java](https://github.com/Xquik-dev/x-twitter-scraper-java)\n\n- Kotlin (source build; Maven Central pending) -\n [Xquik-dev/x-twitter-scraper-kotlin](https://github.com/Xquik-dev/x-twitter-scraper-kotlin)\n\n- C# / .NET: `dotnet add package XTwitterScraper` -\n [Xquik-dev/x-twitter-scraper-csharp](https://github.com/Xquik-dev/x-twitter-scraper-csharp)\n\n- PHP: `composer require xquik/x-twitter-scraper` -\n [Xquik-dev/x-twitter-scraper-php](https://github.com/Xquik-dev/x-twitter-scraper-php)\n\n- CLI: `go install github.com/Xquik-dev/x-twitter-scraper-cli/cmd/x-twitter-scraper@latest` -\n [Xquik-dev/x-twitter-scraper-cli](https://github.com/Xquik-dev/x-twitter-scraper-cli)\n\n- Terraform Provider (Terraform Registry) -\n [Xquik-dev/terraform-provider-x-twitter-scraper](https://github.com/Xquik-dev/terraform-provider-x-twitter-scraper)\n\n\nOpenClaw plugin: [Xquik-dev/tweetclaw](https://github.com/Xquik-dev/tweetclaw) (`openclaw plugins install clawhub:@xquik/tweetclaw`)."
x-guidance: '## Common tasks
**Find a tweet** - GET /x/tweets/{id} with a numeric tweet ID. Returns full tweet data: text, author, metrics (likes, retweets, replies, views), media URLs, and creation timestamp. Cost: $0.00015 per lookup.
**Search tweets** - GET /x/tweets/search?q={query}&limit={n}. Supports X search operators, structured filters like fromUser, mediaType, minFaves, hashtags, and verifiedOnly, plus exact lookup for a pasted Tweet ID or X status URL. Plain from:user date windows are optimized for timeline completeness. Returns up to 200 tweets per page with cursor-based pagination. Cost: $0.00015 per tweet returned.
**Find a user** - GET /x/users/{id} where {id} is a numeric user ID or @username. Returns profile data: name, bio, follower/following counts, verification status, join date. Cost: $0.00015 per lookup.
**Check if A follows B** - GET /x/followers/check?source={a}&target={b} where source and target are usernames, @usernames, or X or Twitter profile URLs. Cost: $0.00075.
**Get trending topics** - GET /trends?woeid={region}&count={n}. WOEID 1 = worldwide, 23424977 = US, 23424975 = UK, 23424969 = Turkey. Cost: $0.00045.
**Download media** - POST /x/media/download with {"tweetIds": ["123", "456"]} body. Returns download URLs for images and videos. Cost: 1 credit per fresh tweet processed with media; cached repeat downloads are free.
**Read an article** - GET /x/articles/{tweetId} for long-form X Articles. Returns full article HTML, cover image, and metadata. Cost: $0.00075.
## Pagination
Default v1 responses keep their existing pagination fields for compatibility. Platform list endpoints return `hasMore` and `nextCursor`; X data endpoints return `has_next_page` and `next_cursor`. Send `xquik-api-contract: 2026-04-29` to receive the unified best-practice fields `has_more` and `next_cursor`. Pass the cursor back as `?cursor={cursor}`; legacy `?after={cursor}` still works. Dynamic-priced endpoints charge per item returned, not per request.
## Authentication
Eligible paid read endpoints accept accountless prepaid credit wallets. Fixed-price lookups also accept direct MPP payments. Media downloads, write endpoints, and automation features require authentication. Send an Xquik API key through `x-api-key`, `Xquik-Api-Key`, or `Authorization: Bearer xq_...`. Send an OAuth 2.1 access token through `Authorization: Bearer`.
## Best-Practice Response Contract
v1 keeps its original response contract by default so existing integrations do not break. Send `xquik-api-contract: 2026-04-29` to opt in to the best-practice contract: snake_case response fields, Unix timestamps in seconds, structured error objects, `has_more` and `next_cursor` pagination fields, `object` resource identifiers, and prefixed IDs where available. Dependency failures that returned 502 in default v1 return 424 in the opt-in contract. Future major API versions should make this contract the default.'
contact:
name: Xquik
url: https://xquik.com
email: support@xquik.com
servers:
- url: https://xquik.com
security:
- apiKey: []
- oauthBearer: []
tags:
- name: Tweets
description: Look up, search, and analyze individual tweets
paths:
/api/v1/x/tweets:
get:
operationId: getBatchTweets
summary: Get multiple tweets by IDs
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
- {}
parameters:
- name: ids
in: query
required: true
schema:
type: string
description: Comma-separated tweet IDs (max 100)
responses:
'200':
description: List of tweets
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTweets'
example:
tweets:
- id: '1234567890'
text: Just launched our new feature!
createdAt: '2025-01-15T12:00:00Z'
likeCount: 42
retweetCount: 5
replyCount: 3
quoteCount: 1
viewCount: 1500
bookmarkCount: 2
author:
id: '9876543210'
username: elonmusk
name: Elon Musk
verified: true
has_next_page: true
next_cursor: DAACCgACGRElMJcAAA
'400':
$ref: '#/components/responses/InvalidInput'
'401':
$ref: '#/components/responses/AnonymousGuestAuthenticationRequired'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/XApiError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
description: Get multiple tweets by IDs.
/api/v1/x/tweets/search:
get:
operationId: searchTweets
summary: Search tweets by query, Tweet ID, X status URL, or account date window
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
- {}
parameters:
- name: q
in: query
required: true
schema:
type: string
description: Search query (keywords,
- name: queryType
in: query
required: false
schema:
type: string
enum:
- Latest
- Top
default: Latest
description: Sort order - Latest (chronological) or Top (engagement-ranked)
- name: cursor
in: query
schema:
type: string
description: Pagination cursor from previous response
- name: sinceTime
in: query
schema:
type: string
description: ISO 8601 timestamp - only return tweets after this time
- name: untilTime
in: query
schema:
type: string
description: ISO 8601 timestamp - only return tweets before this time
- name: limit
in: query
required: false
schema:
type: integer
default: 20
maximum: 200
description: 'Max tweets to return (server paginates internally). Omit for single page (~20). This is an upper bound for paid authenticated calls: remaining credits can reduce the returned page size, and zero affordable results returns 402 insufficient_credits.
'
- $ref: '#/components/parameters/TweetFilterFromUser'
- $ref: '#/components/parameters/TweetFilterToUser'
- $ref: '#/components/parameters/TweetFilterMentioning'
- $ref: '#/components/parameters/TweetFilterLanguage'
- $ref: '#/components/parameters/TweetFilterSinceDate'
- $ref: '#/components/parameters/TweetFilterUntilDate'
- $ref: '#/components/parameters/TweetFilterMediaType'
- $ref: '#/components/parameters/TweetFilterMinFaves'
- $ref: '#/components/parameters/TweetFilterMinRetweets'
- $ref: '#/components/parameters/TweetFilterMinReplies'
- $ref: '#/components/parameters/TweetFilterMinQuotes'
- $ref: '#/components/parameters/TweetFilterVerifiedOnly'
- $ref: '#/components/parameters/TweetFilterReplies'
- $ref: '#/components/parameters/TweetFilterRetweets'
- $ref: '#/components/parameters/TweetFilterQuotes'
- $ref: '#/components/parameters/TweetFilterExactPhrase'
- $ref: '#/components/parameters/TweetFilterExcludeWords'
- $ref: '#/components/parameters/TweetFilterAnyWords'
- $ref: '#/components/parameters/TweetFilterHashtags'
- $ref: '#/components/parameters/TweetFilterCashtags'
- $ref: '#/components/parameters/TweetFilterUrl'
- $ref: '#/components/parameters/TweetFilterConversationId'
- $ref: '#/components/parameters/TweetFilterInReplyToTweetId'
- $ref: '#/components/parameters/TweetFilterQuotesOfTweetId'
- $ref: '#/components/parameters/TweetFilterRetweetsOfTweetId'
- $ref: '#/components/parameters/TweetSearchListId'
- $ref: '#/components/parameters/TweetSearchPlace'
- $ref: '#/components/parameters/TweetSearchPlaceCountry'
- $ref: '#/components/parameters/TweetSearchPointRadius'
- $ref: '#/components/parameters/TweetSearchBoundingBox'
- $ref: '#/components/parameters/TweetSearchAdvancedQuery'
responses:
'200':
description: Search results
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTweets'
example:
tweets:
- id: '1234567890'
text: Just launched our new feature!
createdAt: '2025-01-15T12:00:00Z'
likeCount: 42
retweetCount: 5
replyCount: 3
quoteCount: 1
viewCount: 1500
bookmarkCount: 2
author:
id: '9876543210'
username: elonmusk
name: Elon Musk
verified: true
has_next_page: true
next_cursor: DAACCgACGRElMJcAAA
'400':
description: Missing query
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: missing_query
'401':
$ref: '#/components/responses/AnonymousGuestAuthenticationRequired'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/XApiError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
description: Search tweets by query, Tweet ID, X status URL, or account date window.
/api/v1/x/tweets/{id}:
get:
operationId: lookupTweet
summary: Get tweet with full text, author, metrics and media
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
- {}
x-payment-info:
offers:
- amount: '150'
currency: '0x20c000000000000000000000b9537d11c60e8b50'
intent: charge
method: tempo
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Numeric tweet ID, 15-20 digits
responses:
'200':
description: Tweet with author
content:
application/json:
schema:
type: object
required:
- tweet
properties:
tweet:
$ref: '#/components/schemas/TweetDetail'
author:
$ref: '#/components/schemas/TweetAuthor'
example:
id: '9876543210'
username: elonmusk
name: Elon Musk
followers: 150000000
verified: true
example:
tweet:
id: '1234567890'
text: Just launched our new feature!
createdAt: '2025-01-15T12:00:00Z'
retweetCount: 5
replyCount: 3
likeCount: 42
quoteCount: 1
viewCount: 1500
bookmarkCount: 2
author:
id: '9876543210'
username: elonmusk
name: Elon Musk
followers: 150000000
verified: true
'400':
$ref: '#/components/responses/InvalidInput'
'401':
$ref: '#/components/responses/Unauthenticated'
'402':
$ref: '#/components/responses/PaymentRequired'
'404':
description: Tweet not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: tweet_not_found
message: Tweet not found. Check the tweet ID.
'424':
$ref: '#/components/responses/XApiError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
description: Get tweet with full text, author, metrics and media.
/api/v1/x/tweets/{id}/favoriters:
get:
operationId: getTweetFavoriters
summary: List visible users who liked a tweet
description: 'Returns liker profiles that X makes visible for the post. X can withhold liker identities even when the post reports likes. In that case this endpoint returns 424 `favoriters_unavailable` instead of a misleading empty success.
'
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
- {}
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Tweet ID to get favoriters
- name: cursor
in: query
schema:
type: string
description: Pagination cursor for favoriters
- $ref: '#/components/parameters/FollowerPageSize'
responses:
'200':
description: Visible users who liked the tweet
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedUsers'
'400':
$ref: '#/components/responses/InvalidInput'
'401':
$ref: '#/components/responses/AnonymousGuestAuthenticationRequired'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/FavoritersUnavailable'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
/api/v1/x/bookmarks:
get:
operationId: getBookmarks
summary: Get bookmarked tweets
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
parameters:
- name: folderId
in: query
schema:
type: string
description: Optional bookmark folder ID
- name: cursor
in: query
schema:
type: string
example: DAACCgACGRElMJcAAA
description: Pagination cursor for bookmarks
responses:
'200':
description: List of bookmarked tweets
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTweets'
'401':
$ref: '#/components/responses/Unauthenticated'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/XApiError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
description: Get bookmarked tweets.
/api/v1/x/bookmarks/folders:
get:
operationId: getBookmarkFolders
summary: Get bookmark folders
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
responses:
'200':
description: List of bookmark folders
content:
application/json:
schema:
type: object
required:
- folders
- has_next_page
- next_cursor
properties:
folders:
type: array
items:
type: object
required:
- id
- name
properties:
id:
type: string
example: '1234567890'
name:
type: string
example: Read Later
example:
- id: '1234567890'
name: Read Later
has_next_page:
type: boolean
description: Always false for the current bookmark folder route
example: false
next_cursor:
type: string
description: Always empty for the current bookmark folder route
example: ''
example:
folders:
- id: '1234567890'
name: Read Later
has_next_page: false
next_cursor: ''
'401':
$ref: '#/components/responses/Unauthenticated'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/XApiError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
description: Get bookmark folders.
/api/v1/x/timeline:
get:
operationId: getTimeline
summary: Get home timeline
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
parameters:
- name: seenTweetIds
in: query
schema:
type: string
description: Comma-separated tweet IDs to exclude from results. Empty entries are ignored.
- name: cursor
in: query
schema:
type: string
description: Pagination cursor for timeline
responses:
'200':
description: List of timeline tweets
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTweets'
'401':
$ref: '#/components/responses/Unauthenticated'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/XApiError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
description: Get home timeline.
/api/v1/x/tweets/{id}/quotes:
get:
operationId: getTweetQuotes
summary: List quote tweets of a tweet
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
- {}
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Numeric tweet ID to get quotes, 15-20 digits
- name: cursor
in: query
schema:
type: string
description: Pagination cursor for quote tweets
- $ref: '#/components/parameters/ResultPageSize'
- name: sinceTime
in: query
schema:
type: string
description: Unix timestamp - return quotes posted after this time
- name: untilTime
in: query
schema:
type: string
description: Unix timestamp - return quotes posted before this time
- name: includeReplies
in: query
schema:
type: boolean
description: Include reply quotes (default false)
- $ref: '#/components/parameters/TweetFilterFromUser'
- $ref: '#/components/parameters/TweetFilterToUser'
- $ref: '#/components/parameters/TweetFilterMentioning'
- $ref: '#/components/parameters/TweetFilterLanguage'
- $ref: '#/components/parameters/TweetFilterSinceDate'
- $ref: '#/components/parameters/TweetFilterUntilDate'
- $ref: '#/components/parameters/TweetFilterMediaType'
- $ref: '#/components/parameters/TweetFilterMinFaves'
- $ref: '#/components/parameters/TweetFilterMinRetweets'
- $ref: '#/components/parameters/TweetFilterMinReplies'
- $ref: '#/components/parameters/TweetFilterMinQuotes'
- $ref: '#/components/parameters/TweetFilterVerifiedOnly'
- $ref: '#/components/parameters/TweetFilterReplies'
- $ref: '#/components/parameters/TweetFilterRetweets'
- $ref: '#/components/parameters/TweetFilterQuotes'
- $ref: '#/components/parameters/TweetFilterExactPhrase'
- $ref: '#/components/parameters/TweetFilterExcludeWords'
- $ref: '#/components/parameters/TweetFilterAnyWords'
- $ref: '#/components/parameters/TweetFilterHashtags'
- $ref: '#/components/parameters/TweetFilterCashtags'
- $ref: '#/components/parameters/TweetFilterUrl'
- $ref: '#/components/parameters/TweetFilterConversationId'
- $ref: '#/components/parameters/TweetFilterInReplyToTweetId'
- $ref: '#/components/parameters/TweetFilterQuotesOfTweetId'
- $ref: '#/components/parameters/TweetFilterRetweetsOfTweetId'
responses:
'200':
description: List of quote tweets
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedTweets'
'400':
$ref: '#/components/responses/InvalidInput'
'401':
$ref: '#/components/responses/AnonymousGuestAuthenticationRequired'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/XApiError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
description: List quote tweets of a tweet.
/api/v1/x/tweets/{id}/replies:
get:
operationId: getTweetReplies
summary: List replies to a tweet
description: 'Returns direct replies. Complete mode merges available timeline views, supported rankings, every forward cursor module, labeled hidden-content branches, exact-parent time partitions scaled to the reported reply count, and search. It separates nested replies and returns 424 below 80% coverage.
'
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
- {}
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Tweet ID to get replies
- name: cursor
in: query
schema:
type: string
description: Pagination cursor for tweet replies
- name: mode
in: query
schema:
type: string
enum:
- standard
- complete
default: standard
description: 'Use standard for pagination and filters. Use complete for maximum coverage. Complete mode accepts only limit. Remove other pagination and filter parameters.
'
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 25000
description: 'With mode=complete, maximum combined direct and nested reply rows (1-25000, default 25000). Without complete mode, this is the deprecated pageSize alias and accepts only 1-100.
'
- $ref: '#/components/parameters/ResultPageSize'
- name: sinceTime
in: query
schema:
type: string
description: Unix timestamp - return replies posted after this time
- name: untilTime
in: query
schema:
type: string
description: Unix timestamp - return replies posted before this time
- $ref: '#/components/parameters/TweetFilterFromUser'
- $ref: '#/components/parameters/TweetFilterToUser'
- $ref: '#/components/parameters/TweetFilterMentioning'
- $ref: '#/components/parameters/TweetFilterLanguage'
- $ref: '#/components/parameters/TweetFilterSinceDate'
- $ref: '#/components/parameters/TweetFilterUntilDate'
- $ref: '#/components/parameters/TweetFilterMediaType'
- $ref: '#/components/parameters/TweetFilterMinFaves'
- $ref: '#/components/parameters/TweetFilterMinRetweets'
- $ref: '#/components/parameters/TweetFilterMinReplies'
- $ref: '#/components/parameters/TweetFilterMinQuotes'
- $ref: '#/components/parameters/TweetFilterVerifiedOnly'
- $ref: '#/components/parameters/TweetFilterReplies'
- $ref: '#/components/parameters/TweetFilterRetweets'
- $ref: '#/components/parameters/TweetFilterQuotes'
- $ref: '#/components/parameters/TweetFilterExactPhrase'
- $ref: '#/components/parameters/TweetFilterExcludeWords'
- $ref: '#/components/parameters/TweetFilterAnyWords'
- $ref: '#/components/parameters/TweetFilterHashtags'
- $ref: '#/components/parameters/TweetFilterCashtags'
- $ref: '#/components/parameters/TweetFilterUrl'
- $ref: '#/components/parameters/TweetFilterConversationId'
- $ref: '#/components/parameters/TweetFilterInReplyToTweetId'
- $ref: '#/components/parameters/TweetFilterQuotesOfTweetId'
- $ref: '#/components/parameters/TweetFilterRetweetsOfTweetId'
responses:
'200':
description: List of replies
content:
application/json:
schema:
$ref: '#/components/schemas/TweetReplies'
'400':
$ref: '#/components/responses/InvalidInput'
'401':
$ref: '#/components/responses/AnonymousGuestAuthenticationRequired'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/RepliesIncomplete'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
'503':
description: Complete reply extraction is temporarily busy.
headers:
Retry-After:
schema:
type: integer
minimum: 1
description: Seconds to wait before retrying.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: x_api_unavailable
message: Complete reply extraction is busy. Retry shortly.
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
/api/v1/x/tweets/{id}/retweeters:
get:
operationId: getTweetRetweeters
summary: List users who retweeted a tweet
tags:
- Tweets
security:
- apiKey: []
- oauthBearer: []
- {}
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Tweet ID to get retweeters
- name: cursor
in: query
schema:
type: string
description: Pagination cursor for retweeters
- $ref: '#/components/parameters/FollowerPageSize'
responses:
'200':
description: List of retweeters
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedUsers'
'400':
$ref: '#/components/responses/InvalidInput'
'401':
$ref: '#/components/responses/AnonymousGuestAuthenticationRequired'
'402':
$ref: '#/components/responses/PaymentRequired'
'424':
$ref: '#/components/responses/XApiError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'502':
$ref: '#/components/responses/XApiError'
default:
content:
application/json:
example:
error: internal_error
message: Unexpected error. Try again.
schema:
$ref: '#/components/schemas/Error'
description: Unexpected error.
description: List users who retweeted a tweet.
/api/v1/x/twee
# --- truncated at 32 KB (113 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xquik-api/refs/heads/main/openapi/xquik-api-tweets-api-openapi.yml