API de Búsqueda de usuarios de Xiaohongshu

POST

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
API de saludNormal
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)EstadoSaludTiempo medio
2026-09-30 05:00 - 05:59Normal——
2026-09-30 04:00 - 04:59Normal——
2026-09-30 03:00 - 03:59Normal——
2026-09-30 02:00 - 02:59Normal——
2026-09-30 01:00 - 01:59Normal——
2026-09-30 00:00 - 00:59Normal——
2026-09-29 23:00 - 23:59Normal——
2026-09-29 22:00 - 22:59Normal——
2026-09-29 21:00 - 21:59Normal——
2026-09-29 20:00 - 20:59Normal——
2026-09-29 19:00 - 19:59Normal——
2026-09-29 18:00 - 18:59Normal——
2026-09-29 17:00 - 17:59Normal——
2026-09-29 16:00 - 16:59Normal——
2026-09-29 15:00 - 15:59Normal——
2026-09-29 14:00 - 14:59Normal——
2026-09-29 13:00 - 13:59Normal——
2026-09-29 12:00 - 12:59Normal——
2026-09-29 11:00 - 11:59Normal——
2026-09-29 10:00 - 10:59Normal——
2026-09-29 09:00 - 09:59Normal——
2026-09-29 08:00 - 08:59Normal——
2026-09-29 07:00 - 07:59Normal——
2026-09-29 06:00 - 06:59Normal——
2026-09-30Normal——
2026-09-29Normal——
2026-09-28Normal——
2026-09-27Normal——
2026-09-26Normal——
2026-09-25Normal——
2026-09-24Normal——
2026-09-23Normal——
2026-09-22Normal——
2026-09-21Normal——
2026-09-20Normal——
2026-09-19Normal——
2026-09-18Normal——
2026-09-17Normal——
2026-09-16Normal——
2026-09-15Normal——
2026-09-14Normal——
2026-09-13Normal——
2026-09-12Normal——
2026-09-11Normal——
2026-09-10Normal——
2026-09-09Normal——
2026-09-08Normal——
2026-09-07Normal——
2026-09-06Normal——
2026-09-05Normal——
2026-09-04Normal——
2026-09-03Normal——
2026-09-02Normal——
2026-09-01Normal——

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

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ísearch_usersIdentificador de la capacidad, valor fijo.
keywordbody.paramsNo declaradoSí-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_rangebody.paramsenumNo-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_tokenbody.paramsNo declaradoNo-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_typebody.paramsenumNo-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

text
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

Vista previa de campos

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.

json
{
  "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.

CampoSignificado
user_idIdentificador único del usuario en la plataforma de origen.
nicknameConserva el significado de la plataforma
red_idConserva el significado de la plataforma
avatar_urlEnlace a la imagen de perfil. Algunas plataformas dan enlaces de CDN con tamaño que pueden caducar.
urlPropio de la plataformaEnlace 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 plataformaNú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_verifiedSi la plataforma verificó la cuenta. null significa que no se puede determinar.
verification_typePropio de la plataformaTipo de verificación en search_users: individual (persona verificada), business (empresa verificada) u other. Las cuentas sin verificar no incluyen este campo.
next_page_tokenConserva el significado de la plataforma
platformIdentificador 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).