Get who reposted an X post
Fetch the accounts that reposted one post, about 20 a page, each with its counts and bio. X's API calls this "retweeted by".
https://api.scrapefield.com/v1/x/retweetershttps://api.scrapefield.com/v1/x/retweeters?url=https%3A%2F%2Fx.com%2FFerrari%2Fstatus%2F1930652241230168143In your code
const params = new URLSearchParams({
"id": "1930652241230168143"
});
const res = await fetch(`https://api.scrapefield.com/v1/x/retweeters?${params}`, {
headers: { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` },
});
const { data, meta } = await res.json();
console.log(data, meta.credits_charged);Parameters
| Parameter | What it does |
|---|---|
url | The post's URL. |
id | The post's id. |
cursor | The meta.next_cursor from the previous page. Omit for the first page. |
fresh | Skip the cache and fetch now. Charged normally. Not available on trial credits — buy any pack to unlock it. default false |
Response
Returns an array of x_user. This is the demo’s answer, the one the playground above returns, in full rather than abbreviated — including the fields that come back null, because a field is null when the platform does not show it and you should know which ones those are before you build on them. A call with your key returns the account you ask for.
{
"data": [
{
"id": "308607432260354063",
"username": "nora_199",
"name": "Nora",
"description": "Field notes, mostly about cities.",
"location": "Copenhagen, Denmark",
"url": null,
"profile_url": "https://x.com/nora_199",
"profile_image_url": "https://cdn.example/x/6atXs-8hETjS.jpg",
"profile_banner_url": "https://cdn.example/x/banner/qXz1gI7c1wpf.jpg",
"created_at": "2022-12-06T01:54:52.000Z",
"verified": true,
"protected": false,
"public_metrics": {
"followers_count": 545015,
"following_count": 2947,
"tweet_count": 9865,
"listed_count": 195,
"like_count": 252,
"media_count": 1679
},
"pinned_tweet_id": null
},
{
"id": "187530138332149040",
"username": "karel_599",
"name": "Karel",
"description": "Coffee, bikes, and long walks that turn into arguments.",
"location": "Lisbon, United States",
"url": "https://karel599.example",
"profile_url": "https://x.com/karel_599",
"profile_image_url": "https://cdn.example/x/-uqmKUky04Yq.jpg",
"profile_banner_url": "https://cdn.example/x/banner/7Z_iRf5w2dLT.jpg",
"created_at": "2020-12-14T23:03:50.000Z",
"verified": true,
"protected": false,
"public_metrics": {
"followers_count": 161597,
"following_count": 2194,
"tweet_count": 19246,
"listed_count": 100,
"like_count": 16333,
"media_count": 821
},
"pinned_tweet_id": null
}
],
"meta": {
"request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
"credits_charged": 13,
"credits_remaining": 74218,
"cached": false,
"fetched_at": "2026-09-20T09:12:03Z",
"next_cursor": "eyJwIjoxLCJzIjoiYTNmOSJ9"
}
}Fields of x_user
An X account. Named after X's API v2.
| Field | What it is |
|---|---|
id | X's numeric id for the account. |
username | Without the @. |
name | The display name. |
description | The bio. |
location | As they wrote it. |
url | The link in their profile, unshortened, as X's API names it. |
profile_url | The account on X. |
profile_image_url | The profile picture, at full size. |
profile_banner_url | The header image above the profile. |
created_at | When the account was made. |
verified | Whether it has a checkmark, of any kind. |
protected | Whether its posts are private. |
public_metrics | The counts on the profile. null where the source does not give one. |
public_metrics.followers_count | How many accounts follow them. |
public_metrics.following_count | How many accounts they follow. |
public_metrics.tweet_count | Posts, replies and reposts together, as X counts them. |
public_metrics.listed_count | How many lists include them. |
public_metrics.like_count | Posts they have liked. |
public_metrics.media_count | Posts with photos or videos. |
pinned_tweet_id | The id of the post pinned to the profile. null where there is none, or the source does not say. |
What it costs
13 credits per successful call, whether we fetch it or serve it from cache — you pay for the answer, not for how we produced it. Responses are cached for 3 hours and a cached one tells you when the data was actually fetched. A call we fail costs 0 and is refunded automatically.
On the smallest pack that is $10.14 per 1,000 calls; on the largest, $5.72. The full table.
What people build with it
Questions
How much does the X (Twitter) retweeters API cost?
13 credits a call: $10.14 per 1,000 calls on the smallest pack and $5.72 on the largest. A call that fails costs nothing, and the refund is automatic. A cached answer costs the same as a fresh one. Credits are bought in packs and never expire; there is no subscription.
Do I need a X account, a login or cookies?
No. You need a key from us and nothing from X. We never take a customer's login, cookies or session, at any price, and no account of yours is ever at risk.
Can I try it without signing up?
Yes. Add demo=true and leave the key out, or press Send request in the playground on this page. The demo answers with a real answer about Ferrari, captured once a week, in exactly the shape a live call returns, whatever you ask, and charges nothing.
How fresh is the data?
An answer is kept for up to 3 hours, and a cached one says when it was fetched, in meta.fetched_at. Add fresh=true to fetch it again now, at the same price; it needs any purchase, not the trial.
What does it return?
A list of x_user objects. Its fields are named after X's API v2. A field is null when X does not show it, never missing. Every field is described on this page.
How do I get more than one page?
Pass meta.next_cursor back as cursor, and stop when it is null. Each page is a call, priced the same. A cursor lasts as long as the answer it belongs to is cached.
Can an AI agent call it?
Yes: it is the MCP tool get_x_retweeters on our MCP server, with the same parameters, answer and price. Without a key, the tool answers from the demo.