Документация API

Подключите Data Enricher к своей платформе, PIM или скрипту импорта. Один REST API, JSON на входе и на выходе.

Доступ и ключи

Каждый магазин получает собственный ключ: 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 в результате.

Вопросы об API

Как получить API-ключ?

Запросите ключ через страницу контактов. Каждый магазин получает собственный ключ, который работает только для относящихся к нему доменов магазина.

Учитываются ли повторные запросы в лимите?

Нет. Ответы из кэша не учитываются.

Сколько EAN можно отправить одновременно?

До двадцати за один пакет через /jobs. Пять из них обрабатываются одновременно.

Что делать, если продукт не найден?

Вы получаете статус 200 с ошибкой в результате. Ничего не сохраняется, поэтому вы можете попробовать снова позже.