X API Comparison 2026: Real Cost per 1,000 Records
Every X (Twitter) data provider publishes a price, and almost none of them publish it in the same unit. One charges per returned resource. One charges per delivered row. One charges per request that happens to cost five credits. Two publish in pounds and euros. Until every one of those is converted to the same denominator, you are not comparing prices — you are comparing marketing.
So this post does the conversion. Twelve options, one denominator: US dollars per 1,000 records. Then six dimensions that the price alone hides — what a record actually contains, how hard it is to get a key, rate limits, free tiers, what an empty result costs you, and what real customers say about support.
Every figure below was read from the vendor's own published page on 9 September 2026 and each row links to that page. This is desk research on pricing, docs and free-tier terms. I did not run a benchmark, so there is not a single latency or success-rate number in this post.
Short answer: on list prices read 9 September 2026, the cheapest X post record is Serpent at $0.10 per 1,000 calls, then Apify's igolaizola actor at $0.13 and twitterapi.io at $0.15. The official X API is $5.00 per 1,000 Post reads — 50× the cheapest row, and 100× on profiles. But the unit matters more than the rate: a provider that bills per item charges you again for every post attached to a profile.
How I normalised the prices
Four rules, applied to every row so the numbers are genuinely comparable.
- One denominator. Everything is expressed as US dollars per 1,000 records of a named type — a post, or a profile. Credits, requests, rows, resources and events are all converted back to that.
- Entry rate and floor rate, both named. Where a vendor's cheapest published rate needs a monthly plan or a deposit, the table says what it needs. Our best price against a rival's entry price would not be a fair table.
- Published numbers only. Where a discount exists but the resulting rate is not published, the table says so rather than guessing. That happens on Apify, whose Store discounts scale with your subscription and are not published as a number.
- Currencies converted and dated. SocialCrawl publishes in pounds and Data365 in euros. Converted at mid-market rates on 9 September 2026: 1 GBP = 1.3562 USD, 1 EUR = 1.1630 USD.
If you want the "who should I buy from" version of this question — what each provider is actually for, and who each one suits — that is a different post: the 2026 directory of X data providers. This one is strictly the side-by-side.
The normalised cost table
This is the table I could not find assembled anywhere else: twelve X data options, every price converted to dollars per 1,000 records, with the condition attached to each rate stated in the same row.
| Provider | What one billed unit is | $ / 1,000 posts | $ / 1,000 profiles | What that rate needs | Free allowance |
|---|---|---|---|---|---|
| Serpent API | One call. One call is one post, or one profile with its recent posts. | $0.10 ($0.07 Scale) |
$0.10 flat ($0.15 hydrated) |
Nothing for $0.10. The $0.07 post rate needs one $500 deposit, spendable as balance. The profile rate never moves. | 10 free API calls |
| X API (official) | One returned resource. Posts and Users meter separately. | $5.00 | $10.00 | Nothing — pay-per-usage credits are the published model. Capped at 3M Post reads per billing cycle. | None published for reads |
| twitterapi.io | One returned item (one tweet, one user). | $0.15 | $0.18 | Nothing. Minimum $0.00015 per API call, waived for bulk data responses. | Trial credit, amount not published |
| Apify — igolaizola X Twitter Scraper | One result. | $0.13 | — | Base rate. Apify Store discounts lower it on higher plans; the resulting number is not published. | $5/month platform credit on Apify's Free plan |
| Apify — xquik X Tweet Scraper | One delivered row, tweet or profile alike. | $0.15 | $0.15 | Nothing extra — the same rate on every Apify plan. | As above |
| Apify — api-ninja X Profile Scraper | One result. | — | $0.30 | Base rate. Store discounts apply, unpublished. | As above |
| Apify — parseforge X.com Profiles Scraper | One result, priced at $0.01734 each. | — | $17.34 | Base rate. | 10 results per run preview on Apify's Free plan |
| Bright Data X Scraper | One successfully delivered record. | $1.50 ($1.30 Scale) |
$1.50 ($1.30 Scale) |
$1.50 pay-as-you-go. $1.30 needs the $499/month Scale plan, which includes 384,000 records. | 5,000 records/month, no card |
| Scrapingdog | One successful request, billed at 5 API credits. | $1.00 | $1.00 | The $40/month Lite plan. Larger plans lower it: $200/month Pro works out at about $0.33. | 200 credits = 40 X requests |
| ScrapeCreators | One credit; 1 credit is 1 request on most endpoints. | $1.88 ($0.99 Business) |
$1.88 ($0.99 Business) |
$47 prepaid for the Freelance rate, $497 for the Business rate. Credits never expire. | 100 credits, plus up to 7,000 bonus credits to claim |
| SocialCrawl | One credit per standard API call; composite endpoints cost more. | $8.14 ($2.70 Pro) |
$8.14 ($2.70 Pro) |
£15 Starter for the entry rate; £299 Pro for the floor rate. | 100 credits |
| Data365 | One credit. 1 post = 1 credit; 1 profile with info = 9 credits. | $0.70 | $6.28 | The €300/month Basic plan: 500,000 credits, one social network. | 14-day trial, no card |
Prices checked 2026-09-09. Every rate was read from the vendor's own live pricing or Actor page on that date; each provider name links to the page it came from. Serpent's rates are its published rate card, also on the pricing page. Scrapingdog's per-1,000 figures are derived from its published plan credits and its documented cost of 5 API credits per X request: $40 ÷ 200,000 credits × 5 = $0.001 per request, so $1.00 per 1,000. Data365 and SocialCrawl publish in euros and pounds; converted at mid-market rates on 2026-09-09 (1 GBP = 1.3562 USD, 1 EUR = 1.1630 USD). Re-verify before you budget — marketplace Actor rates change whenever the author edits the pricing block, and platform pricing in this category has moved repeatedly since 2023.
Two honest caveats, because a table nobody can rebut is worth more than a flattering one. Apify's true floor is unknown rather than beaten: the igolaizola and api-ninja actors both say the rate drops on higher paid Apify subscriptions and neither publishes the resulting number. And Scrapingdog's floor is genuinely low — its largest published plans work out near $0.14 per 1,000 X requests, close to the cheapest rows here, though reaching that takes $30,000 a month in committed spend.
Why the unit beats the rate
Look at the second column before the third. It is worth more.
Take one concrete job: a profile plus five of its recent posts, with engagement on each. That is six pieces of information, and providers price it in three completely different ways.
| Provider | How the job is billed | Cost per 1,000 profiles |
|---|---|---|
| Serpent | One hydrated profile call | $0.15 |
| twitterapi.io | 1 user + 5 tweets = 6 billed items | $0.93 |
| Apify (xquik) | 6 delivered rows | $0.90 |
| X API (official) | 1 User read + 5 Post reads | $35.00 |
Arithmetic on the published rates above. twitterapi.io: $0.00018 + (5 × $0.00015) = $0.00093 per profile. Apify xquik: 6 × $0.00015 = $0.00090. Official X API: $0.010 + (5 × $0.005) = $0.035. Five recent posts is my own worked assumption for a like-for-like job, not a promise about how many posts any given profile shows.
The spread widens from 1.5× on a single post to roughly 6× on this job, and to 233× against the official API. Nothing about the headline rates predicted that. The unit did.
This is the same trap that shows up on every social vertical, and it is worth recognising once: I priced it out on TikTok in the TikTok scraping API comparison, and on LinkedIn in the LinkedIn data API cost breakdown. Same shape, different platform.
What one record actually contains
A cheap record that is missing the field you need is not cheap. Here is what each provider documents in a single post record.
| Provider | Engagement counts in one post record | Notable extras |
|---|---|---|
| Serpent | favorites, replies | quoted_tweet, reply_to, media[], hashtags[], mentions[], urls[], lang, possibly_sensitive, is_edited. Retweet, quote, bookmark and view counts are not in this record at any tier. |
| twitterapi.io | likeCount, retweetCount, replyCount, quoteCount, bookmarkCount, viewCount |
source, lang, conversationId, inReplyToId, entities, quoted_tweet, retweeted_tweet, isLimitedReply. |
| Scrapingdog | views, retweets, quotes, likes, bookmarks | The full author block travels inside the same post record: handle, picture, description, location, followers, following, likes, statuses, is_blue_verified. |
| Apify (igolaizola) | likes, comments, retweets, quotes, views | Permalink, username, full name, avatar, verification status, retweet and reply data, image and video URLs. |
| Bright Data | replies, reposts, views | Post ID, user info, date posted, hashtags, photos, videos, quoted posts. |
| X API (official) | Whatever you request through fields and expansions | The most complete and most authoritative record here — and the one where each returned resource meters separately, so a wide expansion is a wider bill. |
Field lists read from each vendor's own documentation or Actor page on 2026-09-09: twitterapi.io tweet object, Scrapingdog X Post Scraper, and the Apify and Bright Data pages linked in the cost table. Serpent's field list is published on its X (Twitter) API page and in the endpoint documentation.
Read the first column and the second together. If your job is ranking posts by reach, view and repost counts are load-bearing, and four of the providers here carry both. If your job is resolving links you already hold into structured rows — a support inbox, a moderation queue, a citation archive — then thread context, media and language matter far more than a view count, and you should not pay a 10× rate for numbers you will never read.
On profiles the divergence is even sharper. The same record type spans $0.30 to $17.34 per 1,000 inside a single marketplace — api-ninja's profile actor against parseforge's, both on Apify, both returning a handle, a bio, follower and following counts, a website and a join date. That is a 58× spread for a broadly similar payload, on the same platform, on the same day. It is the strongest argument in this post for reading the pricing block on the specific actor rather than trusting the marketplace's reputation.
Auth and onboarding friction
How long from "I want to try this" to "I have a working request" — and what you have to hand over.
- X API (official) — a developer account, an app, OAuth 2.0 or a bearer token, and credits bought in the Developer Console before reads work. The heaviest onboarding here, and the only one that gives you a first-party licensing position.
- twitterapi.io — its docs state a single
x-api-keyheader and no OAuth. About as light as this gets. - Apify — an Apify account and token, then a per-Actor input schema you have to learn separately for each actor you try. Cheap to start, but the learning cost repeats every time you swap actors.
- Bright Data — account plus a compliance review. One Trustpilot reviewer describes the KYC step as repetitive and unclear despite submitting the right documents; budget time for it rather than being surprised by it.
- Scrapingdog, ScrapeCreators, SocialCrawl, Serpent — an API key in a header, and you are making requests. Serpent's is one header and one GET, with 10 free calls attached to a signed-up account and no card.
- Data365 — a 14-day trial without card details, but the pricing page routes full details through a sales conversation, and the entry plan is €300 a month.
Rate limits and caps
Two different constraints get conflated here, and they behave nothing alike. A rate limit slows you down. A cap stops you.
The official X API publishes both. Its documented v2 read limits are 3,500 requests per 15 minutes per app on GET /2/tweets, 450 per 15 minutes on GET /2/tweets/:id, and 300 per 15 minutes per app on GET /2/users/by/username/:username, with a 429 carrying an x-rate-limit-reset header. Above those sits the hard one: 3 million Post reads per monthly billing cycle, after which pay-per-usage stops and Enterprise is the only route on.
The third parties mostly publish throughput rather than caps. twitterapi.io's docs state support for up to 200 QPS per client. Bright Data advertises unlimited concurrency on both its pay-as-you-go and Scale plans. Apify is job-shaped rather than request-shaped: throughput is a function of how many actor runs your plan lets you hold at once, and no requests-per-minute number is published for it.
Serpent's shape is closer to the job model for volume work: the shared job form takes 1 to 200 lookups in a single submission for either X endpoint, results come back by polling, signed webhook or one downloadable file, and every item bills at the same published per-call rate — no bulk premium, no bulk discount. There is no depth parameter on X, so a job buys a bigger time budget and one submission instead of a thousand round trips, never more records per lookup.
The practical planning question is not "how fast is it" but "what happens at the ceiling". Only one option in this comparison has a ceiling that ends in a sales call.
Free tiers, compared honestly
A free tier is worth comparing on two axes: how many records it gives you, and whether it lets you test the thing you are actually buying.
- Bright Data — 5,000 records a month, no card. By volume this is the most generous free allowance in the comparison by a wide margin.
- ScrapeCreators — 100 credits, plus up to 7,000 bonus credits to claim, and the page states credits never expire. Unusual and worth knowing if your project is intermittent; the same question is worth asking anywhere you prepay, which is why credit-expiry rules deserve a read before you top up.
- Scrapingdog — 200 credits, which at its documented 5 credits per X request is 40 X calls.
- SocialCrawl — 100 credits, no card.
- Serpent — 10 free API calls on a signed-up account, shared across every free-eligible endpoint, with no card. Free calls are served first and wait behind nothing.
- Apify — $5 a month of platform usage on the Free plan, which pay-per-result actor charges draw against. Individual actors add their own free-plan limits: parseforge previews 10 results per run, and apidojo's Tweet Scraper V2 allows 5 runs a month at 10 items each.
- Data365 — a 14-day trial, no card, with stated limitations.
- X API (official) — no free read allowance published on its pricing page.
Volume is the easy axis. The harder one is whether the free tier lets you test the exact shape you will buy — a preview capped at 10 rows per run tells you the fields exist but tells you nothing about how the provider behaves at 10,000.
What an empty result costs
This is the dimension nobody puts in a comparison table, and it is the one that quietly decides your real cost per useful record. Posts get deleted. Accounts get suspended. Handles get renamed. On a list of any age, a meaningful share of your lookups will find nothing — and every provider has a different rule about who pays for that.
- Bright Data states you only pay for what is successfully delivered, with no charges for failed deliveries.
- Apify pay-per-result actors charge per delivered row, so a run that yields nothing carries no per-result fee — though platform usage still draws on your plan credits, and Apify's own pricing page notes that some actors charge platform usage separately from the event price.
- Scrapingdog documents 5 API credits per successful request.
- twitterapi.io applies a minimum of $0.00015 (15 credits) per API call, waived for bulk data responses — so a call that finds nothing still carries the floor.
- Serpent splits it explicitly: a 404 is charged because a deleted post or a suspended handle is an answer and the work to establish it was done; anything that is Serpent's problem rather than the resource's returns 503 and is refunded in full. No third case, no partial charge.
There is a second half to this, which is what a thin result looks like. A record with every key present and the missing ones empty is something your pipeline can branch on. A shape that changes depending on what was found is something your pipeline discovers in production at 3am. Serpent's X endpoints return one record with every key always present, which is the property that makes an empty result readable rather than ambiguous. It is worth asking every vendor on your shortlist the same question, and billing for failed requests is where the money actually leaks — alongside the other costs that never make it onto a pricing page.
Support and docs, from real reviews
I did not test support. What I can do is report what verified customers publish, with counts and dates, so you can weigh it yourself.
| Provider | Public rating | What reviewers praise | What reviewers complain about |
|---|---|---|---|
| Apify | 4.8 / 5 from 727 Trustpilot reviews | Breadth of ready-made actors; "instead of writing and maintaining scrapers myself, one almost always already exists" (Sep 2026) | Cost predictability. "I couldn't tell what a run would cost before starting it, so I got a couple of bills I wasn't expecting" (Aug 2026); another reports needing to try "around 5 different scrapers" before finding one that worked (Aug 2026) |
| Scrapingdog | 4.7 / 5 from 586 Trustpilot reviews | Value and responsiveness; "easy API, good value for money, quick and efficient customer service" (May 2026) | Individual endpoints breaking, and refund disputes; one reviewer reports support "frequently unhelpful or evasive" (Jan 2026) |
| twitterapi.io | 4.6 / 5 from 30 Trustpilot reviews | Support speed above all; "support is almost instantaneous" (Feb 2026), "pricing is very cheap compared to official options" | A small sample, and one 1-star review reporting unanswered messages and unreliable extraction (Dec 2025) |
| Bright Data | 4.3 / 5 from 1,019 Trustpilot reviews | Depth of technical support once you reach a human | A pricing structure one reviewer calls too restrictive for smaller individual users; another reports an unanswered support queue; another a repetitive KYC process; another found the initial support bot "straight-up frustrating" |
Ratings and quotes read from Trustpilot on 2026-09-09: Apify, Scrapingdog, twitterapi.io, Bright Data. Review counts move; check the live page. Serpent has no meaningful public review corpus yet, so it is deliberately absent from this table rather than represented by nothing.
One pattern is worth naming because it repeats across every vendor with a marketplace model: the complaints are almost never about the data and almost always about not knowing what a run would cost before starting it. That is a documentation problem dressed as a pricing problem, and it is the reason a flat per-call rate with the scope limits published up front tends to beat a lower headline rate you cannot forecast. The same dynamic on LinkedIn is broken down in Apify's two-layer bill explained and Bright Data's per-record pricing explained.
Which one wins on which axis
No single row wins everything. Match the axis to your job.
- Cheapest per record, no commitment — Serpent, at $0.10 per 1,000 on both posts and profiles, with 10 free calls and no monthly plan to reach it.
- Richest engagement counts on a post — twitterapi.io or Scrapingdog. Both publish views, reposts, quotes and bookmarks; if reach ranking is your product, that matters more than a few cents.
- Most generous free allowance — Bright Data, at 5,000 records a month with no card.
- Licensed, first-party, terms-clean — the official X API. It is 50× to 100× the price of the cheapest rows and capped at 3M Post reads a month, and for a regulated buyer that is sometimes the only acceptable answer.
- Widest catalogue in one integration — Apify, as long as you read the pricing block on the specific actor. The $0.30-to-$17.34 profile spread is inside that one marketplace.
- One key across several platforms — ScrapeCreators, SocialCrawl and Data365 all sell X alongside other networks on shared plans, which is worth real money if X is one of five sources rather than your only one. Serpent's social API catalogue works the same way: one key and one balance across every social endpoint it publishes, including the Reddit endpoints.
Before you commit to any of them, do one thing: price the job you actually have, not the record type in the headline. Multiply the number of records you will pull by the provider's real billed unit, add the lookups you expect to find nothing, and only then compare. That is a five-minute exercise and it reorders this table more often than not. The wider question of platform API versus public data API — when each is the right tool — is worked through in platform API vs public data API.
FAQ
What is the cheapest X (Twitter) API per 1,000 records in 2026?
On published list prices read on 9 September 2026, the cheapest post record is Serpent at $0.10 per 1,000 calls, then Apify's igolaizola actor at $0.13 per 1,000 results and twitterapi.io at $0.15 per 1,000 tweets. On profiles, Serpent is $0.10 per 1,000 calls against Apify's xquik actor at $0.15 per 1,000 delivered rows and twitterapi.io at $0.18 per 1,000 users. Two caveats: Apify's actors discount below their published base on higher paid Apify plans without publishing the resulting number, and Scrapingdog's per-request model reaches $0.14 per 1,000 only on a $30,000 a month plan.
Why is the official X API so much more expensive than third-party providers?
X publishes pay-per-usage credit pricing of $0.005 per Post read and $0.010 per User read, which is $5.00 and $10.00 per 1,000 returned resources. That is 50 times the cheapest post rate and 100 times the cheapest profile rate in this comparison. You are buying different things: the official API is the licensed, terms-clean route with first-party guarantees, and it is capped at 3 million Post reads per monthly billing cycle before you have to move to Enterprise. Third-party providers sell public data as a product and compete on price.
Does per 1,000 mean the same thing at every X data provider?
No, and this is the single biggest source of budget error in the category. The billed unit is a returned resource at the official X API, a returned item at twitterapi.io, a delivered row at Apify, a successfully delivered record at Bright Data, a request costing five credits at Scrapingdog, and one credit inside a monthly bundle at Data365 and SocialCrawl. A provider that bills per item charges you again for every post attached to a profile. A provider that bills per call charges once for the whole record.
Which X API providers have a real free tier?
Bright Data publishes 5,000 records per month free with no card. Serpent gives a signed-up account 10 free API calls shared across every free-eligible endpoint, and those calls are served first with no wait. ScrapeCreators gives 100 credits that never expire plus up to 7,000 bonus credits to claim, SocialCrawl gives 100 credits, Scrapingdog gives 200 credits which is 40 X requests at five credits each, and Data365 offers a 14-day trial with no card. Apify's Free plan includes $5 a month of platform usage. The official X API publishes no free read allowance.
Does a deleted post or an empty result still cost money?
It depends on the provider, and each one publishes its own rule. Bright Data states you only pay for what is successfully delivered and there are no charges for failed deliveries. Scrapingdog documents five API credits per successful request. twitterapi.io charges a minimum of $0.00015 per API call, waived for bulk data responses, so a call that finds nothing still carries the minimum. Serpent charges a 404 because a deleted post or a suspended account is an answer, and refunds a 503 in full because that is not your problem to pay for.
How often should I re-check these X API prices?
Before every budgeting exercise, and certainly before signing anything. Every figure in this comparison was read from the vendor's own published page on 9 September 2026 and each row links to the page it came from. Marketplace actor rates on Apify can change whenever the actor's author edits the pricing block, and platform pricing across this category has moved repeatedly since 2023. Treat a price older than a quarter as a starting point for a check, not as a number.



