Accès et clés
Chaque boutique reçoit sa propre clé : ma- suivi de 32 caractères. Envoyez-la dans l’en-tête X-Worker-Key (ou Authorization: Bearer). Une clé fonctionne uniquement pour les domaines de boutique qui lui sont associés ; envoyez le domaine dans 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
Chaque clé a une limite mensuelle de requêtes. Les réponses du cache ne comptent pas. Demandez une clé via la page de contact.
POST /lookup
Recherche un produit par son EAN et renvoie les données et les photos vérifiées. Les EAN-8, UPC-A, EAN-13 et GTIN-14 sont validés, chiffre de contrôle compris ; UPC-A est converti en EAN-13.
{"ean": "7333377653917", "name": "Husqvarna 550i XP", "refresh": false}
| Champ | Signification |
|---|---|
ean | Obligatoire. Le code-barres du produit. |
name | Facultatif. Le nom dans votre boutique ; aide pour les EAN ambigus en ligne. Au plus 128 caractères. |
refresh | Facultatif. true lance une nouvelle recherche au lieu d’utiliser le cache. |
{"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"
}}
Au plus huit photos sont renvoyées, celles « en situation » d’abord, en réservant toujours de la place pour au moins trois photos du produit lorsqu’elles existent. Une erreur figure dans result.error ; rien n’est alors stocké, vous pouvez donc réessayer plus tard.
POST /text
Rédige les textes du produit dans une langue : titre, descriptions courte et longue, titre meta et description meta.
{"ean": "7333377653917", "name": "Husqvarna 550i XP", "language": "en", "format": "html"}
language est un code ISO : nl, en, de, fr, es, it, pt, pl, da, sv, no, fi, cs, ro, zh, ja, ru ou ko. Un autre code entraîne un repli vers l’anglais, avec un warning. format vaut html ou text.
En plus de la description prête à l’emploi, vous recevez la description en parties : intro_html et sections (caractéristiques, raisons de le choisir, avantages, inconvénients, contenu de la boîte, questions fréquentes, présentation de la marque), chacune avec un titre dans la langue du texte. Composez votre propre description avec les sections et l’ordre souhaités. details contient aussi toutes les informations sous forme de données : spécifications, propriétés, mots-clés, couleurs, matériaux et tailles.
POST /page-text
Textes pour une page de catégorie ou de marque : une description courte pour le haut, une description longue en sections, un titre meta et une description meta, avec des liens internes vers les pages de votre boutique.
{"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"}
Les liens pointent uniquement vers les URL que vous envoyez, chaque URL au plus une fois et six liens maximum par texte. Pour une marque ("type": "brand"), envoyez categories à la place de subcategories et brands ; l’API recherche alors aussi la marque sur le web.
POST /jobs
Jusqu’à vingt EAN à la fois, cinq recherches simultanées. Vous recevez immédiatement un job_id.
{"items": [{"ean": "7333377653917", "name": "Husqvarna 550i XP"}, {"ean": "8716637053167"}]}
Suivez la progression avec GET /jobs/{job_id} : status vaut queued, running ou done, et results conserve l’ordre de votre requête.
GET /usage
Votre utilisation et vos limites pour la période actuelle : requêtes, crédits et jetons IA.
Erreurs
| Statut | Signification |
|---|---|
| 400 | JSON non valide. |
| 403 | Clé incorrecte, ou le domaine de la boutique n’est pas associé à la clé. |
| 413 | La requête est trop volumineuse. |
| 422 | Aucun EAN valide dans un lot. |
| 429 | Trop de requêtes, ou la limite de votre forfait est atteinte. |
Les erreurs de contenu, comme un produit introuvable, sont renvoyées avec le statut 200 et un error dans le résultat.