/v1/call/x.threadX (Twitter) thread context API
Only on X.
The X (Twitter) thread context API returns the posts of an X thread by the ID of any post in it: the root post, the author's follow-ups and the replies among them. One call costs 9 credits ($0.018 to $0.03 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.
Last updated:
Request and response
curl https://api.socialtoai.com/v1/call/x.thread \ -H "Authorization: Bearer $SOCIALTOAI_KEY" \ -H "Content-Type: application/json" \ -d '{ "id": "2108198226532708497" }'import osimport requestsresponse = requests.post( "https://api.socialtoai.com/v1/call/x.thread", headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"}, json={ "id": "2108198226532708497", },)print(response.json())# Connected over MCP? Ask in plain words.Use the X thread context interface (x.thread) with id: 2108198226532708497.# Your AI calls the call tool with:{ "id": "2108198226532708497"}{ "op": "x.thread", "platform": "x", "status": "ok", "items": [ { "platform": "x", "id": "…", "ref": "…", "approx": [], "type": "content", "url": "https://example.com/…", "format": "video", "title": null, "text": "…", "published_at": "2026-10-08T14:10:00.000Z", "author": { "id": "…", "username": "…", "name": "…", "verified": true, "followers": 932621 }, "metrics": { "likes": 155, "comments": 7, "shares": null, "collects": 11, "views": 10637, "reposts": 40 }, "images": [], "hashtags": [], "is_pinned": null } ], "unavailable": ["title", "metrics.shares", "is_pinned"], "page": { "has_more": false }, "cost_credits": 9}nullcollects 11views 10,637reposts 40Names and text were removed from the sample; the numbers are as recorded.
2 parameters.
1 required.
Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Required | — | ID of any post in the thread |
| cursor | string | Optional | — | Pass page.cursor from the last response to get the next page. |
Where to get what you send.
idID of any post in the thread (e.g. 2108198226532708497)
No other interface of the platform returns it: take it from the web page or link as described above.
The fields of each item.
What X cannot give is marked.
| Field | Type | Meaning |
|---|---|---|
| items[].url | string | A link that opens the item. |
| items[].format | string | video, image, text or article. |
| items[].title | stringalways null | The title. |
| items[].text | string | The body text or caption. |
| items[].published_at | string | When it was published, ISO 8601 in UTC. |
| items[].author.id | string | The author's account ID. |
| items[].author.username | string | The author's handle. |
| items[].author.name | string | The author's display name. |
| items[].author.verified | boolean | Whether the author is verified. |
| items[].author.followers | integer | The author's follower count. |
| items[].metrics.likes | integer | Likes. |
| items[].metrics.comments | integer | Comments. |
| items[].metrics.shares | integeralways null | Shares. |
| items[].metrics.collects | integer | Saves. |
| items[].metrics.views | integer | Views or plays. |
| items[].metrics.reposts | integer | Reposts. |
| items[].images | string[] | Image addresses. |
| items[].hashtags | string[] | Hashtags, without the #. |
| items[].is_pinned | booleanalways null | Whether the author pinned it. |
nullFields X cannot giveRead null as “X did not give this”, not as zero. These are always null on this call:
titleThe title.metrics.sharesShares.is_pinnedWhether the author pinned it.
Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format
What to expect.
1 call per second per key, 5 after a purchase; going over is not charged. Rate limits
A failed call costs 0 credits and is never retried on its own. Error codes
Once connected over MCP, these questions use it.
Get the posts of an X thread by the ID of any post in it: 2108198226532708497.
9 creditscall {"op":"x.thread","id":"2108198226532708497"}