Инструкция по X/Twitter API

X/Twitter API: Поиск — Посты по запросу

Находите объекты сущности «Поиск» в X/Twitter по пользовательскому запросу и подключайте результаты к поиску, каталогу или исследовательскому интерфейсу.

Операция «Посты по запросу» нужна, когда точный ID объекта ещё неизвестен и сначала требуется найти подходящие результаты.

Метод GET
Сущность Поиск
Версии 2
Что делает этот эндпоинт

Что можно сделать с этим API-методом

Сначала оцените результат и сценарии применения, затем переходите к параметрам и рабочему примеру запроса.

Результат запроса

Ответ содержит найденные объекты «Поиск», их публичный контекст и данные для продолжения поиска, если доступна пагинация.

Когда использовать

Операция «Посты по запросу» нужна, когда точный ID объекта ещё неизвестен и сначала требуется найти подходящие результаты.

Типовые сценарии использования

Поиск в продукте

Добавляйте поиск по данным X/Twitter в клиентский или внутренний интерфейс.

Формирование каталога

Находите кандидатов по запросам и сохраняйте релевантные объекты для дальнейшего обогащения.

Исследование рынка

Собирайте поисковую выдачу для анализа тем, авторов и конкурентного окружения.

Доступные версии

Версия ответа

Обе версии решают одну и ту же задачу и принимают одинаковые параметры. Переключатель нужен, чтобы сравнить структуру ответа и выбрать версию, которую ожидает ваш клиент.

Версия ответа V2

Переключайте версии на этой странице, чтобы сравнивать структуру ответа без смены URL инструкции.

Что остается одинаковым

Аутентификация, обязательные параметры и форма запроса одинаковы для V1 и V2. Версия задаётся в пути запроса и определяет структуру ответа.

Что меняется между версиями

Главное отличие — envelope ответа. Для новых интеграций лучше использовать V2, а V1 оставлять только для совместимости с уже существующей клиентской интеграцией.

Как использовать

Как вызвать метод

Для обеих версий используется один заголовок API-ключа и одинаковые параметры строки запроса. Ниже сначала показаны общие параметры, затем путь и примеры кода для выбранной версии.

Входные параметры

Общие параметры
Параметр Обязателен Тип Пример Описание
query Да str value Поисковый запрос пользователя.
all_of_these_words Нет str | None value Optional words that must all appear in matching Twitter/X posts. Example: AI robotics.
any_of_these_words Нет str | None value Optional words where any one may appear in matching Twitter/X posts. Example: launch release.
cursor Нет str | None QVFB... Курсор следующей страницы из предыдущего ответа. Не передавайте его для первой страницы.
exact_phrase Нет str | None value Optional exact phrase that must appear in matching Twitter/X posts. Example: machine learning.
from_accounts Нет str | None value Optional source accounts without or with @, separated by spaces or commas. Example: technews xai.
hashtags Нет str | None value Optional hashtags to require, separated by spaces or commas. Example: #TechNews #AI.
language Нет str | None value Optional Twitter/X language code. Use 'any' to omit language filtering. Example: en.
link_filter Нет include | only | exclude | None value Optional link filter: include all posts, only posts with links, or exclude links. Example: only.
mentioning_accounts Нет str | None value Optional mentioned accounts without or with @, separated by spaces or commas. Example: technews elonmusk.
min_likes Нет int | None value Optional minimum like count. Example: 100.
min_replies Нет int | None value Optional minimum reply count. Example: 10.
min_retweets Нет int | None value Optional minimum repost/retweet count. Example: 25.
none_of_these_words Нет str | None value Optional words to exclude from matching Twitter/X posts. Example: rumor leak.
reply_filter Нет include | only | exclude | None value Optional reply filter: include all posts, only replies, or exclude replies. Example: exclude.
since_date Нет date | None value Optional earliest post date in ISO YYYY-MM-DD format. Example: 2026-01-01.
tag Нет Top | Latest | People | Photos | Videos | None value Optional Twitter/X search product filter. Example: Latest.
to_accounts Нет str | None value Optional reply target accounts without or with @, separated by spaces or commas. Example: technews.
until_date Нет date | None value Optional latest post date in ISO YYYY-MM-DD format. Example: 2026-01-31.

Путь запроса для выбранной версии

V2

Версию имеет смысл выбирать, когда вы копируете точный путь эндпоинта, пример URL и фрагмент кода. Список параметров выше при этом остается тем же самым.

GET /api/v2/twitter.com/search/tweets-by-query

Нормализованный формат

Примеры кода

curl --request GET \
  --url "https://www.scrapestorm.net/api/v2/twitter.com/search/tweets-by-query" \
  --header "X-API-Key: 00000000-0000-4000-8000-000000000000" \
  --get --data-urlencode 'query=value' \
  # Optional parameters:
  # --data-urlencode 'all_of_these_words=value'
  # --data-urlencode 'any_of_these_words=value'
  # --data-urlencode 'cursor=QVFB...'
  # --data-urlencode 'exact_phrase=value'
  # --data-urlencode 'from_accounts=value'
  # --data-urlencode 'hashtags=value'
  # --data-urlencode 'language=value'
  # --data-urlencode 'link_filter=value'
  # --data-urlencode 'mentioning_accounts=value'
  # --data-urlencode 'min_likes=value'
  # --data-urlencode 'min_replies=value'
  # --data-urlencode 'min_retweets=value'
  # --data-urlencode 'none_of_these_words=value'
  # --data-urlencode 'reply_filter=value'
  # --data-urlencode 'since_date=value'
  # --data-urlencode 'tag=value'
  # --data-urlencode 'to_accounts=value'
  # --data-urlencode 'until_date=value'
Пример ответа

Пример ответа по версиям

Пример сокращён до ключевых полей и первых элементов коллекций, чтобы структуру ответа можно было быстро оценить. Переключатель версии меняет формат JSON.

Пример ответа

V2 — JSON

Проверенный пример

Компактный JSON-пример сформирован из последней успешной проверки версии V2.

{
  "success": true,
  "status": "ok",
  "pagination": {
    "cursor": "QVFB...",
    "has_more": true
  },
  "search_context": {
    "query": "Python code",
    "tag": "Top"
  },
  "data": {
    "tweets": {
      "count": 20,
      "items": [
        {
          "url": "https://x.com/freeCodeCamp/status/2078389573567050090",
          "tweet_id": "2078389573567050090",
          "text": "Learning to code can feel overwhelming when you don't know where to start.\n\nSo here's a course for you: Sunny teaches you Python from the ground up.\n\nYou'll install Python, writ…",
          "hashtags": [],
          "emails": [],
          "created_at": "2026-07-18T08:01:03Z",
          "language": "en",
          "source": "Buffer",
          "author": {
            "url": "https://x.com/freeCodeCamp",
            "user_id": "1668100142",
            "username": "freeCodeCamp",
            "display_name": "freeCodeCamp.org",
            "description": "We're a community of millions of people who are building new skills and getting new jobs together. A 501(c)(3) public charity. Tweets by @abbeyrenn.",
            "emails": [],
            "external_links": [],
            "location": "Just here on Earth... for now",
            "created_at": "2013-08-13T15:27:51Z",
            "is_verified": false,
            "is_blue_verified": true,
            "is_protected": false,
            "possibly_sensitive": false,
            "default_profile": false,
            "default_profile_image": false,
            "followers_count": 1204998,
            "following_count": 159,
            "tweet_count": 36772,
            "media_count": 5153,
            "listed_count": 6833,
            "like_count": 72305,
            "professional_type": null,
            "professional_category_name": null,
            "affiliated_account": null,
            "_more_fields": "5 more fields"
          },
          "is_from_automated_account": null,
          "media": {
            "images": [
              "…"
            ],
            "videos": [],
            "gifs": []
          },
          "external_links": [],
          "user_mentions": [],
          "is_reply": false,
          "reply": null,
          "is_quote": false,
          "quote_tweet_id": null,
          "is_retweet": false,
          "retweeted_tweet_id": null,
          "reply_count": 4,
          "retweet_count": 108,
          "quote_count": 3,
          "like_count": 599,
          "bookmark_count": 455,
          "_more_fields": "2 more fields"
        },
        {
          "url": "https://x.com/PythonPr/status/2078910492068786514",
          "tweet_id": "2078910492068786514",
          "text": "Pyramids in Python Code Examples for Beginners ⭐ https://t.co/QngwbiMVkb",
          "hashtags": [],
          "emails": [],
          "created_at": "2026-07-19T18:31:00Z",
          "language": "en",
          "source": "Twitter Web App",
          "author": {
            "url": "https://x.com/PythonPr",
            "user_id": "855384627975831553",
            "username": "PythonPr",
            "display_name": "Python Programming",
            "description": "#python #programming",
            "emails": [],
            "external_links": [],
            "location": "United States",
            "created_at": "2017-04-21T11:36:02Z",
            "is_verified": false,
            "is_blue_verified": true,
            "is_protected": false,
            "possibly_sensitive": false,
            "default_profile": true,
            "default_profile_image": false,
            "followers_count": 208924,
            "following_count": 1162,
            "tweet_count": 9883,
            "media_count": 4108,
            "listed_count": 1243,
            "like_count": 20597,
            "professional_type": null,
            "professional_category_name": null,
            "affiliated_account": null,
            "_more_fields": "5 more fields"
          },
          "is_from_automated_account": null,
          "media": {
            "images": [
              "…"
            ],
            "videos": [],
            "gifs": []
          },
          "external_links": [],
          "user_mentions": [],
          "is_reply": false,
          "reply": null,
          "is_quote": false,
          "quote_tweet_id": null,
          "is_retweet": false,
          "retweeted_tweet_id": null,
          "reply_count": 3,
          "retweet_count": 8,
          "quote_count": 0,
          "like_count": 62,
          "bookmark_count": 39,
          "_more_fields": "2 more fields"
        },
        {
          "_more_items": 18
        }
      ]
    }
  }
}
Что делать дальше

Продолжить оценку API-метода

Используйте инструкцию как первую точку принятия решения, а затем переходите к покрытию, стоимости и общим правилам интеграции перед запуском API-метода.

Открыть страницу X/Twitter API

Сравните соседние сущности, группы API-методов и связанные инструкции перед внедрением.

Открыть страницу платформы

Сравнить стоимость API-методов

Посмотрите, где этот API-метод находится в публичной таблице цен, прежде чем масштабировать использование.

Открыть тарифы

Проверить правила интеграции

Откройте стартовую документацию, чтобы быстро проверить аутентификацию, версионирование, повторы запросов и различия между тестовым и рабочим API.

Открыть документацию
FAQ

Вопросы, которые команды задают до внедрения

Эти ответы помогают понять, подходит ли API-метод под ваш сценарий, выбор версии и запуск.

Какие данные возвращает этот метод X/Twitter API?

Метод выполняет операцию «Посты по запросу» для сущности «Поиск». Точный набор полей показан в компактном примере ответа ниже.

Какую версию ответа выбрать: V1 или V2?

Для новой интеграции выбирайте V2 с нормализованной структурой. V1 нужен только для совместимости с клиентами, которые уже используют исходный формат платформы.

Что нужно для первого запроса?

Создайте API-ключ, передайте его в заголовке и заполните обязательные параметры из таблицы. Готовые примеры кода уже содержат правильный путь и структуру запроса.