API para X / Twitter: Thread
Obtenha a thread linear do próprio autor que contém um post do X (Twitter), da raiz até as continuações encadeadas pelo autor. Respostas de outros usuários ficam de fora.
US$ 2,69/mil req., pague por requisição, sem assinatura.
Post
Jonah Ruiz
@buildwithjonah
Spent the last 6 months building a data pipeline that normalizes 40 scraper APIs into one schema. Here is what broke, and what I would do differently. A thread.
4:00 PM · Sep 26, 2024 · 284K Views
Jonah Ruiz@buildwithjonah
First lesson: every provider's error format is different. We ended up writing a translation layer just to know whether a failure meant retry, or never retry.
{"id": "1842093771280384512","url": "https://x.com/buildwithjonah/status/1842093771280384512","text": "Spent the last 6 months building a data pipeline that normalizes 40 scraper APIs into one schema. Here is what broke, and what I would do differently. A thread.","conversationId": "1842093771280384512","inReplyToId": null,"authorId": "1401882093771280384","authorHandle": "buildwithjonah","authorName": "Jonah Ruiz",... 11 campos a mais}
Preços
Preços do endpoint Thread da API para X / Twitter
Teste
Obtenha Thread do X / Twitter em uma só requisição
Este exemplo mostra 43 de 45 campos. Ver todos os campos
{
"found": true,
"data": {
"conversationId": "1842093771280384512",
"threadLength": 3,
"complete": true,
"author": {
"id": "1401882093771280384",
"handle": "buildwithjonah",
"name": "Jonah Ruiz",
"url": "https://x.com/buildwithjonah",
"verified": true,
"blueVerified": true,
"avatarUrl": "https://pbs.twimg.com/profile_images/1401882093771280384/jonah_400x400.jpg",
"coverUrl": "https://pbs.twimg.com/profile_banners/1401882093771280384/1700000000",
"bio": "Building data infra. Previously eng @Segment. Writing about pipelines and APIs.",
"location": "Denver, CO",
"followers": 41200,
"following": 512,
"createdUtc": 1517443200
},
"tweets": [
{
"id": "1842093771280384512",
"url": "https://x.com/buildwithjonah/status/1842093771280384512",
"text": "Spent the last 6 months building a data pipeline that normalizes 40 scraper APIs into one schema. Here is what broke, and what I would do differently. A thread.",
"conversationId": "1842093771280384512",
"inReplyToId": null,
"authorId": "1401882093771280384",
"authorHandle": "buildwithjonah",
"authorName": "Jonah Ruiz",
"media": [],
"createdUtc": 1727366400,
"likeCount": 3820,
"replyCount": 96,
"repostCount": 412,
"quoteCount": 28,
"viewCount": 284000,
"bookmarkCount": 1540,
"lang": "en",
"isReply": false,
"source": "Twitter Web App"
},
{
"id": "1842093771280450048",
"url": "https://x.com/buildwithjonah/status/1842093771280450048",
"text": "First lesson: every provider's error format is different. We ended up writing a translation layer just to know whether a failure meant retry, or never retry.",
"conversationId": "1842093771280384512",
"inReplyToId": "1842093771280384512",
"authorId": "1401882093771280384",
"authorHandle": "buildwithjonah",
"authorName": "Jonah Ruiz",
"media": [
{
"type": "photo",
"url": "https://pbs.twimg.com/media/F9k2QoQWkAA_error_flow.jpg",
"width": 1600,
"height": 900
}
],
"createdUtc": 1727366460,
"likeCount": 1240,
"replyCount": 31,
"repostCount": 88,
"quoteCount": 5,
"viewCount": 91000,
"bookmarkCount": 512,
"lang": "en",
"isReply": true,
"source": "Twitter Web App"
},
{
"id": "1842093771280516096",
"url": "https://x.com/buildwithjonah/status/1842093771280516096",
"text": "Second lesson: pagination cursors are never portable across providers. We had to build our own cursor abstraction to keep client code simple.",
"conversationId": "1842093771280384512",
"inReplyToId": "1842093771280450048",
"authorId": "1401882093771280384",
"authorHandle": "buildwithjonah",
"authorName": "Jonah Ruiz",
"media": [],
"createdUtc": 1727366520,
"likeCount": 980,
"replyCount": 22,
"repostCount": 64,
"quoteCount": 3,
"viewCount": 68000,
"bookmarkCount": 401,
"lang": "en",
"isReply": true,
"source": "Twitter Web App"
}
]
}
}Referência completa de parâmetros e resposta - todos os campos, tipos e exemplos deste endpoint.
Referência
Uma requisição, um formato de resposta.
Cada campo que você envia e cada campo que você recebe, cada um com um exemplo real.
Última verificação em 2026-11-14 · disponibilidade e latência medidas em 30d
Corpo da requisição
JSON, enviado via POST para este endpoint.
- urlstring
https://x.com/buildwithjonah/status/1842093771280384512
URL de status canônica em x.com ou twitter.com com um ID numérico de tweet. Pode ser qualquer tweet da thread do autor; o provedor resolve a raiz da thread.
Resposta
JSON, um valor de exemplo por campo.
- avatarUrlstring
https://pbs.twimg.com/profile_images/1401882093771280384/jonah_400x400.jpg
Avatar image URL of the author.
- biostring
Building data infra. Previously eng @Segment. Writing about pipelines and APIs.
Bio text on the author's profile.
- blueVerifiedboolean
true
Whether the author carries an X blue verification badge.
- coverUrlstring
https://pbs.twimg.com/profile_banners/1401882093771280384/1700000000
Profile banner image URL of the author.
- createdUtcnumber
1517443200
UTC epoch timestamp in seconds (Unix time) the author's account was created. Multiply by 1000 for a JS Date in milliseconds.
- followersinteger
41200
Follower count of the author.
- followinginteger
512
Number of accounts the author follows.
- handlestring
buildwithjonah
Populated whenever the provider has data for the entity.
- idstring
1401882093771280384
Populated whenever the provider has data for the entity.
- locationstring
Denver, CO
Location text on the author's profile.
- namestring
Jonah Ruiz
Populated whenever the provider has data for the entity.
- urlstring
https://x.com/buildwithjonah
Canonical X profile URL of the thread's author.
- verifiedboolean
true
Whether the author carries a legacy X verification badge.
- completeboolean
true
Whether the provider reached the end of the self-thread without hitting its internal cap.
- conversationIdstring
1842093771280384512
Conversation ID shared by the self-thread tweets. Populated whenever the provider has data for the entity.
- threadLengthinteger
3
Number of tweets returned in the self-thread.
Ordered self-thread tweets. Replies from other users are excluded. Populated whenever the provider has data for the entity.
- authorHandlestring
buildwithjonah
Populated whenever the provider has data for the entity.
- authorIdstring
1401882093771280384
Populated whenever the provider has data for the entity.
- authorNamestring
Jonah Ruiz
Populated whenever the provider has data for the entity.
- bookmarkCountinteger
1540
Bookmark count of the post.
- conversationIdstring
1842093771280384512
- createdUtcnumber
1727366400
UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
- idstring
1842093771280384512
Populated whenever the provider has data for the entity.
- inReplyToIdstring
null
- isReplyboolean
false
Whether the post is a reply to another post.
- langstring
en
Two-letter language code X detected for the post.
- likeCountinteger
3820
Like count of the post.
- quoteCountinteger
28
Quote count of the post.
- replyCountinteger
96
Reply count of the post.
- repostCountinteger
412
Repost count of the post.
- sourcestring
Twitter Web App
Client the post was sent from, e.g. "Twitter Web App".
- textstring
Spent the last 6 months building a data pipeline that normalizes 40 scraper APIs into one schema. Here is what broke, and what I would do differently. A thread.
Populated whenever the provider has data for the entity.
- urlstring
https://x.com/buildwithjonah/status/1842093771280384512
Populated whenever the provider has data for the entity.
- viewCountinteger
284000
View count of the post.
Photo, video, and GIF attachments on the post. Empty when the post has none.
- heightinteger
Pixel height of the media item, when the lane reports it.
- typestring
One of photo, video, or gif.
- urlstring
Image URL. For a video or GIF this is the poster/thumbnail frame. X media URLs on pbs.twimg.com are publicly fetchable without authentication; append ?name=orig for the full-resolution original.
- videoUrlstring
Playable video file URL. Present only for video and gif items.
- widthinteger
Pixel width of the media item, when the lane reports it.
- foundboolean
true
Whether the provider returned a tweet thread result.
- reason"not_found"
Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
Vende esta API? Veja o schema completo que o seu endpoint precisa retornar.
Dúvidas frequentes
Sobre o endpoint Thread da API para X / Twitter
O endpoint Thread da AnyAPI para X / Twitter retorna dados de X / Twitter em JSON normalizado com uma chamada POST para /v1/run/twitter.thread. Obtenha a thread linear do próprio autor que contém um post do X (Twitter), da raiz até as continuações encadeadas pelo autor. Respostas de outros usuários ficam de fora. A AnyAPI retorna um schema normalizado, seja qual for a fonte que atende. Custa a partir de US$ 2,69 por mil requisições, em dólares, sem assinatura e sem mínimo mensal. Nos últimos 30 dias, 99,5% das chamadas ao endpoint Thread da API para X / Twitter feitas pela AnyAPI tiveram sucesso, com tempo de resposta mediano de 2,7 segundos, em 7.304 chamadas medidas.