X posts and replies in n8n
Resolve X post links or IDs into text, author, media, polls, quoted/parent posts, engagement metrics and replies, or resolve a handle into that account's public profile.
What this workflow does
Import it and n8n runs the X Post, Reply & Profile Lookup by Link or ID Actor on Apify every day at 08:00 with the starter input below. Each row comes back with text, author.username, created at, like count and 5 more; repeats with the same url are dropped. A Google Sheets append is included and stays off until you add your sheet. The only credential it needs is your Apify API token.
Read from the workflow file, built for X Post, Reply & Profile Lookup by Link or ID version 1.0.2. Updated 2026-11-14.How the rows travel
6 nodes, in the order n8n runs them. The yellow stop is the call to the Apify Actor; the dashed stop is optional.
- Daily trigger Schedule trigger
- Configure input Code
- Run Apify Actor HTTP Request
- Normalize + dedupe Code
- Rows ready No operation
- Google Sheets (optional) Google Sheets, off until you switch it on
From the Short
This workflow is the one the video points to: the number in each video opens this page.
Input
The Configure input node holds the starter input. Change it there; every setting the Actor accepts is listed below.
{
"tweetUrls": [
"https://x.com/NASA/status/2107095768821576019"
],
"maxReplies": 3
} | Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| tweetUrls | array | Yes | – | Paste the posts you want to collect. You can also paste post IDs, x.com/i/web/status links, twitter.com links, profile links or bare handles (a profile input returns that… |
| includeReplies | boolean | No | true | Collect the replies X shows for each post, walked forward from the post's publication time. |
| maxReplies | integer | No | 20 | How many replies to collect for each post (0-500). Posts with very large threads may return fewer because X does not expose every reply to logged-out visitors. |
| includeQuotes | boolean | No | false | Collect the posts that quote each requested post, with their text, author and engagement counts. |
| maxQuotes | integer | No | 50 | How many quote posts to collect for each requested post (0-500). |
| includeRetweeters | boolean | No | false | Collect the handles of accounts that reposted each requested post. X only exposes a search-index sample of visible reposts, so this is an approximate, recent-biased list. |
| maxRetweeters | integer | No | 50 | How many retweeter handles to collect for each post (0-500). |
| includeQuotedTweet | boolean | No | true | When a collected post quotes another post, attach the quoted post's text, author and metrics. |
| includeParentTweet | boolean | No | true | When a collected post is a reply, attach the post it answers under parentTweet. |
| includeThreadAncestors | boolean | No | false | When a requested post is a reply, walk up to 10 posts back to the start of the thread and attach them under threadAncestors (root first). |
| includeMedia | boolean | No | true | Include image links, video links and video variants for each post. |
| includeAuthorProfile | boolean | No | true | Attach the author's public profile details (followers, bio, verification) to every post, reply and quote row under author and authorProfile. |
What each row holds
Every field the Actor returns stays in the row (9 in its dataset schema). Normalize + dedupe trims text, drops empty fields, removes repeats with the same url and adds _source and _scrapedAt. The main fields:
| Field | What it is |
|---|---|
| text | Text |
| author.username | Author.username |
| createdAt | Created At |
| likeCount | Like Count |
| retweetCount | Retweet Count |
| replyCount | Reply Count |
| viewCount | View Count |
| url | Url |
What the first run costs
Each run starts at $0.40 on the Free plan (4 GB of memory), then $0.99 per 1,000 results, plus platform usage.
The Actor lists $0.99 per 1,000 results; its catalogue page breaks the price down by Apify plan. The Apify Free plan includes $5 of usage a month.
The Actor behind it
X Post, Reply & Profile Lookup by Link or ID: Resolve X post links or IDs into text, author, media, polls, quoted/parent posts, engagement metrics and replies, or resolve a handle into that account's public profile.
The same job from an AI agent
The matching agent skill gives Claude Code, Codex, Cursor and other agents the same Actor, input and fields. Install it in one line:
npx skills add https://scraperfinder.com --skill x-post-reply-and-profile-lookup-by-link-or-id The x posts and replies skill, with manual install and run steps
Questions people ask
How do I import this workflow into n8n?
Copy https://scraperfinder.com/n8n/x-post-reply-and-profile-lookup-by-link-or-id.json. In n8n, open a new workflow, click the three-dot menu, choose Import from URL and paste it. Or download the JSON file and use Import from File; both give the same 6 nodes.
Do I need an Apify account?
Yes. The workflow calls the X Post, Reply & Profile Lookup by Link or ID Actor through the Apify API with your own token, and each run is billed to your Apify account. The Free plan includes $5 of usage a month.
What does a run cost?
Each run starts at $0.40 on the Free plan (4 GB of memory), then $0.99 per 1,000 results, plus platform usage. The Actor's Store page shows the current price.
Can I change what it collects?
Yes: edit the input object in the Configure input node. The Actor takes 12 settings; the table on this page lists each one with its default.
Does it work without Google Sheets?
Yes. The rows wait in the Rows ready node, so you can connect any other node there: a database, Airtable, a webhook or an email. The Google Sheets node is only one option.