API de Tableros de contenido de Pugongying de Xiaohongshu
Salud de la API
No es posible consultar los datos de estado de esta API en este momento, por lo que se desconoce su estado reciente. Esto no significa que no esté disponible.
Consulta los tableros de contenido destacado de Pugongying, el mercado de Xiaohongshu que une marcas y creadores: populares, siembra de producto, promoción de comercio electrónico, colaboraciones de marca, captación de clientes y otros, en ventanas de 3 a 30 días. Cada nota trae puesto, lecturas, «me gusta», guardados, comentarios, marca de anuncio y seguidores del autor. 20 por página y como mucho 100 filas por tablero.
Precio $16 por 1.000 solicitudes ($0.016 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.
Prompt para IA
Ayúdame a escribir un script de recopilación de datos con el endpoint de EveryInfra Xiaohongshu: Tableros de contenido de Pugongying (xiaohongshu/pgy_content_square).
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 pgy_content_square, y los parámetros dentro de params.
- No hay parámetros obligatorios.
- Parámetros opcionales:
- board: Tablero de la plaza de contenidos de Pugongying que lee pgy_content_square: hot (populares de Xiaohongshu, por defecto), product_seeding, ecommerce_promo, brand_collab, lead_gen, ecommerce_hot, seeding_direct o app_promo… (valores admitidos: app_promo / brand_collab / ecommerce_hot / ecommerce_promo / hot / lead_gen / product_seeding / seeding_direct)
- keyword: Opcional: deja solo las notas cuyo título o contenido se relacione con esta palabra, como café; sin ella se lee el tablero completo.
- page_token: Token de paginación. Omítelo en la primera página y luego devuelve tal cual el next_page_token anterior, sin cambiar los demás parámetros. Cada página trae 20 notas y es una llamada.
- time_window: Ventana de pgy_content_square: 3d, 7d (por defecto), 14d o 30d. (valores admitidos: 14d / 30d / 3d / 7d)
- Devuelve una lista de registros. Campos principales de cada registro: rank (Puesto en el tablero desde 1 (pgy_conte…), id, url (Enlace del registro en Xiaohongshu), title, is_video (Si la nota es de vídeo), like_count (Número de «me gusta»), collect_count (Número de guardados), comment_count, view_count (Lecturas que la plaza de contenidos de…), posted_at, images (Enlaces de imágenes), video_url (Enlace de reproducción del vídeo (MP4),…); 19 campos en total, lista completa en https://api.everyinfra.com/api/v1/social/catalog?platform=xiaohongshu.
- Cuerpo de solicitud de ejemplo:
{
"platform": "xiaohongshu",
"action": "pgy_content_square",
"params": {}
}
- Precio: $16 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
| Nombre | Ubicación | Tipo | Obligatorio | Por defecto | Descripción |
|---|---|---|---|---|---|
Authorization | header | string | Sí | - | 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. |
platform | body | string | Sí | xiaohongshu | Identificador de la plataforma, valor fijo. |
action | body | string | Sí | pgy_content_square | Identificador de la capacidad, valor fijo. |
board | body.params | string (enum) | No | - | Tablero de la plaza de contenidos de Pugongying que lee pgy_content_square: hot (populares de Xiaohongshu, por defecto), product_seeding, ecommerce_promo, brand_collab, lead_gen, ecommerce_hot, seeding_direct o app_promo.Valores permitidosapp_promobrand_collabecommerce_hotecommerce_promohotlead_genproduct_seedingseeding_direct |
keyword | body.params | string | No | - | Opcional: deja solo las notas cuyo título o contenido se relacione con esta palabra, como café; sin ella se lee el tablero completo. |
page_token | body.params | string | No | - | Token de paginación. Omítelo en la primera página y luego devuelve tal cual el next_page_token anterior, sin cambiar los demás parámetros. Cada página trae 20 notas y es una llamada; un tablero tiene como mucho 100 (5 páginas). |
time_window | body.params | string (enum) | No | - | Ventana de pgy_content_square: 3d, 7d (por defecto), 14d o 30d.Valores permitidos14d30d3d7d |
Ejemplos de código
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": "pgy_content_square",
"params": {}
}'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
Todavía no hay una muestra real para estos parámetros de ejemplo: se muestra la estructura de la respuesta y sus campos según la definición de la API, con … como marcadores. No es el resultado de una llamada real.
{
"id": "req_…",
"platform": "xiaohongshu",
"action": "pgy_content_square",
"results": [
{
"rank": …,
"id": …,
"url": …,
"title": …,
"is_video": …,
"like_count": …,
"collect_count": …,
"comment_count": …,
"view_count": …,
"posted_at": …,
"images": …,
"video_url": …,
"duration_sec": …,
"duration_seconds": …,
"is_ad": …,
"author_id": …,
"author_name": …,
"author_avatar_url": …,
"author_follower_count": …,
"platform": …
}
],
"next_page_token": …,
"pagination": { … },
"count": …,
"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.
| Campo | Significado |
|---|---|
rank | Puesto en el tablero desde 1 (pgy_content_square); continúa desde la página anterior. |
id | Identificador único del registro en la plataforma. Solo es único dentro de una plataforma; puede repetirse entre plataformas. |
url | Enlace 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. |
title | Título. null cuando la plataforma no usa títulos (por ejemplo publicaciones solo de texto). |
is_video | Si 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. |
like_count | Nú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_count | Nú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_count | Comentarios. null significa no publicado, no 0. |
view_count | Lecturas que la plaza de contenidos de Pugongying muestra para la nota (pgy_content_square). |
posted_at | Fecha 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. |
images | Enlaces 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. |
video_url | Enlace 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_sec | Duración del vídeo en segundos. null en las notas de imagen o si esta vez no se obtuvo. |
duration_seconds | Duración en segundos. null en contenido que no es video ni audio. |
is_ad | Si la nota es un anuncio pagado (pgy_content_square). |
author_id | ID 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. |
author_name | Nombre visible del autor. |
author_avatar_url | Enlace al avatar de quien comenta (comments, comments_batch, sub_comments). |
author_follower_count | Seguidores del autor. null significa no publicado. |
platform | Identificador de la plataforma, igual que platform en la solicitud (por ejemplo xiaohongshu, tiktok). |
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.