API para X / Twitter

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
x.com/buildwithjonah/status/1842093771280384512

Post

J

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

964123,8201,540
J

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.

O que a API retornoutweets[0]
{
"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
}
Disponibilidade
99,45%
30d · 7.304 chamadas
Requisições
7.377
30d · semanal, últimas 12 sem.
Resposta
2,7s
mediana · 30d

Preços

Preços do endpoint Thread da API para X / Twitter

Você paga
US$ 26,90
US$ 2,69/mil req., só pelo que você usar. Sem plano mensal.
Suas primeiras 37 requisições são grátis com o saldo inicial de US$ 0,10.

Teste

Obtenha Thread do X / Twitter em uma só requisição

Abrir em
Obter chave grátis
Resposta de exemplo
Execuções grátis retornam só os primeiros 3 resultados. Recarregue uma chave para receber a resposta completa.

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.

Você envia. Um corpo JSON pequeno. Os valores mostrados são exemplos para você trocar pelos seus.

Resposta

JSON, um valor de exemplo por campo.

authordata.author
  • 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.

datadata
  • 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.

each tweetdata.tweets[]

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.

each mediadata.tweets[].media[]

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.

top level
  • 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.

Você recebe. Campos nomeados e tipados, no mesmo formato, seja qual for a fonte que responder.

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.

Custa a partir de US$ 2,69 por mil requisições, em dólares, sem assinatura e sem mínimo mensal. Você recarrega uma carteira em dólares e cada chamada desconta dela. Algumas requisições pagas pela carteira que falham geram cobranças de processamento, que repassamos pelo custo, sem margem; a resposta de erro mostra o valor cobrado.

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 resposta é JSON normalizado, com o mesmo envelope que todo endpoint da AnyAPI retorna, então processar um segundo endpoint é só trocar a URL, e nada mais.

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. Estas são medições da própria AnyAPI sobre o tráfego que passa pelo gateway, recalculadas continuamente, e não uma meta de nível de serviço publicada.

Sim. Uma conta nova da AnyAPI começa com US$ 0,10 de saldo grátis, sem cartão, o que cobre 37 chamadas de Thread do X / Twitter a US$ 0,00269 cada.

Envie uma requisição POST para https://api.getanyapi.com/v1/run/twitter.thread com sua chave da AnyAPI em um cabeçalho "Authorization: Bearer" e a entrada como corpo JSON. A mesma chave e a mesma carteira funcionam em todos os endpoints da AnyAPI.

Não. Você adiciona dólares a um único saldo pré-pago da AnyAPI e cada requisição desconta dele. Não há plano mensal nem mínimo, e o mesmo saldo paga todos os endpoints da AnyAPI.

Sim. Instale @getanyapi/sdk pelo npm para TypeScript ou getanyapi pelo pip para Python. Os dois chamam todos os endpoints da AnyAPI com a mesma chave, e qualquer cliente HTTP também funciona.

Sim. Um agente pode se conectar ao servidor MCP da AnyAPI em https://api.getanyapi.com/mcp, ou criar a própria chave de teste grátis com um único POST sem autenticação para https://api.getanyapi.com/agent/signup e chamar este endpoint por HTTP.