API de Publicaciones del usuario de Xiaohongshu

POST

Salud de la API

Salud 24 h
89 %
Tiempo medio 24 h
2.41 s
  • Saludable / normal
  • Disponible
  • Limitada
  • Casi sin servicio
Disponible

Últimas 24 horas

Últimos 30 días

Obtiene notas públicas del user_id, con las fijadas primero y el resto de la más reciente a la más antigua. El lote no garantiza todo el historial ni contenido privado o eliminado.

Envía POST https://api.everyinfra.com/api/v1/social con platform igual a xiaohongshu y action igual a user_posts. Precio $5.56 por 1.000 solicitudes ($0.005556 por llamada). Las llamadas fallidas y los resultados vacíos no se cobran. Síncrona. Para tareas lentas añade "mode": "async" al cuerpo, recibe un job_id y consúltalo.

Xiaohongshu Publicaciones del usuario enumera las notas que ha publicado una cuenta a partir de su user_id: título, un extracto del texto, todas las imágenes, los recuentos de me gusta, guardados, comentarios y compartidos, y la fecha de publicación; en las notas de video añade el enlace de reproducción y la duración. Sirve para ver qué publica un creador y qué formatos le funcionan, ya sea para preseleccionar perfiles, vigilar cuentas de la competencia o revisar una cuenta antes de una campaña.

user_id es el identificador que aparece tras /user/profile/ en el enlace del perfil; también valen el enlace completo o un author_id de los resultados de comentarios o de búsqueda, pero no un apodo. Cada llamada devuelve una página de 20 notas. text es un extracto y url no lleva token de acceso, así que pide los detalles de la nota con su ID para leer el texto completo y obtener un enlace que se abra. Las notas fijadas, marcadas con is_pinned, salen primero.

Prompt para IA

#
Ayúdame a escribir un script de recopilación de datos con el endpoint de EveryInfra Xiaohongshu: Publicaciones del usuario (xiaohongshu/user_posts).

Cómo funciona el endpoint:
- Solicitud: POST https://api.everyinfra.com/api/v1/social con la cabecera Authorization: Bearer <clave API>. Lee la clave de la variable de entorno EVERYINFRA_API_KEY y no la escribas en el código.
- En el cuerpo de la solicitud, pon platform en xiaohongshu y action en user_posts, y los parámetros dentro de params.
- Parámetros obligatorios:
  - user_id: ID de usuario que aparece después de /user/profile/ en la URL de un perfil de Xiaohongshu, o la URL completa del perfil. También acepta el author_id que devuelven las acciones de comentarios.
- Parámetros opcionales:
  - page_token: Cursor de paginación para las acciones comments, sub_comments, search, user_posts, search_users y hashtag: devuelve el valor next_page_token de una fila de la respuesta anterior para obtener la siguiente página.
- Devuelve una lista de registros. Campos principales de cada registro: id, url (Enlace del registro en Xiaohongshu), title, text (Texto de la nota o del comentario), like_count (Número de «me gusta»), collect_count (Número de guardados), comment_count, share_count, posted_at, image_url, author_name, author_id (ID de usuario del autor); 23 campos en total, lista completa en https://api.everyinfra.com/api/v1/social/catalog?platform=xiaohongshu.
- Cuerpo de solicitud de ejemplo:
{
  "platform": "xiaohongshu",
  "action": "user_posts",
  "params": {
    "user_id": "5bec178863f51f0001859bd9"
  }
}
- Precio: $5.56 por 1.000 solicitudes; los resultados fallidos y vacíos no se cobran.
- Para decenas o cientos de objetivos, añade "mode": "async" al cuerpo: recibes un job_id al instante y consultas GET https://api.everyinfra.com/api/v1/jobs/{job_id} para obtener el resultado.
- Ante un 422, corrige la solicitud con los nombres de parámetros y los valores admitidos que sugiere el error; ante un 429 o un 503, espera lo que indique Retry-After y vuelve a intentarlo.

Antes de escribir código, pregúntame qué objetivos necesito, cuántos, qué campos y en qué formato quiero el resultado; luego confirma conmigo el plan y el coste aproximado.

Parámetros de la solicitud

#
NombreUbicaciónTipoObligatorioPor defectoDescripción
AuthorizationheaderstringSí-Bearer seguido de tu clave de API. Créala en la consola; nunca la pongas en una URL ni en un repositorio de código.
platformbodystringSíxiaohongshuIdentificador de la plataforma, valor fijo.
actionbodystringSíuser_postsIdentificador de la capacidad, valor fijo.
user_idbody.paramsstringSí-ID de usuario que aparece después de /user/profile/ en la URL de un perfil de Xiaohongshu, o la URL completa del perfil. También acepta el author_id que devuelven las acciones de comentarios. Se usa para obtener los datos de la cuenta o sus notas publicadas. No es el apodo.
page_tokenbody.paramsstringNo-Cursor de paginación para las acciones comments, sub_comments, search, user_posts, search_users y hashtag: devuelve el valor next_page_token de una fila de la respuesta anterior para obtener la siguiente página; omítelo para empezar desde la primera página. Cada página es una llamada y se factura por solicitud.

Ejemplos de código

#
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"
  }
}'

Definición OpenAPI (JSON)Los ejemplos leen la clave de la variable de entorno EVERYINFRA_API_KEY; el código copiado nunca contiene tu clave.

Ejemplo de respuesta

#
Obtenida el 24 de octubre de 2026, 18:28 (UTC) llamando a esta API con los parámetros del ejemplo de código de arriba. results y count son la respuesta real de esa llamada, sin información personal (nombres, usuarios, avatares, enlaces de perfil, datos de contacto); la lista conserva los primeros 2. id, billing y quota cambian en cada llamada, por eso solo se muestra su estructura.
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": { … }}

Campos de la respuesta

#

Los datos están en results. La tabla lista los campos que puede tener cada registro; los valores que la plataforma no muestra nunca se inventan.

CampoSignificado
idIdentificador único del registro en la plataforma. Solo es único dentro de una plataforma; puede repetirse entre plataformas.
urlEnlace del registro en Xiaohongshu. Los enlaces de search, note, profile y hashtag suelen incluir un token de acceso y se abren sin iniciar sesión (el token caduca; vuelve a llamar para obtener uno nuevo). Los enlaces de notas de user_posts no llevan token y lo necesitan para abrirse en el navegador: llama a note con el ID de la nota para obtener un enlace que se abra. Los enlaces de perfil de search_users tampoco llevan token; llama a profile con el user_id para obtener uno que se abra.
titleTítulo. null cuando la plataforma no usa títulos (por ejemplo publicaciones solo de texto).
textTexto de la nota o del comentario. note y hashtag devuelven el texto completo; search y user_posts pueden devolver un extracto recortado (unos 60 y 100 caracteres como máximo, respectivamente). Llama a note con el ID de la nota para obtener el texto completo.
like_countNúmero de «me gusta». En resultados de notas y comentarios, los de ese elemento; en profile, el total que han recibido las notas de la cuenta. null significa que no es público o que no se obtuvo en esta llamada, no cero.
collect_countNúmero de guardados. En resultados de notas, las veces que se guardó esa nota; en profile, el total de guardados de las notas de la cuenta. null significa que no es público o que no se obtuvo en esta llamada, no cero.
comment_countComentarios. null significa no publicado, no 0.
share_countVeces compartido. null significa no publicado, no 0.
posted_atFecha de publicación en ISO 8601, UTC (por ejemplo 2026-08-07T12:34:56+00:00). Las cadenas no estándar de la plataforma se transmiten tal cual, así que conviene analizarlas con tolerancia. null significa que la plataforma no la publica.
image_urlEnlace de imagen. Las capacidades con varias imágenes pueden devolver una lista image_urls.
author_nameNombre visible del autor.
author_idID de usuario del autor. Puedes enviarlo a profile o user_posts. En los resultados de notas es el ID de 24 caracteres de la URL del perfil; en los de comentarios (comments, comments_batch, sub_comments) suele ser otra forma de 29 caracteres. Las dos formas de una misma persona no coinciden: antes de eliminar duplicados entre lotes, conviértelas con el user_id que devuelve profile.
avatar_urlEnlace a la imagen de perfil. Algunas plataformas dan enlaces de CDN con tamaño que pueden caducar.
author_urlEnlace al perfil del autor. No lleva token de acceso, así que no se abre sin iniciar sesión; la url que devuelve profile para el author_id sí se abre directamente.
is_videoSi la nota es de vídeo. La URL de reproducción NO va en la respuesta del detalle de la nota (desde 2026-10-14): llama a la acción video aparte con la misma URL de la nota para obtenerla; cada llamada se cobra por uso.
next_page_tokenToken de paginación (search, comments, sub_comments, user_posts, search_users, hashtag): devuélvelo sin cambios como page_token, con los demás parámetros iguales, para obtener la página siguiente.
video_urlEnlace de reproducción del vídeo (MP4), firmado y con caducidad: si necesitas conservarlo, descarga el archivo cuanto antes. null en las notas de imagen o si esta vez no se obtuvo. Aparece en las filas de search/user_posts y en la acción video aparte; el detalle de la nota no lo incluye (desde 2026-10-14): llama a video con la misma URL de la nota cuando necesites el enlace.
duration_secDuración del vídeo en segundos. null en las notas de imagen o si esta vez no se obtuvo.
duration_secondsDuración en segundos. null en contenido que no es video ni audio.
platformIdentificador de la plataforma, igual que platform en la solicitud (por ejemplo xiaohongshu, tiktok).
imagesEnlaces de imágenes. En note, hashtag, search y user_posts, todas las imágenes de la nota en orden. En los resultados de comentarios (comments, comments_batch, sub_comments), las imágenes adjuntas al comentario, incluidos los stickers; un array vacío significa que no hay ninguna. null significa que esta vez no se obtuvo este dato.
is_goods_noteIndica si la nota es de venta y lleva enlaces de productos (search, user_posts).
is_pinnedIndica si la nota está fijada arriba en el perfil del autor (user_posts). Las fijadas salen primero, así que déjalas fuera si analizas por fecha de publicación.
ip_locationUbicación por IP (provincia o país) que muestra Xiaohongshu; no la escribe el usuario. Solo algunas filas de user_posts la traen.

Preguntas frecuentes

#

¿Dónde encuentro el user_id?

#

Abre el perfil del creador: el identificador es la cadena que sigue a /user/profile/ en el enlace. También puedes pasar el enlace completo del perfil o un author_id tomado de los resultados de comentarios o de búsqueda. Un apodo no sirve para identificar la cuenta.

¿Por qué los enlaces de las notas no se abren en el navegador?

#

Los enlaces que devuelve esta capacidad no llevan token de acceso, y un navegador sin sesión no puede abrirlos. Llama a Xiaohongshu Detalles de la nota con el ID de la nota: obtendrás una url que sí se abre y, de paso, el texto completo.

¿Cómo leo todas las notas de una cuenta?

#

Cada llamada devuelve una página. Pasa el next_page_token de cualquier fila como page_token en la siguiente llamada, con los demás parámetros iguales, hasta que no haya más páginas. Cada página se cobra como una llamada aparte, y limit se acepta pero no cambia el tamaño de la página, así que calcula las llamadas para cuentas con mucho historial.

Errores y facturación

#
401
Falta la clave o no es válida.
402
Saldo insuficiente. Recarga primero.
422
Nombre o valor de parámetro incorrecto. Corrígelo según las opciones indicadas en el error. Sin cargo.
429
Se alcanzó el límite de solicitudes por minuto. Espera el tiempo indicado en Retry-After y vuelve a intentarlo.
503
No se pudo completar. El cargo retenido vuelve a tu saldo. Si el resultado es incierto, compruébalo antes de reenviar.
200 vacío
Sin datos. Sin cargo.

Errores

Nuestras estadísticas siempre están activas. Google Analytics, solo con «Permitir analítica». Política de privacidad