API de Detalles del producto de Douyin
Salud de la API
- Salud 24 h
- 91 %
- Tiempo medio 24 h
- 10.81 s
- Saludable / normal
- Disponible
- Limitada
- Casi sin servicio
Últimas 24 horas
Últimos 30 días
Consulta un producto mediante un product_id numérico, con galería, variantes, tienda y cifra pública de unidades vendidas.
Douyin Detalles del producto lee un producto de Douyin Mall a partir de su product_id y devuelve el título, la tienda, el precio mostrado y el precio con descuento público vigente, la cifra de ventas de la página, las imágenes principales y las de detalle, las garantías de servicio que anuncia, los avisos de envío, las opciones de variante y si está a la venta. Responde a cuánto cuesta hoy un producto en Douyin, quién lo vende y cuánto vende; es útil para vendedores que siguen a la competencia, marcas que vigilan a sus revendedores y agencias que revisan un producto antes de que un creador lo promocione.
Los dos precios están en yuanes. sold_count es una foto de la cifra pública de ventas del producto, no lo vendido por un creador concreto. shipping_fee_text y shipping_estimate_text conservan la redacción de la página, así que procésalos antes de comparar tiendas. variant_groups recoge cada grupo de opciones con los nombres y los ID públicos de sus opciones, sin precio ni existencias por opción.
Precio $0.56 por 1.000 solicitudes ($0.000556 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
Pégalo en tu asistente de IA. Ya incluye los parámetros, los campos de respuesta y una solicitud de ejemplo de este endpoint, así que el asistente puede preguntarte qué necesitas y luego escribir el script.
Ayúdame a escribir un script de recopilación de datos con el endpoint de EveryInfra Douyin: Detalles del producto (douyin/product_detail).
Contrato del 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 douyin y action en product_detail, y los parámetros dentro de params.
- Parámetros obligatorios:
- product_id: ID numérico de producto devuelto por product_search o live_product_search. No es un ID de SKU, de promoción, un título ni una URL.
- Devuelve un objeto. Campos principales: product_id (ID estable del producto en Douyin Mall), title, price_cny (Precio mostrado del producto, en yuanes), discount_price_cny (Precio con descuento público actual, en…), sales_text (Cifra de ventas tal como la muestra la…), sold_count (Unidades vendidas que muestra la página…), shop_id (ID de la tienda en Douyin Mall), shop_name (Nombre de la tienda en Douyin Mall), shop_avatar_url (URL del avatar de la tienda en Douyin M…), image_url, main_image_urls (URLs de las imágenes principales y del…), detail_image_urls (URLs de las imágenes largas de detalle…); 17 campos en total, lista completa en https://api.everyinfra.com/api/v1/social/catalog?platform=douyin.
- Cuerpo de solicitud de ejemplo:
{
"platform": "douyin",
"action": "product_detail",
"params": {
"product_id": "3836720422792070096"
}
}
- Precio: $0.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í | douyin | Identificador de la plataforma, valor fijo. |
action | body | string | Sí | product_detail | Identificador de la capacidad, valor fijo. |
product_id | body.params | No declarado | Sí | - | ID numérico de producto devuelto por product_search o live_product_search. No es un ID de SKU, de promoción, un título ni una URL. |
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": "douyin",
"action": "product_detail",
"params": {
"product_id": "3836720422792070096"
}
}'[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": "douyin",
"action": "product_detail",
"results": {
"product_id": …,
"title": …,
"price_cny": …,
"discount_price_cny": …,
"sales_text": …,
"sold_count": …,
"shop_id": …,
"shop_name": …,
"shop_avatar_url": …,
"image_url": …,
"main_image_urls": …,
"detail_image_urls": …,
"assurances": …,
"shipping_fee_text": …,
"shipping_estimate_text": …,
"variant_groups": …,
"on_sale": …,
"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 |
|---|---|
product_id | ID estable del producto en Douyin Mall. |
title | Título. null cuando la plataforma no usa títulos (por ejemplo publicaciones solo de texto). |
price_cny | Precio mostrado del producto, en yuanes. |
discount_price_cny | Precio con descuento público actual, en yuanes; si falta, no se calcula a partir del precio de lista. |
sales_text | Cifra de ventas tal como la muestra la página del producto. |
sold_count | Unidades vendidas que muestra la página del producto; una instantánea al leerla, no las ventas de un creador. |
shop_id | ID de la tienda en Douyin Mall. |
shop_name | Nombre de la tienda en Douyin Mall. |
shop_avatar_url | URL del avatar de la tienda en Douyin Mall. |
image_url | Enlace de imagen. Las capacidades con varias imágenes pueden devolver una lista image_urls. |
main_image_urls | URLs de las imágenes principales y del carrusel del producto. |
detail_image_urls | URLs de las imágenes largas de detalle del producto. |
assurances | Etiquetas de garantía de servicio que muestra el producto. |
shipping_fee_text | Nota de gastos de envío u origen tal como aparece en la página. |
shipping_estimate_text | Nota de plazo de despacho estimado tal como aparece en la página. |
variant_groups | Grupos de variantes y sus opciones; solo nombres de grupo, nombres de opción e ID públicos, sin precio ni stock por opción. |
on_sale | Indica si el producto aparecía a la venta al leerlo. |
platform | Identificador de la plataforma, igual que platform en la solicitud (por ejemplo xiaohongshu, tiktok). |
Preguntas frecuentes
¿De dónde saco el product_id?
De los resultados de Douyin Búsqueda de productos o de Douyin Productos en directo, que incluyen el ID numérico del producto en Douyin Mall. Pasa ese número, no el ID de SKU, el ID de promoción ni el título que también aparecen en algunos resultados: solo el ID del producto identifica la ficha.
¿sold_count muestra lo que vendió un creador?
No. Es la cifra de unidades vendidas que la página del producto muestra públicamente al hacer la llamada, para el producto en su conjunto, así que no dice nada de un creador ni de un directo concretos. Guárdala con la fecha de cada llamada para construir una tendencia de ventas, y conserva sales_text para tener la redacción exacta de la página.
¿Por qué falta discount_price_cny en algunos productos?
Solo se rellena cuando el producto muestra un precio con descuento público en el momento de la llamada. Si no aparece, toma price_cny como el precio vigente; el descuento nunca se estima ni se calcula a partir de él. Los dos valores están en yuanes, así que puedes compararlos directamente cuando vienen ambos.
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 de la cuenta (todas sus claves API cuentan juntas; antes se aplica el límite propio de una clave si es menor). Espera lo que indique Retry-After y vuelve a intentarlo; un paquete de velocidad en la consola sube el límite.
- 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).