sfoln/x-post-replies · Social media, News, Lead generation On request
Scrape the replies to any public X (Twitter) post: text, date, author, likes, reposts, views, media, hashtags and links, one JSON row per reply. Paste post URLs or IDs; 20–200 newest replies per post. $0.70 per 1,000 replies; posts without replies are free.
Tweet Replies Scraper (X / Twitter) gets the replies to any public X (Twitter) post as clean, flat records: reply text, timestamp, author (handle, name, followers, blue check), likes, reposts, replies, quotes, views, bookmarks, media links, hashtags, mentions and links. Paste post URLs or IDs and receive one dataset row per reply: ideal for audience sentiment, customer-feedback mining, community management, campaign monitoring and LLM training/evaluation sets.
Price
Price per delivered record
Event
Price
Per 1,000
Charged for
X reply x-reply
$0.0007
$0.70 / 1,000
Charged once per reply delivered to the dataset. Per-post summary rows are free.
Apify free plan: up to 10 items per run. Paid plans have no per-run cap; set maxTotalChargeUsd to cap spend.
Run
Call it from code, an agent or the Console
This API is private on Apify for now. Email us and we will publish it for you, usually within two working days. The calls below work once it is public. contact@sfoln.com
POST https://api.apify.com/v2/actors/sfoln~x-post-replies/runs?maxTotalChargeUsd=1
GET https://api.apify.com/v2/actor-runs/{runId} # until status is SUCCEEDED
GET https://api.apify.com/v2/datasets/{defaultDatasetId}/items?format=json
Authenticate with an Apify API token. MCP clients can instead sign in with OAuth when prompted. Example prompt for an agent: Get the 100 newest replies to https://x.com/jack/status/20 and summarize the overall sentiment and the most common themes.
Input
Input fields
Paste X (Twitter) post URLs or ids. The Actor returns the replies to each post (newest first), one dataset record per reply, plus one summary record per post.
Field
Type
Default
Meaning
posts *
array
required
Post URLs or ids x.com / twitter.com status URLs or numeric post ids, one per line. Use the first post of a thread (the upstream returns replies to thread roots). Accounts on the Apify free plan can process up to 10 posts per run.
maxRepliesPerPost
integer
20
Max replies per post How many of the most recent replies to return per post (20–200). Replies are fetched in pages of ~20, so the minimum is one page. Range 20–200.
maxItems
integer
1000
Max posts Safety cap on the number of posts processed in this run. Range 1–10000.
concurrency
integer
3
Concurrency Posts processed in parallel (1–5). Range 1–5.
itemTimeoutSecs
integer
300
Per-post time limit (seconds) Stop paginating a post after this long; rows already delivered are kept. Range 30–1800.
includeRaw
boolean
false
Include raw upstream response Attach the unmodified TwitterAPI.io payload to each record under `raw` (larger output).
Example input
{
"posts": [
"1846987139428634858"
]
}
Output
One record per input item
Records land in the run's dataset; a synchronous call returns them directly. Each has a status (ok is charged; everything else is free) and a charged flag. The run's OUTPUT record totals items and charges.
Field
Type
Meaning
input
string | object
Input The input item this record corresponds to.
status
string
Status ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan (result rows are always ok) e.g. "ok"
charged
boolean
Charged Whether this record incurred a pay-per-event charge.
chargedEvent
string
Charged event Pay-per-event event charged for this record.
source
string
Source Upstream data source (twitterapi = TwitterAPI.io).
fetchedAt
string
Fetched at ISO timestamp.
error
object
Error code / message when status is not ok.
warnings
array
Warnings Non-fatal notes (e.g. stopped early).
recordType
string
Row type reply (one per reply, charged) | post-summary (one per input post, free).
parentTweetId
string | null
Parent post id The input post these replies belong to.
id
string | null
Post id Numeric post (tweet) id as a string.
url
string | null
URL Link to the post on x.com.
text
string | null
Text Full post text.
createdAt
string | null
Created at ISO 8601 creation time.
lang
string | null
Language Language code detected by X.
postedVia
string | null
Posted via Client app used to post.
authorHandle
string | null
Author handle Author's handle without @.
authorId
string | null
Author id Author's numeric user id.
authorName
string | null
Author name Author display name.
authorFollowers
integer | null
Author followers Author follower count at fetch time.
authorIsBlueVerified
boolean | null
Author blue verified Author has a blue check.
likes
integer | null
Likes Like count.
retweets
integer | null
Reposts Repost (retweet) count.
replies
integer | null
Replies Reply count.
quotes
integer | null
Quotes Quote count.
views
integer | null
Views View count (null when X does not report it).
bookmarks
integer | null
Bookmarks Bookmark count.
isReply
boolean
Is reply Post is a reply.
inReplyToId
string | null
In reply to post Parent post id.
inReplyToUserId
string | null
In reply to user id Parent author id.
inReplyToHandle
string | null
In reply to handle Parent author handle.
conversationId
string | null
Conversation id Root post id of the thread.
isRetweet
boolean
Is repost Post is a repost.
retweetedTweetId
string | null
Reposted post id Original post id for reposts.
isQuote
boolean
Is quote Post quotes another post.
quotedTweetId
string | null
Quoted post id Quoted post id.
hashtags
array
Hashtags Hashtags without #.
mentions
array
Mentions Mentioned handles without @.
urls
array
Links Expanded links in the post.
media
array
Media Photos / videos: type, url, videoUrl (best MP4), expandedUrl.
mediaCount
integer
Media count Number of attached media items.
tweetId
string | null
Input post id Parsed post id (summary rows).
repliesReturned
integer | null
Replies returned Replies delivered for this post (summary rows).