API X / Twitter

X / Twitter Ветка API

Определяет линейную ветку автора, содержащую публикацию X (Twitter), от корня через связанные продолжения автора. Ответы других пользователей не включаются.

3,75 USD/1 тыс. запросов, оплата за запрос, без подписки.

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.

Что вернул APItweets[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 ещё
}
Доступность
97,65%
30d · Вызовов: 469
Запросы
471
30 дн. · по неделям, последние недель: 12
Ответ
3,7s
медиана · 30d

Цены

Цена API X / Twitter Ветка

Вы платите
37,50 USD
3,75 USD/1 тыс. запросов, только за то, чем пользуетесь. Без ежемесячного тарифа.
Ваши первые запросы (26) бесплатны за счёт стартового баланса 0,10 USD.

Попробовать

Получите X / Twitter Ветка одним запросом

Открыть в
Пример ответа
Бесплатные запуски возвращают только первые результаты: 3. Пополните ключ, чтобы получить полный ответ.
{
  "found": true,
  "data": {
    "conversationId": "1842093771280384512",
    "threadLength": 3,
    "complete": true,
    "author": {
      "id": "1401882093771280384",
      "handle": "buildwithjonah",
      "name": "Jonah Ruiz"
    },
    "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"
      }
    ],
    "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
  }
}

Полный справочник по параметрам и ответу: каждое поле, тип и пример для этого эндпоинта.

Справочник

Один запрос, один формат ответа.

Каждое поле, которое вы отправляете, и каждое поле, которое получаете, с реальным примером.

Проверено 2026-10-07 · доступность и задержка измерены за 30d

Тело запроса

JSON, отправляется на этот эндпоинт.

  • urlstring

    https://x.com/buildwithjonah/status/1842093771280384512

    Канонический URL статуса на x.com или twitter.com с числовым ID твита. Можно передать любой твит из ветки автора; поставщик определит корень ветки.

Вы отправляете. Небольшое тело JSON. Показанные значения это примеры, замените их своими.

Ответ

JSON, по одному примеру значения на поле.

  • foundboolean

    true

datadata
  • conversationIdstring

    1842093771280384512

  • threadLengthnumber

    3

  • completeboolean

    true

  • urlstring

    https://x.com/buildwithjonah

  • verifiedboolean

    true

  • blueVerifiedboolean

    true

  • avatarUrlstring

    https://pbs.twimg.com/profile_images/1401882093771280384/jonah_400x400.jpg

  • coverUrlstring

    https://pbs.twimg.com/profile_banners/1401882093771280384/1700000000

  • biostring

    Building data infra. Previously eng @Segment. Writing about pipelines and APIs.

  • locationstring

    Denver, CO

  • followersnumber

    41200

  • followingnumber

    512

  • createdUtcnumber

    1517443200

authordata.author
  • idstring

    1401882093771280384

  • handlestring

    buildwithjonah

  • namestring

    Jonah Ruiz

each tweetdata.tweets[]
  • idstring

    1842093771280384512

  • urlstring

    https://x.com/buildwithjonah/status/1842093771280384512

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

  • conversationIdstring

    1842093771280384512

  • inReplyToIdnull

    null

  • authorIdstring

    1401882093771280384

  • authorHandlestring

    buildwithjonah

  • authorNamestring

    Jonah Ruiz

  • mediaarray
  • createdUtcnumber

    1727366400

  • likeCountnumber

    3820

  • replyCountnumber

    96

  • repostCountnumber

    412

  • quoteCountnumber

    28

  • viewCountnumber

    284000

  • bookmarkCountnumber

    1540

  • langstring

    en

  • isReplyboolean

    false

  • sourcestring

    Twitter Web App

Вы получаете. Именованные типизированные поля в одном формате, какой бы источник ни ответил.

Вопросы и ответы

Об API X / Twitter Ветка

AnyAPI X / Twitter Ветка API возвращает данные X / Twitter в виде нормализованного JSON одним вызовом POST к /v1/run/twitter.thread. Определяет линейную ветку автора, содержащую публикацию X (Twitter), от корня через связанные продолжения автора. Ответы других пользователей не включаются. AnyAPI возвращает одну нормализованную схему, какой бы источник ни ответил. Это стоит от 3,75 USD за 1000 запросов, в долларах США, без подписки и без ежемесячного минимума. За последние 30 дней 97,7% вызовов X / Twitter Ветка через AnyAPI завершились успешно, медианное время ответа 3,7 с, измерено вызовов: 469.

Это стоит от 3,75 USD за 1000 запросов, в долларах США, без подписки и без ежемесячного минимума. Вы пополняете один кошелёк в долларах США, и каждый вызов списывает с него. По некоторым неудавшимся запросам, оплаченным из кошелька, возникают расходы на обработку; мы передаём их по себестоимости, без наценки, а сумма списания указана в ответе с ошибкой.

Определяет линейную ветку автора, содержащую публикацию X (Twitter), от корня через связанные продолжения автора. Ответы других пользователей не включаются. Ответ это нормализованный JSON с тем же конвертом, что возвращает каждый эндпоинт AnyAPI, поэтому разбор второго эндпоинта это смена URL и ничего больше.

За последние 30 дней 97,7% вызовов X / Twitter Ветка через AnyAPI завершились успешно, медианное время ответа 3,7 с, измерено вызовов: 469. Это собственные измерения AnyAPI по трафику через шлюз, пересчитываемые непрерывно, а не опубликованный целевой уровень обслуживания.

Да. Новый аккаунт AnyAPI стартует с бесплатным балансом 0,10 USD, карта не нужна. Этого хватает на 26 вызовов X / Twitter Ветка по 0,00375 USD за каждый.

Отправьте запрос POST на https://api.getanyapi.com/v1/run/twitter.thread с вашим ключом AnyAPI в заголовке "Authorization: Bearer" и входными данными в теле JSON. Один и тот же ключ и один и тот же кошелёк работают на каждом эндпоинте AnyAPI.

Нет. Вы пополняете один предоплаченный баланс AnyAPI в долларах США, и каждый запрос списывает с него. Ежемесячного тарифа и минимума нет, а один и тот же баланс оплачивает каждый эндпоинт AnyAPI.

Да. Установите @getanyapi/sdk из npm для TypeScript или getanyapi из pip для Python. Оба вызывают любой эндпоинт AnyAPI с одним и тем же ключом, а ещё подойдёт любой HTTP-клиент.

Да. Агент может подключиться к MCP-серверу AnyAPI по адресу https://api.getanyapi.com/mcp или создать собственный бесплатный пробный ключ одним POST без аутентификации на https://api.getanyapi.com/agent/signup и вызывать этот эндпоинт по HTTP.