Skip to content
ScrapeField

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".

13credits
GEThttps://api.scrapefield.com/v1/x/retweeters
Try itno key needed13 credits on a real call · 0 here
https://api.scrapefield.com/v1/x/retweeters?url=https%3A%2F%2Fx.com%2FFerrari%2Fstatus%2F1930652241230168143

In 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

ParameterWhat it does
url
string · one of the post ids
The post's URL.
id
string · one of the post ids
The post's id.
cursor
string
The meta.next_cursor from the previous page. Omit for the first page.
fresh
boolean
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.

FieldWhat it is
id
string
X's numeric id for the account.
username
string
Without the @.
name
string · or null
The display name.
description
string · or null
The bio.
location
string · or null
As they wrote it.
url
URL · or null
The link in their profile, unshortened, as X's API names it.
profile_url
URL
The account on X.
profile_image_url
URL · or null
The profile picture, at full size.
profile_banner_url
URL · or null
The header image above the profile.
created_at
time, ISO 8601 UTC · or null
When the account was made.
verified
boolean · or null
Whether it has a checkmark, of any kind.
protected
boolean · or null
Whether its posts are private.
public_metrics
object
The counts on the profile. null where the source does not give one.
public_metrics.followers_count
integer · or null
How many accounts follow them.
public_metrics.following_count
integer · or null
How many accounts they follow.
public_metrics.tweet_count
integer · or null
Posts, replies and reposts together, as X counts them.
public_metrics.listed_count
integer · or null
How many lists include them.
public_metrics.like_count
integer · or null
Posts they have liked.
public_metrics.media_count
integer · or null
Posts with photos or videos.
pinned_tweet_id
string · or null
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.