EnsembleData
A tidy multi-platform scraper with printed per-endpoint unit costs, no charge for its own failures, and a real free trial with no card. The catch is the shape of the plan: the allowance is a daily ceiling that resets at 00:00 UTC and never rolls over, so an uneven month wastes most of what you paid for, and X coverage is only three endpoints - profile, user tweets and one tweet's stats - with no search, followers or replies.
Tweet search request, by volume
| Tweets per month | Monthly bill | Per 1,000 | Cheapest route | Allowance unused |
|---|---|---|---|---|
| 1k | not offered | - | - | - |
| 10k | not offered | - | - | - |
| 100k | not offered | - | - | - |
| 1M | not offered | - | - | - |
How EnsembleData compares
EnsembleData publishes no price at 10,000 tweets a month: not offered. The cheapest published route here costs $0.033 per 1,000.
| Provider | 1k a month | 10k a month | 100k a month | 1M a month |
|---|---|---|---|---|
| A | $0.033 | $0.033 | $0.032 | $0.032 |
| T | $0.040 | $0.040 | $0.040 | $0.040 |
| G | $0.050 | $0.050 | $0.050 | $0.050 |
| E | not offered | not offered | not offered | not offered |
List prices, dollars per 1,000 tweets at the cheapest published route to each volume. How this is worked out
Every published plan
| Plan | Price | Included credits | Overage each | Note |
|---|---|---|---|---|
| Free Trial | $0 per month | 1,500 | hard cap | Printed as '50 units / day, $0 / month (USD)'. includedUnits is that daily figure times 30 days, because the schema's field is per month; units reset at 00:00 UTC and do not roll over, so a shorter or patchier month delivers less. |
| Wood | $100 per month | 45,000 | hard cap | Printed as '1,500 units / day, $100 / month (USD)'. includedUnits is 1,500 x 30 days. |
| Bronze | $200 per month | 150,000 | hard cap | Printed as '5,000 units / day, $200 / month (USD)'. includedUnits is 5,000 x 30 days. |
| Silver | $400 per month | 330,000 | hard cap | Printed as '11,000 units / day, $400 / month (USD)'. includedUnits is 11,000 x 30 days. |
| Gold | $800 per month | 750,000 | hard cap | Printed as '25,000 units / day, $800 / month (USD)'. includedUnits is 25,000 x 30 days. |
| Platinum | $1,400 per month | 1,500,000 | hard cap | Printed as '50,000 units / day, $1400 / month (USD)'. includedUnits is 50,000 x 30 days. |
| Diamond | on request | - | not published | The Diamond card prints no unit allowance and no price, only 'If none of our plans suit your needs, contact us here!' |
'Units are our in-house mechanism for pricing different data endpoints.' EnsembleData documents exactly three X endpoints and prints a unit price on each: GET /twitter/user/info 'API Pricing (per request): 2 units', GET /twitter/user/tweets '4 units', GET /twitter/post/info '2 units'. The pricing page's Twitter tab prints the same three rows (User Info 2, User Tweets 4, Post Info 2). There is no X search, followers or replies endpoint, so those verticals are null. USD per unit comes from the plans, whose allowances are per day.
Cost by endpoint
Per 1,000, at 10,000 tweets a month.
What it can do
Only what the provider's own pages state.
Where these numbers came from
- https://ensembledata.com/pricing read 2026-09-08 / the seven plan cards (Free Trial 50 units/day $0, Wood 1,500 $100, Bronze 5,000 $200, Silver 11,000 $400, Gold 25,000 $800, Platinum 50,000 $1400, Diamond contact us), the per-endpoint unit table with its Twitter tab (User Info 2, User Tweets 4, Post Info 2), and the FAQ answers 'Every day the daily units are reset at 00:00 UTC', 'No units will be charge for failed requests caused by internal errors', 'We offer SLAs and robust infrastructure', and the footer entity 'EnsembleData Pte. Ltd.'
- https://ensembledata.com/apis/docs read 2026-09-08 / the Twitter section documents three endpoints and prints 'API Pricing (per request): 2 units' on /twitter/user/info, '4 units' on /twitter/user/tweets and '2 units' on /twitter/post/info. It also warns on User Tweets that 'not all of the users return the data because it would require login ... It works for most of the verified users', and HTTP 495 is 'All daily units used'.
Something out of date? Send the provider's own page to hello@xtwitterapiprices.com and it is corrected on the next capture.