Наша собственная статистика посещений включена всегда. Google Analytics помогает нам понять, как пользуются нашими публичными страницами (но не вашим рабочим пространством после входа), и включается только с вашего разрешения. См. нашу политику конфиденциальности.

API Xiaohongshu Посты пользователя

POST

Состояние API

Данные о состоянии этого API временно недоступны, поэтому неизвестно, как он работал в последнее время. Это не значит, что API не работает.

Получите заметки, опубликованные автором Xiaohongshu, по 20 на странице. Сначала идут закреплённые заметки, затем остальные от новых к старым. Получите фрагмент текста, счётчики и ссылки на видео. Для следующих страниц используйте page_token. Ссылки здесь не содержат токена доступа, а текст сокращён. Чтобы получить ссылку, готовую для открытия в браузере, и полный текст, вызовите note.

Xiaohongshu Posts by user выводит список заметок, опубликованных одним аккаунтом, по его user_id: заголовок, фрагмент текста, обложку, число лайков, сохранений, комментариев и репостов и время публикации, а для видеозаметок также ссылку на воспроизведение и длительность. Используйте эту возможность, чтобы увидеть, что публикует автор и какие форматы работают лучше, при составлении шорт-листа авторов, наблюдении за аккаунтами конкурентов или проверке аккаунта перед кампанией.

user_id — это ID после /user/profile/ в ссылке на профиль. Можно также передать полный URL профиля или author_id из записей комментариев или результатов поиска, а никнейм не подойдёт. text здесь содержит только фрагмент, а url не содержит токена доступа, поэтому для полного текста и ссылки, которая открывается в браузере, вызовите Note details с ID заметки. video_url подписан и имеет ограниченный срок действия, поэтому скачивайте то, что нужно сохранить.

Цена: $5.56 за 1 000 запросов ($0.005556 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.

Промпт для ИИ

Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Xiaohongshu Посты пользователя (xiaohongshu/user_posts).

Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: xiaohongshu и action: user_posts, а параметры передайте в params.
- Обязательные параметры:
  - user_id: ID пользователя Xiaohongshu (идентификатор после /user/profile/ в URL) или полный URL профиля для действий profile и user_posts. Подойдёт и author_id из действий с комментариями.
- Необязательные параметры:
  - page_token: Курсор пагинации для действий comments, sub_comments, search, user_posts, search_users и hashtag: чтобы получить следующую страницу, передайте значение next_page_token из записи предыдущего ответа.
- Возвращает список записей. Основные поля каждой записи: id, url (Ссылка на запись в Xiaohongshu), title, text (Текст заметки или комментария), like_count (Число лайков), collect_count (Число сохранений), comment_count, share_count, posted_at, image_url, author_name, author_id (ID пользователя-автора); всего полей: 23, полный список: https://api.everyinfra.com/api/v1/social/catalog?platform=xiaohongshu.
- Пример тела запроса:
{
  "platform": "xiaohongshu",
  "action": "user_posts",
  "params": {
    "user_id": "5bec178863f51f0001859bd9"
  }
}
- Цена: $5.56 за 1 000 запросов; неудачные и пустые результаты не оплачиваются.
- Для десятков или сотен целей добавьте в тело запроса "mode": "async": вы сразу получите job_id и сможете опрашивать GET https://api.everyinfra.com/api/v1/jobs/{job_id}, чтобы получить результат.
- При ответе 422 исправьте запрос, используя предложенные в ошибке имена параметров и допустимые значения; при ответе 429 или 503 подождите указанное в Retry-After время и повторите попытку.

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

Параметры запроса

ИмяРасположениеТипОбязательныйПо умолчаниюОписание
AuthorizationheaderstringДа-Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода.
platformbodystringДаxiaohongshuИдентификатор платформы, фиксированное значение.
actionbodystringДаuser_postsИдентификатор возможности, фиксированное значение.
user_idbody.paramsstringДа-ID пользователя Xiaohongshu (идентификатор после /user/profile/ в URL) или полный URL профиля для действий profile и user_posts. Подойдёт и author_id из действий с комментариями. Используется для получения сведений профиля или опубликованных заметок; отображаемые имена пользователей не принимаются.
page_tokenbody.paramsstringНет-Курсор пагинации для действий comments, sub_comments, search, user_posts, search_users и hashtag: чтобы получить следующую страницу, передайте значение next_page_token из записи предыдущего ответа; чтобы начать с первой страницы, не указывайте его. Для каждой страницы нужен один вызов API; оплата взимается за каждый запрос.

Примеры кода

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "xiaohongshu",
  "action": "user_posts",
  "params": {
    "user_id": "5bec178863f51f0001859bd9"
  }
}'

Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.

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

Реальный ответ

Получено October 24, 2026 at 18:28 (UTC) вызовом этого API с параметрами из примера кода выше. results и count — реальный ответ этого вызова, из которого удалены персональные данные (имена, никнеймы, аватары, ссылки на профили, контакты); в списке оставлены первые 2. id, billing и quota меняются при каждом вызове, поэтому показана только их структура.

json
{
  "id": "req_…",
  "platform": "xiaohongshu",
  "action": "user_posts",
  "results": [
    {
      "id": "6ad2ee3d000000001500a406",
      "url": "https://www.xiaohongshu.com/explore/6ad2ee3d000000001500a406",
      "title": "西藏的后劲太大",
      "text": "从西藏回来后总觉得空落落的。\n晚上六点后看马路上行人少了不习惯,保障湖夜里聚着的人群没了,常去的网红S湾也冷冷清清,整个人就像在静静等着冬眠,日子过得格外无聊。\n之前在旅途里虽然身体累,但倒头就能睡,",
      "like_count": 4,
      "collect_count": 0,
      "comment_count": 2,
      "share_count": 0,
      "posted_at": "2026-10-17T03:40:45+00:00",
      "image_url": "https://sns-i27-ae.rednotecdn.com/1040g008326dlp9rr44004bqnt5boh6upnbbi730?imageView2/2/w/576/format/heif/q/58|imageMogr2/strip&redImage/frame/0&ap=12&sc=USR_PRV&sign=8a41040bd29d219271a31b35d28b1710&t=6add009f",
      "author_name": "•••",
      "author_id": "5bec178863f51f0001859bd9",
      "avatar_url": "https://sns-avatar-qc-ae.rednotecdn.com/•••",
      "author_url": "https://www.xiaohongshu.com/user/profile/5bec178863f51f0001859bd9",
      "is_video": true,
      "next_page_token": "n1.6a9801c2000000002902d3f5",
      "video_url": "https://sns-v28-ae.rednotecdn.com/stream/79/110/258/01ead2edf98cd6564f037001a147f2cfc3_258.mp4?sign=3488ebb9d403bf590a06aba3c94581b5&t=6ae19ddf",
      "duration_sec": 12,
      "platform": "xiaohongshu",
      "images": [
        "https://sns-i27-ae.rednotecdn.com/1040g008326dlp9rr44004bqnt5boh6upnbbi730?imageView2/2/w/576/format/heif/q/58|imageMogr2/strip&redImage/frame/0&ap=12&sc=USR_PRV&sign=8a41040bd29d219271a31b35d28b1710&t=6add009f"
      ],
      "is_goods_note": false,
      "is_pinned": false,
      "ip_location": "•••",
      "duration_seconds": 12
    },
    {
      "id": "6acc9f40000000001b02e074",
      "url": "https://www.xiaohongshu.com/explore/6acc9f40000000001b02e074",
      "title": "扬州人冬天都喜欢干啥?",
      "text": "很好奇扬州人的冬天白天都喜欢去哪里玩?晚上又喜欢干什么去哪里玩?#如果冬天有味道[话题]# #扬州人的冬天日常分享[话题]# #冬天的味道[话题]# #冬天的烦恼[话题]# #冬天的样子[话题]#",
      "like_count": 2,
      "collect_count": 0,
      "comment_count": 0,
      "share_count": 0,
      "posted_at": "2026-10-12T08:50:08+00:00",
      "image_url": "https://sns-i27-ae.rednotecdn.com/notes_pre_post/1040g3k83267gk1jm44704bqnt5boh6up9ulnts0?imageView2/2/w/576/format/heif/q/58|imageMogr2/strip&redImage/frame/0&ap=12&sc=USR_PRV&sign=c3cc24a4f64405fdd87eaa5922f49a0e&t=6add009f",
      "author_name": "•••",
      "author_id": "5bec178863f51f0001859bd9",
      "avatar_url": "https://sns-avatar-qc-ae.rednotecdn.com/•••",
      "author_url": "https://www.xiaohongshu.com/user/profile/5bec178863f51f0001859bd9",
      "is_video": false,
      "next_page_token": "n1.6a9801c2000000002902d3f5",
      "video_url": null,
      "duration_sec": null,
      "platform": "xiaohongshu",
      "images": [
        "https://sns-i27-ae.rednotecdn.com/notes_pre_post/1040g3k83267gk1jm44704bqnt5boh6up9ulnts0?imageView2/2/w/576/format/heif/q/58|imageMogr2/strip&redImage/frame/0&ap=12&sc=USR_PRV&sign=c3cc24a4f64405fdd87eaa5922f49a0e&t=6add009f"
      ],
      "is_goods_note": false,
      "is_pinned": false,
      "duration_seconds": null
    }
  ],
  "next_page_token": …,
  "pagination": { … },
  "count": 20,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Поля ответа

Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.

ПолеЗначение
idУникальный ID записи на платформе. Уникален только в пределах одной платформы; на разных платформах ID могут повторяться.
urlСсылка на запись в Xiaohongshu. Ссылки из search, note, profile и hashtag обычно содержат токен доступа, поэтому открываются в браузере без входа в аккаунт (срок действия токена ограничен; чтобы получить свежую ссылку, повторите вызов API). Ссылки на заметки из user_posts не содержат токена, а без него в браузере не открываются: вызовите note с ID заметки, чтобы получить рабочую ссылку. Ссылки на профили из search_users тоже не содержат токена; чтобы получить рабочую ссылку, вызовите profile с user_id. Ссылки на заметки из pgy_content_square содержат токен, кроме запросов с keyword: в них токена нет.
titleЗаголовок. null, если на платформе нет заголовков (например, у текстовых постов).
textТекст заметки или комментария. note и hashtag возвращают полный текст; search и user_posts могут вернуть сокращённый фрагмент (примерно до 60 и 100 символов соответственно). Чтобы получить полный текст, вызовите note с ID заметки.
like_countЧисло лайков. В результатах note и в результатах по комментариям это число лайков у соответствующей записи; в profile — общее число лайков, полученных заметками аккаунта. null означает, что значение не общедоступно или не было возвращено при этом вызове; это не ноль.
collect_countЧисло сохранений. В результатах note это число сохранений заметки; в profile — общее число сохранений всех заметок аккаунта. null означает, что значение не общедоступно или не было возвращено при этом вызове; это не ноль.
comment_countКомментарии. null означает, что значение не раскрыто, а не 0.
share_countКоличество раз, когда записью поделились. null означает, что значение не раскрыто, а не 0.
posted_atВремя публикации в ISO 8601, UTC (например, 2026-08-07T12:34:56+00:00). Нестандартные строки платформы передаются как есть, поэтому учитывайте это при разборе. null означает, что платформа его не раскрывает.
image_urlСсылка на изображение. Возможности с несколькими изображениями могут возвращать массив image_urls.
author_nameОтображаемое имя автора.
author_idID пользователя-автора. Передавайте его в profile или user_posts. В результатах заметок используется 24-символьный ID из URL профиля; в результатах комментариев (comments, comments_batch, sub_comments) обычно другой, 29-символьный формат. Два формата для одного человека не совпадают, поэтому перед удалением дубликатов между пакетами приведите их к user_id, который возвращает profile.
avatar_urlСсылка на аватар. Некоторые платформы возвращают CDN-ссылки с заданным размером, срок действия которых может истечь.
author_urlСсылка на профиль автора. Она не содержит токена доступа, поэтому в браузере без входа в аккаунт не открывается; url, который profile возвращает для author_id, открывается напрямую.
is_videoЯвляется ли заметка видеозаметкой. URL воспроизведения НЕ входит в ответ с деталями заметки (с 2026-10-14): чтобы получить его, вызовите отдельное действие video с тем же URL заметки; каждый вызов API оплачивается отдельно.
next_page_tokenТокен страницы (search, comments, sub_comments, user_posts, search_users, hashtag): чтобы получить следующую страницу, передайте его без изменений в page_token, не меняя остальные параметры.
video_urlСсылка на воспроизведение видео (MP4), подписанная и с ограниченным сроком действия; если видео нужно сохранить, скачайте его сразу. null для заметок с изображениями или если значение не вернулось. Ссылка есть в записях search/user_posts и в отдельном действии video; детали заметки её не содержат (с 2026-10-14), поэтому, если нужна ссылка на воспроизведение, вызовите действие video с тем же URL заметки.
duration_secДлительность видео в секундах. null для заметок с изображениями или если длительность не была возвращена при этом вызове.
duration_secondsДлительность в секундах. null для контента, который не является видео или аудио.
platformИдентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok).
imagesСсылки на изображения. В note, hashtag, search и user_posts перечислены все изображения заметки по порядку. В результатах по комментариям (comments, comments_batch, sub_comments) перечислены изображения, прикреплённые к комментарию, включая стикеры; пустой массив означает, что их нет. null означает, что значение не было возвращено при этом вызове.
is_goods_noteЯвляется ли заметка товарной, со ссылками на товары (search, user_posts).
is_pinnedЗакреплена ли заметка вверху профиля автора (user_posts). Закреплённые заметки идут первыми, поэтому исключайте их при анализе по дате публикации.
ip_locationМестоположение по IP (провинция или страна), которое показывает Xiaohongshu; пользователь его не вводит. Есть только в некоторых записях user_posts.

FAQ

Где найти user_id?

Откройте профиль автора: ID — это строка после /user/profile/ в ссылке. Можно также передать полный URL профиля или author_id из записей комментариев или результатов поиска. По никнейму аккаунт определить нельзя.

Почему ссылки на заметки не открываются в браузере?

Ссылки на заметки из этой возможности не содержат токена доступа, поэтому браузер без входа в аккаунт не может их открыть. Вызовите Note details с ID заметки, чтобы получить url, который открывается в браузере, и полный текст заметки.

Как прочитать все заметки аккаунта?

Каждый вызов возвращает одну страницу. Чтобы получить следующую, передавайте next_page_token с верхнего уровня ответа обратно в page_token, пока в ответе не перестанет появляться next_page_token. Каждая страница — отдельный вызов, так что учитывайте это для аккаунтов с длинной историей.

Ошибки и оплата

401
Ключ отсутствует или недействителен.
402
Недостаточно средств на балансе. Сначала пополните баланс.
422
Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
429
Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
503
Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
200 (пусто)
Нет данных. Без списания.

Ошибки