Доступ и ключи
Каждый магазин получает собственный ключ: ma- и следующие за ним 32 символа. Передавайте его в заголовке X-Worker-Key (или Authorization: Bearer). Ключ работает только для привязанных к нему доменов магазина; передавайте домен в 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
У каждого ключа есть месячный лимит запросов. Ответы из кеша не учитываются. Запросите ключ через страницу контактов.
POST /lookup
Находит товар по EAN и возвращает фактические данные и проверенные фотографии. EAN-8, UPC-A, EAN-13 и GTIN-14 проверяются, включая контрольную цифру; UPC-A преобразуется в EAN-13.
{"ean": "7333377653917", "name": "Husqvarna 550i XP", "refresh": false}
| Поле | Значение |
|---|---|
ean | Обязательно. Штрихкод товара. |
name | Необязательно. Название в вашем магазине; помогает с EAN, которые трудно однозначно определить в интернете. Не более 128 символов. |
refresh | Необязательно. true запускает повторный поиск вместо использования кеша. |
{"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"
}}
Возвращается не более восьми фотографий, сначала «в использовании», с обязательным резервированием места как минимум для трёх фотографий самого товара, если они есть. Ошибка находится в result.error; в этом случае ничего не сохраняется, поэтому можно повторить попытку позже.
POST /text
Создаёт тексты о товаре на выбранном языке: заголовок, краткое и полное описание, метазаголовок и метаописание.
{"ean": "7333377653917", "name": "Husqvarna 550i XP", "language": "en", "format": "html"}
language — код ISO: nl, en, de, fr, es, it, pt, pl, da, sv, no, fi, cs, ro, zh, ja, ru или ko. Другой код приводит к использованию английского языка с warning. format — html или text.
Помимо готового description, вы получаете описание по частям: intro_html и sections (особенности, причины выбора, плюсы, минусы, комплектация, часто задаваемые вопросы, о бренде), каждый раздел с заголовком на языке текста. Соберите собственное описание из нужных разделов в нужном порядке. В details всё также представлено в виде данных: технические характеристики, свойства, ключевые слова, цвета, материалы и размеры.
POST /page-text
Тексты для страницы категории или бренда: краткое описание для верхней части, полное описание по разделам, метазаголовок и метаописание, с внутренними ссылками на страницы вашего магазина.
{"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"}
Ссылки ведут только на переданные вами URL, каждый URL используется не более одного раза, всего не более шести ссылок на текст. Для бренда ("type": "brand") передавайте categories вместо subcategories и brands; тогда API также ищет бренд в интернете.
POST /jobs
До двадцати EAN за один раз, пять поисков одновременно. Вы сразу получаете job_id.
{"items": [{"ean": "7333377653917", "name": "Husqvarna 550i XP"}, {"ean": "8716637053167"}]}
Следите за прогрессом через GET /jobs/{job_id}: status принимает значения queued, running или done, а results сохраняет порядок вашего запроса.
GET /usage
Ваше использование и лимиты за текущий период: запросы, кредиты и токены ИИ.
Ошибки
| Статус | Значение |
|---|---|
| 400 | Некорректный JSON. |
| 403 | Неверный ключ или домен магазина не привязан к ключу. |
| 413 | Слишком большой запрос. |
| 422 | В пакете нет корректных EAN. |
| 429 | Слишком много запросов или достигнут лимит тарифа. |
Ошибки содержимого, например ненайденный товар, возвращаются со статусом 200 и error в результате.