API Toutiao Посты пользователя
Состояние API
- Состояние за 24 ч
- Норма
- Среднее время за 24 ч
- —
- Стабильно / норма
- Доступно
- Ограничено
- Почти недоступно
Последние 24 часа
Последние 30 дней
Получите список статей, видео и коротких постов автора Toutiao: заголовок, текст, прочтения или просмотры, лайки, комментарии, репосты и время публикации. Раздел профиля выбирается через tab. Один пакет может не охватывать весь архив.
Toutiao Posts by user выводит опубликованный контент аккаунта по его user_id: статьи, видео, короткие видео и короткие посты-статусы. Для каждой публикации возвращаются название, текст, обложка, прочтения или воспроизведения, лайки, комментарии, репосты, время публикации и регион, а также имя автора и данные верификации. Контент-стратеги и специалисты по медиамониторингу используют эту возможность, чтобы следить за публикациями автора, понимать, какие форматы привлекают читателей, и анализировать, как со временем меняются показатели публикаций конкурента.
tab выбирает раздел профиля для вывода и не влияет на то, как Article details получает отдельный пост. author_auth_info содержит текст верификации, который Toutiao показывает рядом с автором, например тематику его контента. user_id принимает тот же токен или ссылку на профиль, что и возможность Toutiao Details. Обычно это строка, начинающаяся с MS4w.
Цена: $0.56 за 1 000 запросов ($0.000556 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.
Промпт для ИИ
Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Toutiao Посты пользователя (toutiao/user_posts).
Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: toutiao и action: user_posts, а параметры передайте в params.
- Обязательные параметры:
- user_id: Токен профиля пользователя или secUid, обычно начинается с MS4w. В этом поле можно также передать полный URL профиля Toutiao. Отображаемые никнеймы и короткие числовые UID не принимаются.
- Необязательные параметры:
- tab: Выбирает вкладку ленты профиля в user_posts. Допустимые значения: all (по умолчанию), article, video, ugc и short_video. Не меняет типы записей в детальных данных.
- limit: Максимальное число записей в этом вызове, целое число от 1 до 100. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. (по умолчанию: 20)
- Возвращает список записей. Основные поля каждой записи: id, url, type, title, text, content_text, cover, read_count, play_count, like_count, comment_count, share_count; всего полей: 22, полный список: https://api.everyinfra.com/api/v1/social/catalog?platform=toutiao.
- Пример тела запроса:
{
"platform": "toutiao",
"action": "user_posts",
"params": {
"user_id": "MS4wLjABAAAA3KU9ifwN12G41E6PJRpZgIfzVrXWQ4WPF66ns54c0uw"
}
}
- Цена: $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 | Да | toutiao | Идентификатор платформы, фиксированное значение. |
action | body | string | Да | user_posts | Идентификатор возможности, фиксированное значение. |
user_id | body.params | string | Да | - | Токен профиля пользователя или secUid, обычно начинается с MS4w. В этом поле можно также передать полный URL профиля Toutiao. Отображаемые никнеймы и короткие числовые UID не принимаются. |
tab | body.params | string | Нет | - | Выбирает вкладку ленты профиля в user_posts. Допустимые значения: all (по умолчанию), article, video, ugc и short_video. Не меняет типы записей в детальных данных. |
limit | body.params | integer (1–100) | Нет | 20 | Максимальное число записей в этом вызове, целое число от 1 до 100. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. При значениях выше максимума эндпоинт возвращает ошибку 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": "toutiao",
"action": "user_posts",
"params": {
"user_id": "MS4wLjABAAAA3KU9ifwN12G41E6PJRpZgIfzVrXWQ4WPF66ns54c0uw"
}
}'Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.
Пример ответа
Получено September 26, 2026 at 08:56 (UTC) вызовом этого API с параметрами из примера кода выше. results и count — реальный ответ этого вызова, из которого удалены персональные данные (имена, никнеймы, аватары, ссылки на профили, контакты); в списке оставлены первые 2. id, billing и quota меняются при каждом вызове, поэтому показана только их структура.
{
"id": "req_…",
"platform": "toutiao",
"action": "user_posts",
"results": [
{
"id": "•••",
"url": "https://www.toutiao.com/article/7689787715704914442",
"type": "article",
"title": "2026中国国际孔子文化节|典籍藏风骨,文脉铸脊梁",
"text": "孔子博物馆作为山东一张重要的文化名片,承载的不只是典籍,更是融入国人血脉的精神底色。让我们与中国政法大学思政研究所教师郭继承老师一起探讨中国人延续千年的精神内核“仁义礼智信”与“家国天下”,品读千年经典,传承中华文脉。",
"cover": "https://p3-sign.toutiaoimg.com/tos-cn-i-tjoges91tu/52435ed17c152886afe1f7a3a38289bd~720x380_cs.webp?_iz=31826&bid=11&from=article.profile_all&gid=7689787715704914442&lk3s=06827d14&x-expires=1793010615&x-signature=qdMi0gLhunIfzbcnFlumiJGFb24%3D",
"read_count": 0,
"like_count": 0,
"comment_count": 0,
"share_count": 0,
"source": "闪电新闻",
"author_name": "•••",
"author_id": "MS4wLjABAAAA3KU9ifwN12G41E6PJRpZgIfzVrXWQ4WPF66ns54c0uw",
"author_verified": true,
"author_auth_info": "闪电新闻官方账号",
"posted_at": "2026-09-26 18:24",
"platform": "toutiao"
},
{
"id": "•••",
"url": "https://www.toutiao.com/video/7689787812941742126",
"type": "video",
"title": "听风营地 风里有饭香 树下有童年",
"cover": "https://p3-sign.toutiaoimg.com/tos-cn-i-tjoges91tu/fa36a70315d5e737371d88e5dab862c3~tplv-tt-profile_shortvideo:270:360.jpeg?_iz=3710&bid=8&from=shortvideo.profile_all&gid=7689787812941742126&lk3s=06827d14&x-expires=1791023415&x-signature=jzsygXZXKSBDCHw9hOCuvx3q%2FY8%3D",
"read_count": 4,
"play_count": 4,
"like_count": 0,
"comment_count": 0,
"share_count": 0,
"author_name": "•••",
"author_id": "MS4wLjABAAAA3KU9ifwN12G41E6PJRpZgIfzVrXWQ4WPF66ns54c0uw",
"author_verified": true,
"author_auth_info": "闪电新闻官方账号",
"posted_at": "2026-09-26 18:24",
"platform": "toutiao",
"duration_sec": 33
}
],
"count": 20,
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}Поля ответа
Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.
| Поле | Значение |
|---|---|
id | Уникальный ID записи на платформе. Уникален только в пределах одной платформы; на разных платформах ID могут повторяться. |
url | Ссылка на запись на платформе. |
type | Тип записи; значения зависят от возможности (например, video / image / text). |
title | Заголовок. null, если на платформе нет заголовков (например, у текстовых постов). |
text | Основной текст без HTML возвращается полностью и никогда не обрезается (на нескольких платформах результаты списковых запросов содержат только фрагмент; это указано в примечаниях к полям платформы). |
content_text | Трактуется так же, как на самой платформе |
cover | Трактуется так же, как на самой платформе |
read_count | Трактуется так же, как на самой платформе |
play_count | Трактуется так же, как на самой платформе |
like_count | Лайки. null означает, что платформа или эта возможность не раскрывает значение; это не 0. |
comment_count | Комментарии. null означает, что значение не раскрыто, а не 0. |
share_count | Количество раз, когда записью поделились. null означает, что значение не раскрыто, а не 0. |
source | Трактуется так же, как на самой платформе |
author_name | Отображаемое имя автора. |
author_id | Токен профиля автора вида MS4w (video, только горизонтальные видео); передавайте его как user_id в profile или user_posts. |
author_verified | Верифицирован ли автор; в comments — комментатор. |
author_auth_info | Описание верификации, например «автор в своей области»; в comments — описание комментатора, например «официальный аккаунт». Отсутствует, если его нет. |
region | Трактуется так же, как на самой платформе |
posted_at | Время публикации в ISO 8601, UTC (например, 2026-08-07T12:34:56+00:00). Нестандартные строки платформы передаются как есть, поэтому учитывайте это при разборе. null означает, что платформа его не раскрывает. |
platform | Идентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok). |
duration_sec | Трактуется так же, как на самой платформе |
duration_seconds | Длительность в секундах. null для контента, который не является видео или аудио. |
image_urls | Массив ссылок на изображения в порядке показа на платформе; поле отсутствует, если изображений нет. |
FAQ
Как вывести только видео или только статьи?
Задайте для tab значение article для статей, video или short_video для двух видов видео или ugc для коротких постов-статусов. Чтобы получить всё, не указывайте параметр или передайте all. Каждое значение соответствует одному разделу профиля автора, поэтому, если хотите хранить разделы отдельно, делайте по одному вызову на раздел.
Какой счётчик использовать для сравнения постов?
read_count для статей и play_count для видео, затем like_count, comment_count и share_count для вовлечённости. Null в них означает, что значение не раскрыто, а не что оно равно нулю. Проверяйте type в каждой записи и ранжируйте в пределах одного типа, потому что прочтение и воспроизведение являются разными показателями.
Можно ли искать посты одного автора по ключевому слову?
Нет. Эта возможность выводит посты по разделам профиля. Для поиска внутри одного аккаунта используйте возможность Toutiao Profile search: передайте ей тот же user_id и ключевое слово. Чтобы получить отдельный пост, передайте его url в возможность Toutiao Article details.
Ошибки и оплата
- 401
- Ключ отсутствует или недействителен.
- 402
- Недостаточно средств на балансе. Сначала пополните баланс.
- 422
- Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
- 429
- Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
- 503
- Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
- 200 (пусто)
- Нет данных. Без списания.
Официальные источники
Используются только для проверки объектов и терминов. Они не означают, что платформа разрешила или одобрила работу EveryInfra.
- Toutiao: Micro-Toutiao и статьи — разные типы контента ↗
Справочный центр для авторов Toutiao описывает Micro-Toutiao как короткий контент для соцсетей и отдельно рассказывает о процессах его публикации и редактирования. Этот API читает посты в соответствии с описанием столбцов выше; ссылка на эти процессы не даёт ему возможности публиковать, редактировать, участвовать в темах или получать доход автора.
Проверено 2026-09-04