API de Lugar de la nota 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 el lugar etiquetado en una nota de Xiaohongshu a partir de su enlace o enlace para compartir: el texto del lugar tal como se muestra, la ciudad, el nombre del lugar y sus ID. Una nota sin lugar etiquetado devuelve un resultado vacío.
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.
Prompt para IA
Ayúdame a escribir un script de recopilación de datos con el endpoint de EveryInfra Xiaohongshu: Lugar de la nota (xiaohongshu/note_location).
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 note_location, y los parámetros dentro de params.
- Parámetros obligatorios:
- url: Enlace de la nota (/explore/<ID de nota> o /discovery/item/<ID de nota>) o enlace para compartir de Xiaohongshu. Solo hace falta el ID de la nota, no el xsec_token; si el enlace lo trae, el enlace devuelto lo conserva.
- Devuelve un objeto. Campos principales: note_id (ID de la nota), url (Enlace del registro en Xiaohongshu), location_text (Lugar etiquetado en la nota tal como se…), city (Ciudad del lugar etiquetado (note_locat…), poi_name (Nombre del lugar: en search, el lugar e…), poi_ids (ID del lugar etiquetado (note_location)…).
- Cuerpo de solicitud de ejemplo:
{
"platform": "xiaohongshu",
"action": "note_location",
"params": {
"url": "https://www.xiaohongshu.com/explore/6a97c1c2000000002b00074e"
}
}
- 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
| 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í | note_location | Identificador de la capacidad, valor fijo. |
url | body.params | string | Sí | - | Enlace de la nota (/explore/<ID de nota> o /discovery/item/<ID de nota>) o enlace para compartir de Xiaohongshu. Solo hace falta el ID de la nota, no el xsec_token; si el enlace lo trae, el enlace devuelto lo conserva. |
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": "note_location",
"params": {
"url": "https://www.xiaohongshu.com/explore/6a97c1c2000000002b00074e"
}
}'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": "note_location",
"results": {
"note_id": …,
"url": …,
"location_text": …,
"city": …,
"poi_name": …,
"poi_ids": …,
"platform": …
},
"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 |
|---|---|
note_id | ID de la nota. Las capacidades de comentarios lo usan para remitir a la nota. |
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. |
location_text | Lugar etiquetado en la nota tal como se muestra (note_location), como una ciudad y una cafetería; si hay varios lugares se lee como una ciudad seguida de etc. Una nota sin lugar devuelve un resultado vacío. |
city | Ciudad del lugar etiquetado (note_location), la parte antes del punto; no aparece si hay varios lugares. |
poi_name | Nombre del lugar: en search, el lugar etiquetado en la tarjeta del resultado; en note_location, la parte del lugar etiquetado en la nota que va después del punto, como una sucursal de cafetería. No aparece si no hay lugar o si hay varios. |
poi_ids | ID del lugar etiquetado (note_location), en el orden de la página; varios si hay varios lugares. |
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.