Acceso y claves
Cada tienda recibe su propia clave: ma- seguido de 32 caracteres. Envíela en la cabecera X-Worker-Key (o Authorization: Bearer). Una clave solo funciona para los dominios de tienda asociados a ella; envíe el dominio en X-Shop-Domain.
POST /lookup HTTP/1.1
Host: api.data-enricher.com
X-Worker-Key: ma-…
X-Shop-Domain: yourstore.com
Content-Type: application/json
Cada clave tiene un límite mensual de solicitudes. Las respuestas de la caché no cuentan. Solicite una clave mediante la página de contacto.
POST /lookup
Busca un producto por su EAN y devuelve los datos y las fotos verificadas. Se validan EAN-8, UPC-A, EAN-13 y GTIN-14, incluido el dígito de control; UPC-A se convierte en EAN-13.
{"ean": "7333377653917", "name": "Husqvarna 550i XP", "refresh": false}
| Campo | Significado |
|---|---|
ean | Obligatorio. El código de barras del producto. |
name | Opcional. El nombre en su tienda; ayuda con EAN que no son claros en línea. Como máximo 128 caracteres. |
refresh | Opcional. true vuelve a buscar en lugar de utilizar la caché. |
{"result": {
"ean": "7333377653917", "identified": true, "name": "Husqvarna 550i XP",
"description": "…", "specs": {"Battery voltage": "36 V"},
"images": {"in_use": ["https://…"], "product": ["https://…"]},
"sources": ["https://…"], "cached": false, "credits_used": 0, "search": "free"
}}
Se devuelven como máximo ocho fotos, primero las de «en uso», reservando siempre espacio para al menos tres fotos del producto cuando existen. Los errores se indican en result.error; en ese caso no se almacena nada, por lo que puede volver a intentarlo más tarde.
POST /text
Redacta los textos del producto en un idioma: título, descripción corta y larga, título meta y descripción meta.
{"ean": "7333377653917", "name": "Husqvarna 550i XP", "language": "en", "format": "html"}
language es un código ISO: nl, en, de, fr, es, it, pt, pl, da, sv, no, fi, cs, ro, zh, ja, ru o ko. Cualquier otro código recurre al inglés, con un warning. format es html o text.
Además de la description lista para usar, recibe la descripción por partes: intro_html y sections (características, razones para elegirlo, ventajas, desventajas, contenido de la caja, preguntas frecuentes, sobre la marca), cada una con un encabezado en el idioma del texto. Componga su propia descripción con las secciones y el orden que prefiera. details también contiene todo como datos: especificaciones, propiedades, palabras clave, colores, materiales y tamaños.
POST /page-text
Textos para una página de categoría o marca: una descripción corta para la parte superior, una descripción larga por secciones, un título meta y una descripción meta, con enlaces internos a páginas de su propia tienda.
{"type": "category", "entity_id": 12, "name": "Chainsaws", "language": "en",
"path": "Garden > Chainsaws", "subcategories": ["Cordless chainsaws"],
"brands": ["Husqvarna"], "products": ["Husqvarna 550i XP"],
"links": [{"type": "subcategory", "title": "Cordless chainsaws", "url": "https://yourstore.com/cordless-chainsaws"}],
"shop_name": "Your Store"}
Los enlaces solo llevan a las URL que envía, cada URL como máximo una vez y hasta seis por texto. Para una marca ("type": "brand"), envíe categories en lugar de subcategories y brands; la API también buscará la marca en la web.
POST /jobs
Hasta veinte EAN a la vez, con cinco búsquedas simultáneas. Recibe un job_id inmediatamente.
{"items": [{"ean": "7333377653917", "name": "Husqvarna 550i XP"}, {"ean": "8716637053167"}]}
Siga el progreso con GET /jobs/{job_id}: status es queued, running o done, y results conserva el orden de su solicitud.
GET /usage
Su uso y límites en el periodo actual: solicitudes, créditos y tokens de IA.
Errores
| Estado | Significado |
|---|---|
| 400 | JSON no válido. |
| 403 | Clave incorrecta o el dominio de la tienda no está asociado a la clave. |
| 413 | La solicitud es demasiado grande. |
| 422 | No hay EAN válidos en un lote. |
| 429 | Demasiadas solicitudes o se ha alcanzado el límite de su plan. |
Los errores de contenido, como un producto que no se encuentra, se devuelven con estado 200 y un error en el resultado.