API Douyin Поиск авторов в Xingtu
Состояние API
Данные о состоянии этого API временно недоступны, поэтому неизвестно, как он работал в последнее время. Это не значит, что API не работает.
Ищите записи об авторах Xingtu в Douyin по ключевому слову. Получайте коэффициент вовлечённости, ожидаемое число воспроизведений, прирост подписчиков, коммерческий рейтинг, диапазоны GMV (не точный GMV), индексы ценности и расценки в CNY в зависимости от длины видео. creator_id служит только для сравнения этих записей. Для аналитики и прайс-листов нужен douyin_id из creator_search.
Цена: $0.56 за 1 000 запросов ($0.000556 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.
Промпт для ИИ
Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Douyin Поиск авторов в Xingtu (douyin/xingtu_creator_search).
Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: douyin и action: xingtu_creator_search, а параметры передайте в params.
- Обязательные параметры:
- keyword: Поисковая фраза для поиска авторов через xingtu_creator_search. Возвращаемый creator_id позволяет идентифицировать и сравнивать записи внутри этой выдачи Xingtu.
- Необязательные параметры:
- limit: Максимальное число записей в этом вызове, целое число от 1 до 20. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. (по умолчанию: 20)
- Возвращает список записей. Основные поля каждой записи: creator_id, user_id, nickname (Отображаемое имя аккаунта), follower_count, gender (Пол, указанный в аккаунте), city, province, creator_score, engagement_rate_30d, expected_play_count, expected_natural_play_count, interaction_median_30d; всего полей: 28, полный список: https://api.everyinfra.com/api/v1/social/catalog?platform=douyin.
- Пример тела запроса:
{
"platform": "douyin",
"action": "xingtu_creator_search",
"params": {
"keyword": "美食"
}
}
- Цена: $0.56 за 1 000 запросов; неудачные и пустые результаты не оплачиваются.
- Для десятков или сотен целей добавьте в тело запроса "mode": "async": вы сразу получите job_id и сможете опрашивать GET https://api.everyinfra.com/api/v1/jobs/{job_id}, чтобы получить результат.
- При ответе 422 исправьте запрос, используя предложенные в ошибке имена параметров и допустимые значения; при ответе 429 или 503 подождите указанное в Retry-After время и повторите попытку.
Прежде чем писать код, спросите меня, какие цели мне нужны, сколько их будет, какие поля мне нужны и в каком формате вывести результат; затем согласуйте со мной план и примерную стоимость.Параметры запроса
| Имя | Расположение | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|---|
Authorization | header | string | Да | - | Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода. |
platform | body | string | Да | douyin | Идентификатор платформы, фиксированное значение. |
action | body | string | Да | xingtu_creator_search | Идентификатор возможности, фиксированное значение. |
keyword | body.params | string | Да | - | Поисковая фраза для поиска авторов через xingtu_creator_search. Возвращаемый creator_id позволяет идентифицировать и сравнивать записи внутри этой выдачи Xingtu. Его не принимают xingtu_creator_analytics и xingtu_rate_card: им нужен douyin_id из обычного creator_search. Это не ключевое слово для товаров и не поиск видео. |
limit | body.params | integer (1–20) | Нет | 20 | Максимальное число записей в этом вызове, целое число от 1 до 20. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. При значениях выше максимума эндпоинт возвращает ошибку 422 до списания средств. |
Примеры кода
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "douyin",
"action": "xingtu_creator_search",
"params": {
"keyword": "美食"
}
}'Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.
Пример ответа
Получено October 24, 2026 at 18:28 (UTC) вызовом этого API с параметрами из примера кода выше. results и count — реальный ответ этого вызова, из которого удалены персональные данные (имена, никнеймы, аватары, ссылки на профили, контакты). id, billing и quota меняются при каждом вызове, поэтому показана только их структура.
{
"id": "req_…",
"platform": "douyin",
"action": "xingtu_creator_search",
"results": [
{
"creator_id": "•••",
"user_id": "•••",
"nickname": "•••",
"follower_count": 2155675,
"gender": 0,
"city": "马鞍山市",
"province": "安徽省",
"creator_score": 68.36498551229425,
"engagement_rate_30d": 0.0186,
"expected_play_count": 432678,
"expected_natural_play_count": 260639,
"interaction_median_30d": 6220.5,
"play_over_rate_30d": 0.0426,
"follower_growth_30d": 1825.53,
"follower_growth_rate_15d": -0.003136898870836594,
"content_themes": [
"家常菜教程",
"下饭菜教程",
"家常菜谱"
],
"ecommerce_level": "L1",
"gmv_30d_range": "1k-3w",
"gpm_30d_range": "<=80",
"average_order_value_30d_range": "50-200",
"commercial_index": 73.54,
"conversion_index": 72.96,
"spread_index": 74.96,
"shopping_index": 77.64,
"quote_20_60s_cny": 130,
"quote_60s_plus_cny": 150,
"platform": "douyin"
}
],
"count": 1,
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}Поля ответа
Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.
| Поле | Значение |
|---|---|
creator_id | Трактуется так же, как на самой платформе |
user_id | Уникальный ID пользователя на платформе. |
nickname | Отображаемое имя аккаунта. |
follower_count | Подписчики. null означает, что значение не раскрыто, а не 0. |
gender | Пол, указанный в аккаунте. |
city | Название города на языке платформы в исходном виде. |
province | Трактуется так же, как на самой платформе |
creator_score | Трактуется так же, как на самой платформе |
engagement_rate_30d | Трактуется так же, как на самой платформе |
expected_play_count | Трактуется так же, как на самой платформе |
expected_natural_play_count | Трактуется так же, как на самой платформе |
interaction_median_30d | Трактуется так же, как на самой платформе |
play_over_rate_30d | Трактуется так же, как на самой платформе |
follower_growth_30d | Трактуется так же, как на самой платформе |
follower_growth_rate_15d | Трактуется так же, как на самой платформе |
content_themes | Трактуется так же, как на самой платформе |
ecommerce_level | Трактуется так же, как на самой платформе |
ecommerce_score | Трактуется так же, как на самой платформе |
gmv_30d_range | Трактуется так же, как на самой платформе |
gpm_30d_range | Трактуется так же, как на самой платформе |
average_order_value_30d_range | Трактуется так же, как на самой платформе |
commercial_index | Трактуется так же, как на самой платформе |
conversion_index | Трактуется так же, как на самой платформе |
spread_index | Трактуется так же, как на самой платформе |
shopping_index | Трактуется так же, как на самой платформе |
quote_1_20s_cny | Трактуется так же, как на самой платформе |
quote_20_60s_cny | Трактуется так же, как на самой платформе |
quote_60s_plus_cny | Трактуется так же, как на самой платформе |
platform | Идентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok). |
Ошибки и оплата
- 401
- Ключ отсутствует или недействителен.
- 402
- Недостаточно средств на балансе. Сначала пополните баланс.
- 422
- Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
- 429
- Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
- 503
- Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
- 200 (пусто)
- Нет данных. Без списания.