API de Búsqueda de usuarios de Xiaohongshu
Salud de la API
- Salud 24 h
- Normal
- Tiempo medio 24 h
- —
- Última comprobación
- 30 de septiembre de 2026, 05:12 (UTC)
- Saludable / normal
- Disponible
- Limitada
- Casi sin servicio
Últimas 24 horas
Últimos 30 días
Cómo se mide la salud
- Salud = porcentaje de llamadas que devolvieron datos. Los resultados vacíos, los fallos y los resultados desconocidos no cuentan como datos devueltos.
- Niveles: desde 90 % saludable, desde 70 % disponible, desde 40 % limitada; por debajo, casi sin servicio.
- Un periodo (las últimas 24 horas, una hora o un día) solo se puntúa a partir de 50 llamadas. Los periodos con menos llamadas se muestran como normales: unos pocos fallos entre pocas llamadas no significan que la API esté caída.
- Las llamadas incluyen las reales de clientes y nuestras llamadas de sondeo diarias. Los errores de la propia solicitud (parámetros incorrectos, saldo insuficiente) no se cuentan.
- El tiempo medio solo cuenta las llamadas que terminaron con normalidad: tiempo de respuesta en las síncronas; de la aceptación a la finalización en las asíncronas.
Por periodo
| Hora (UTC) | Estado | Salud | Tiempo medio |
|---|---|---|---|
| 2026-09-30 05:00 - 05:59 | Normal | — | — |
| 2026-09-30 04:00 - 04:59 | Normal | — | — |
| 2026-09-30 03:00 - 03:59 | Normal | — | — |
| 2026-09-30 02:00 - 02:59 | Normal | — | — |
| 2026-09-30 01:00 - 01:59 | Normal | — | — |
| 2026-09-30 00:00 - 00:59 | Normal | — | — |
| 2026-09-29 23:00 - 23:59 | Normal | — | — |
| 2026-09-29 22:00 - 22:59 | Normal | — | — |
| 2026-09-29 21:00 - 21:59 | Normal | — | — |
| 2026-09-29 20:00 - 20:59 | Normal | — | — |
| 2026-09-29 19:00 - 19:59 | Normal | — | — |
| 2026-09-29 18:00 - 18:59 | Normal | — | — |
| 2026-09-29 17:00 - 17:59 | Normal | — | — |
| 2026-09-29 16:00 - 16:59 | Normal | — | — |
| 2026-09-29 15:00 - 15:59 | Normal | — | — |
| 2026-09-29 14:00 - 14:59 | Normal | — | — |
| 2026-09-29 13:00 - 13:59 | Normal | — | — |
| 2026-09-29 12:00 - 12:59 | Normal | — | — |
| 2026-09-29 11:00 - 11:59 | Normal | — | — |
| 2026-09-29 10:00 - 10:59 | Normal | — | — |
| 2026-09-29 09:00 - 09:59 | Normal | — | — |
| 2026-09-29 08:00 - 08:59 | Normal | — | — |
| 2026-09-29 07:00 - 07:59 | Normal | — | — |
| 2026-09-29 06:00 - 06:59 | Normal | — | — |
| 2026-09-30 | Normal | — | — |
| 2026-09-29 | Normal | — | — |
| 2026-09-28 | Normal | — | — |
| 2026-09-27 | Normal | — | — |
| 2026-09-26 | Normal | — | — |
| 2026-09-25 | Normal | — | — |
| 2026-09-24 | Normal | — | — |
| 2026-09-23 | Normal | — | — |
| 2026-09-22 | Normal | — | — |
| 2026-09-21 | Normal | — | — |
| 2026-09-20 | Normal | — | — |
| 2026-09-19 | Normal | — | — |
| 2026-09-18 | Normal | — | — |
| 2026-09-17 | Normal | — | — |
| 2026-09-16 | Normal | — | — |
| 2026-09-15 | Normal | — | — |
| 2026-09-14 | Normal | — | — |
| 2026-09-13 | Normal | — | — |
| 2026-09-12 | Normal | — | — |
| 2026-09-11 | Normal | — | — |
| 2026-09-10 | Normal | — | — |
| 2026-09-09 | Normal | — | — |
| 2026-09-08 | Normal | — | — |
| 2026-09-07 | Normal | — | — |
| 2026-09-06 | Normal | — | — |
| 2026-09-05 | Normal | — | — |
| 2026-09-04 | Normal | — | — |
| 2026-09-03 | Normal | — | — |
| 2026-09-02 | Normal | — | — |
| 2026-09-01 | Normal | — | — |
Encuentra cuentas de creadores y marcas por keyword, con filtros opcionales por seguidores y tipo de cuenta. El número de seguidores es aproximado y el user_id sirve para profile y 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.
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í | search_users | Identificador de la capacidad, valor fijo. |
keyword | body.params | No declarado | Sí | - | Palabra clave para encontrar cuentas, como café, el nombre de una marca o un tema. Devuelve usuarios (creadores y cuentas de marca), no notas. |
follower_range | body.params | enum | No | - | Filtra las cuentas de search_users por número de seguidores: under_100 (menos de 100), 100_to_1k (de 100 a 1000), 1k_to_10k (de 1000 a 10 000), 10k_to_100k (de 10 000 a 100 000) u over_100k (más de 100 000). Si no lo envías, no hay límite.Valores permitidos100_to_1k10k_to_100k1k_to_10kover_100kunder_100 |
page_token | body.params | No declarado | No | - | 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. |
user_type | body.params | enum | No | - | Filtra las cuentas de search_users por tipo: general (usuario normal), verified_individual (persona verificada) o business (empresa verificada). Si no lo envías, no hay límite.Valores permitidosbusinessgeneralverified_individual |
Ejemplos de código
Quiero recopilar datos con la capacidad «Búsqueda de usuarios» (xiaohongshu/search_users) de la API de EveryInfra. Actúa como mi asistente de recopilación de datos y trabaja en tres pasos.
Paso 1: No escribas código todavía. Hazme preguntas en varias rondas, de una a tres cada vez, hasta que todo esto quede claro:
1. Para qué son los datos (de eso depende qué campos y cuántos datos necesito);
2. Qué recopilar exactamente: palabras clave, enlaces o ID, y cuántos;
3. Cuántas filas, si hay que paginar y el rango de fechas;
4. Qué campos necesito (consulta los campos disponibles en el catálogo enlazado al final y luego pregúntame);
5. Cómo guardar los resultados: CSV, Excel, JSON o una base de datos, y dónde;
6. En qué lenguaje escribir el script, dónde se ejecutará y si será una sola vez o de forma programada;
7. Cuánto quiero gastar como máximo.
Si una respuesta es vaga o contradice otra anterior, vuelve a preguntar. Si digo que no lo sé, sugiere una opción y pídeme que la confirme.
Paso 2: Antes de escribir código, explícame el plan para que lo apruebe: qué solicitudes enviarás, cuántas llamadas harás aproximadamente, cuánto costará según los precios del catálogo y cómo será el resultado.
Paso 3: Solo cuando lo apruebe, escribe el script siguiendo estas reglas de la API:
- Solicitud: POST https://api.everyinfra.com/api/v1/social
- Autenticación: cabecera Authorization: Bearer <API key>. Lee la clave de la variable de entorno EVERYINFRA_API_KEY; no la pongas en el código, los registros ni los commits.
- Cuerpo JSON de ejemplo (usa los nombres de campo y valores tal como están):
{
"platform": "xiaohongshu",
"action": "search_users",
"params": {
"keyword": "咖啡"
}
}
- Para tareas lentas o volúmenes grandes, añade "mode": "async" al cuerpo. La API devuelve 202 y un job_id; consulta GET https://api.everyinfra.com/api/v1/jobs/{job_id} hasta que el estado sea succeeded o failed. Un 202 no es un éxito. Si una llamada síncrona devuelve un error de tiempo de espera (timeout), reenvía la misma solicitud con "mode": "async".
- Si el resultado trae next_page_token, pásalo como page_token para obtener la página siguiente sin cambiar los demás parámetros; cada página es una llamada.
- Los resultados fallidos o vacíos no generan un cargo final; lo reservado vuelve al saldo. Fíate del comprobante de facturación de la respuesta.
- Ante un 422, corrige la solicitud con los nombres de parámetro candidatos y los valores permitidos del mensaje de error; no adivines.
- Ante un 429 o un 503, espera el tiempo que indique Retry-After y vuelve a intentarlo; si la respuesta no trae Retry-After, ve alargando la espera entre intentos.
- Si se corta la red o el resultado es desconocido, conserva el request_id / job_id y consúltalo primero. No reenvíes automáticamente.
- Parámetros, valores permitidos, campos y precios: GET https://api.everyinfra.com/api/v1/social/catalog?platform=xiaohongshu (no requiere clave)[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 el contrato, con … como marcadores. No es el resultado de una llamada real.
{
"id": "req_…",
"platform": "xiaohongshu",
"action": "search_users",
"results": [
{
"user_id": …,
"nickname": …,
"red_id": …,
"avatar_url": …,
"url": …,
"follower_count": …,
"is_verified": …,
"verification_type": …,
"next_page_token": …,
"platform": …
}
],
"count": …,
"billing": { … },
"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 fuente no ofrece nunca se inventan.
| Campo | Significado |
|---|---|
user_id | Identificador único del usuario en la plataforma de origen. |
nickname | Conserva el significado de la plataforma |
red_id | Conserva el significado de la plataforma |
avatar_url | Enlace a la imagen de perfil. Algunas plataformas dan enlaces de CDN con tamaño que pueden caducar. |
urlPropio de la plataforma | 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. |
follower_countPropio de la plataforma | Número de seguidores. Exacto en profile. Aproximado en search_users: la lista muestra una cifra redondeada (12 000 aparece como 1,2 × 10 000) que se convierte en un número entero. null significa que no es público o no se reconoció, no cero. |
is_verified | Si la plataforma verificó la cuenta. null significa que no se puede determinar. |
verification_typePropio de la plataforma | Tipo de verificación en search_users: individual (persona verificada), business (empresa verificada) u other. Las cuentas sin verificar no incluyen este campo. |
next_page_token | Conserva el significado de la plataforma |
platform | Identificador de la plataforma de origen, igual que platform en la solicitud (por ejemplo xiaohongshu, tiktok). |
Errores y facturación
- 401
- Falta la clave o no es válida. La autenticación se comprueba antes que los parámetros, así que las solicitudes sin autenticar no ven el esquema de parámetros.
- 422
- Nombre o valor de parámetro incorrecto. El error enumera los parámetros y valores permitidos de esta capacidad y la opción más cercana; ocurre antes de cualquier cobro.
- 402
- Saldo insuficiente. Recarga primero.
- 429
- Se alcanzó el límite de solicitudes por minuto. Espera lo que indique Retry-After y vuelve a intentarlo.
- 503
- No se pudo completar ahora. Cualquier cargo de la llamada vuelve automáticamente a tu saldo, y el recibo de facturación de la respuesta indica el resultado real, también cuando aún no se conoce. No reenvíes a ciegas.
- 200 vacío
- La solicitud terminó sin datos y no se cobra (billing.reason = empty_result_refunded).