X (Twitter) Profile & Post Engagement Extractor
Get any public X profile - bio, followers, verification, avatar, banner - plus latest, top and media posts with full engagement metrics. No login required.
Open in Apify Store$0.99 / 1K on Free
Short answer
X (Twitter) Profile & Post Engagement Extractor is an Apify Store Actor for X (Twitter) data that returns 29 published output fields, including text, likeCount, url, sourceUrl. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 27 input settings, none required. It covers 3 of the 7 core X (Twitter) fields this site tracks. Last updated Oct 29, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
29 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
typerecordTypestatusmessageusernamenametextcreatedAtsourcelikeCountretweetCountreplyCountquoteCountviewCountbookmarkCounttotalEngagementengagementRatemediaTypesisPinnedisHighlighturlsourceUrlprofileUrlfollowersfollowingpostCountverifiedTypecollectedAtscrapedAt
Not in the schema among the core X (Twitter) fields: post_id, author, posted_at, reposts. The field matrix shows which other tools return them.
How it differs from the other X (Twitter) Actors
Among the 12 catalogue Actors for X (Twitter) with a published schema, only this one returns totalEngagement, isPinned, isHighlight.
Pick another Actor if you need
| Actor | Fields it adds | Price / 1K |
|---|---|---|
| Twitter (X) Media Downloader | tweetId, filename, fileSizeBytes, width | $0.99 |
| X Video Subtitle & Caption Transcript Converter | tweetId, videoIndex, language, captionLanguage | $0.99 |
| X/Twitter Keyword & Hashtag Tweet Search | language, isRetweet, isQuote, isReply | $0.99 |
| X Keyword Search with Mention & Reply Operators | language, isRetweet, isQuote, isReply | $0.99 |
| X Community Activity & Member Finder | memberCount, feed, moderatorCount, topic | $0.99 |
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| usernames | array | No | [] | Accounts to collect. Paste handles like `elonmusk`, `@apify`, profile links like `https://x.com/elonmusk`, numeric ids like `11348282` or `id:11348282`. Handles, links and ids can be mixed. |
| include | array | No | ["profileInfo","latestPosts"] | Pick one or more data groups. Everything works without cookies. `topPosts` is engagement-ranked from the candidate pool (X serves no public Top tab to guests). `replies` and `highlights` are best-effort: X sometimes refuses those guest timelines. |
| postUrls | array | No | [] | Optional. Collect these exact posts (focal post plus up to 3 replies each) in addition to the profiles above. Accepts `https://x.com/user/status/123` or a numeric post id. |
| maxPostsPerProfile | integer | No | 50 | Target number of posts per account (1-1000). The actor follows X's guest timeline bottom cursor back to X's ceiling of about 3,200 posts; guest search top-ups are best effort. Filter-heavy runs page until the target number of matching rows is found or the source ceiling is reached. A pinned post can |
| includeReplies | boolean | No | false | Keep replies the account sent. Best effort: X only serves the reply timeline to logged-out callers on some attempts. |
| includeRetweets | boolean | No | false | Keep reposts in the results. Turn off to get only posts the account wrote itself. |
| includeHighlights | boolean | No | false | Also collect the account's curated Highlights tab. The guest legacy userId query pages the whole set through its bottom cursor (observed 100-1,097 rows on large accounts); the live one-page query remains a fallback. |
| dateFrom | string | No | – | Optional. Only keep posts published on or after this date. |
| dateTo | string | No | – | Optional. Only keep posts published on or before this date. |
| language | string | No | – | Optional. Keep only posts detected in this language, e.g. `en`, `es`, `ja`. Locale forms such as `en-US` or `pt-BR` are normalized to their two-letter code in code, so old tasks keep working. |
Show the other 17 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| minimumLikes | integer | No | – | Optional. Drop posts with fewer likes than this. |
| minimumRetweets | integer | No | – | Optional. Drop posts with fewer reposts than this. |
| minimumReplies | integer | No | – | Optional. Drop posts with fewer replies than this. |
| minimumViews | integer | No | – | Optional. Drop posts with fewer views than this. Posts whose view count X does not expose are dropped when this is set. |
| minimumQuotes | integer | No | – | Optional. Drop posts with fewer quotes than this. Posts whose quote count X does not expose are dropped when this is set. |
| onlyWithMedia | boolean | No | false | Keep only posts that contain media. |
| mediaType | string | No | any | Optional. Keep only posts with this media type. `media` in What to collect already limits rows to media posts. |
| onlyVerified | boolean | No | false | Skip accounts that do not carry a verified badge. |
| verifiedType | string | No | any | Optional. Keep only accounts with this verification type. X and FxTwitter labels are normalized in code. |
| minFollowers | integer | No | 0 | Optional. Skip accounts below this follower count. 0 means any. |
| maxFollowers | integer | No | 0 | Optional. Skip accounts above this follower count. 0 means any. |
| minAccountAgeDays | integer | No | 0 | Optional. Skip accounts younger than this. 0 means any. Accounts without a public join date are skipped when this is set. |
| withWebsiteOnly | boolean | No | false | Skip accounts that expose no website link in their profile or bio. |
| bioKeywords | array | No | [] | Optional. Keep only accounts whose name or bio contains every keyword (case-insensitive). |
| activeWithinDays | integer | No | 0 | Optional. Skip accounts whose newest public post is older than this many days. 0 means any. Requires reading the latest posts to evaluate. |
| enrichEngagement | boolean | No | true | Refresh each collected post through its public status page for views, bookmarks and complete media. Adds one request per post. Turn off for the cheapest profile-only runs. |
| proxyConfiguration | object | No | – | Optional. The actor works without a proxy and tries a direct connection first. Use this only if you want to override the built-in direct -> Apify AUTO escalation. |
Example input
Built from the input form's published example values and defaults.
{
"usernames": [
"NASA"
],
"include": [
"profileInfo"
],
"postUrls": [],
"maxPostsPerProfile": 3,
"includeReplies": false,
"includeRetweets": false,
"includeHighlights": false,
"onlyWithMedia": false,
"mediaType": "any",
"onlyVerified": false,
"verifiedType": "any",
"minFollowers": 0,
"maxFollowers": 0,
"minAccountAgeDays": 0,
"withWebsiteOnly": false,
"bioKeywords": [],
"activeWithinDays": 0,
"enrichEngagement": false,
"proxyConfiguration": {
"useApifyProxy": false
}
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"usernames": [
"NASA"
],
"include": [
"profileInfo"
],
"postUrls": [],
"maxPostsPerProfile": 3,
"includeReplies": False,
"includeRetweets": False,
"includeHighlights": False,
"onlyWithMedia": False,
"mediaType": "any",
"onlyVerified": False,
"verifiedType": "any",
"minFollowers": 0,
"maxFollowers": 0,
"minAccountAgeDays": 0,
"withWebsiteOnly": False,
"bioKeywords": [],
"activeWithinDays": 0,
"enrichEngagement": False,
"proxyConfiguration": {
"useApifyProxy": False
}
}
run = client.actor("nimbryxo-studio/x-twitter-profile-and-post-engagement-extractor").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"usernames": [
"NASA"
],
"include": [
"profileInfo"
],
"postUrls": [],
"maxPostsPerProfile": 3,
"includeReplies": false,
"includeRetweets": false,
"includeHighlights": false,
"onlyWithMedia": false,
"mediaType": "any",
"onlyVerified": false,
"verifiedType": "any",
"minFollowers": 0,
"maxFollowers": 0,
"minAccountAgeDays": 0,
"withWebsiteOnly": false,
"bioKeywords": [],
"activeWithinDays": 0,
"enrichEngagement": false,
"proxyConfiguration": {
"useApifyProxy": false
}
};
const run = await client.actor("nimbryxo-studio/x-twitter-profile-and-post-engagement-extractor").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~x-twitter-profile-and-post-engagement-extractor/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"usernames":["NASA"],"include":["profileInfo"],"postUrls":[],"maxPostsPerProfile":3,"includeReplies":false,"includeRetweets":false,"includeHighlights":false,"onlyWithMedia":false,"mediaType":"any","onlyVerified":false,"verifiedType":"any","minFollowers":0,"maxFollowers":0,"minAccountAgeDays":0,"withWebsiteOnly":false,"bioKeywords":[],"activeWithinDays":0,"enrichEngagement":false,"proxyConfiguration":{"useApifyProxy":false}}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=nimbryxo-studio/x-twitter-profile-and-post-engagement-extractor",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among X (Twitter) routes
It ranks 3 of 12 catalogue Actors for X (Twitter) on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 Twitter (X) Media Downloader 27 output fields, pay per event 3 of 7 core fields
$0.99 / 1K - 2 X Post, Reply & Profile Lookup by Link or ID 9 output fields, pay per event 3 of 7 core fields
$0.99 / 1K - 3 X (Twitter) Profile & Post Engagement Extractor 29 output fields, pay per event 3 of 7 core fields
$0.99 / 1K - 4 X Video Subtitle & Caption Transcript Converter 29 output fields, pay per event 3 of 7 core fields
$0.99 / 1K - + 7 other Store tools, combined Reference only 5 of 7 core fields
from $0.15 / 1K - API X API v2 Public API fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: X API v2
Public API. X API v2 uses prepaid pay-per-usage credits. Published standard read rates include $0.005 per Post resource and $0.010 per User resource. Pay-per-use launched on February 6, 2026; legacy Basic and Pro plans migrated to pay-per-use.
Charged per resource returned: $0.005 per Post, $0.010 per User. Owned Reads on qualifying own-account endpoints are $0.001 per resource. A 3 million Post-read monthly cap applies to self-serve pay-per-use.
Other Store tools for X (Twitter)
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| X (Twitter) Tweet Scraper | 120 | $0.15 |
| Tweet Scraper | 17 | $0.25 |
| Tweet Scraper V2 | 12 | $0.40 |
| Twitter (X.com) Scraper Unlimited: No Limits | 12 | $0.40 |
| Twitter (X) Follower Scraper | 29 | $0.15 |
What people use it for
- Collect public profiles
- Extract profile posts
- Analyze post engagement
Other catalogue Actors for X (Twitter)
Twitter (X) Media Downloader
Download videos, photos, GIFs, audio and poster images from public Twitter/X posts - no login, no cookies. Works with post links or usernames,…
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…
X Video Subtitle & Caption Transcript Converter
Convert public X (Twitter) videos into timestamped transcripts and downloadable SRT/VTT subtitle files, using native captions when available and…
X/Twitter Keyword & Hashtag Tweet Search
Search X (Twitter) by keyword, phrase or hashtag and get tweet text, author, engagement metrics, media and language. Every row says which keyword…
X Keyword Search with Mention & Reply Operators
Search X (Twitter) by keyword with filters for date, language, engagement, media, verification, mentioned handle, author, reply target, and…
X Community Activity & Member Finder
Collect public X Community posts, about info, rules and members with no login required. Get the community profile, member count, ranked posts with…
Similar Actors
LinkedIn Profile Engagement Timeline Scraper
Pull a LinkedIn profile's posts, reposts, comments, and reactions in one run, with the original post's author, text, and link attached to each…
Twitter (X) Screenshot Generator
Capture clean screenshots of public X posts and profiles without login. Choose post cards, profile headers or full profile pages, dark/light…
Facebook Group Feed & Engagement Extractor
Pull posts from any public Facebook group with full text, media, reaction breakdown, top comments and reshares, plus optional group member count,…
Facebook Page & Profile Finder by Keyword or URL
Find Facebook Pages or public profiles by keyword, or scrape a list of Facebook URLs directly, and get back contact info, category, ratings,…
Instagram Profile Scraper - Bio & Posts
Scrape public Instagram profiles from a list of usernames: bio, followers, following, post count, verified badge and bio links. Add recent posts…
LinkedIn Activity Feed Scraper with Engagement Filters
Pull posts, articles, and reposts from LinkedIn profile activity feeds, with reaction/comment/date filters and a per-reaction-type breakdown.…
Questions people ask
How much does X (Twitter) Profile & Post Engagement Extractor cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does X (Twitter) Profile & Post Engagement Extractor return?
Its published output schema lists 29 fields: type, recordType, status, message, username, name, text, createdAt, source, likeCount, retweetCount, replyCount, and 17 more. A listed field is not guaranteed to be filled in every row.
What input does X (Twitter) Profile & Post Engagement Extractor need?
No input is strictly required; the defaults run as is. Common settings: usernames, include, postUrls, maxPostsPerProfile, includeReplies, includeRetweets.
What are the alternatives to X (Twitter) Profile & Post Engagement Extractor for X (Twitter)?
12 catalogue Actors cover X (Twitter). Close alternatives: Twitter (X) Media Downloader; X Post, Reply & Profile Lookup by Link or ID; X Video Subtitle & Caption Transcript Converter. The X (Twitter) page compares all of them field by field.
How do I run X (Twitter) Profile & Post Engagement Extractor from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("nimbryxo-studio/x-twitter-profile-and-post-engagement-extractor").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("nimbryxo-studio/x-twitter-profile-and-post-engagement-extractor").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/nimbryxo-studio~x-twitter-profile-and-post-engagement-extractor/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- X (Twitter) Profile & Post Engagement Extractor on Apify Store
- Published build with input and output schema (JSON)
- X API v2 documentation
Cite this page
Scraper Finder. "X (Twitter) Profile & Post Engagement Extractor." https://scraperfinder.com/catalogue/x-twitter-profile-and-post-engagement-extractor/ (data checked 2026-11-12).
Run X (Twitter) Profile & Post Engagement Extractor
$0.99 per 1,000 results. Paste the example input above, set your X (Twitter) query, then export the dataset. Still choosing? Compare every X (Twitter) route.