API ドキュメント

Data Enricher を独自のプラットフォーム、PIM、インポートスクリプトに接続できます。1つの 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"
}}

最大8枚の写真が返され、「使用中」が先に並びます。商品単体の写真がある場合は、常に少なくとも3枚分の枠を確保します。エラーは 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 は最大1回、テキストごとに最大6件です。ブランド("type": "brand")の場合は、subcategories と brands の代わりに categories を送信してください。この場合、API はウェブ上でもブランドを検索します。

POST /jobs

一度に最大20件の EAN を受け付け、5件ずつ同時に検索します。job_id がすぐに返されます。

{"items": [{"ean": "7333377653917", "name": "Husqvarna 550i XP"}, {"ean": "8716637053167"}]}

GET /jobs/{job_id} で進捗を確認できます。status は queued、running、done のいずれかで、results はリクエストの順序を維持します。

GET /usage

現在の期間における利用量と上限です。リクエスト数、クレジット、AI トークンを含みます。

エラー

ステータス意味
400無効な JSON です。
403キーが誤っているか、ストアドメインがキーに紐づいていません。
413リクエストが大きすぎます。
422一括処理に有効な EAN がありません。
429リクエストが多すぎるか、プランの上限に達しています。

商品が見つからないなどの内容上のエラーは、ステータス 200 で返され、結果に error が含まれます。

API に関する質問

API キーを取得するにはどうすればよいですか?

お問い合わせページからキーをリクエストしてください。ショップごとに独自のキーが発行され、関連するショップドメインでのみ機能します。

繰り返しリクエストを行った場合も制限の対象になりますか?

いいえ。キャッシュからの回答は制限の対象外です。

一度にいくつの EAN を送信できますか?

"/jobs" を経由して 1 回のバッチで最大 20 個まで送信できます。そのうち 5 個が同時に検索されます。

商品が見つからない場合はどうなりますか?

結果にエラーが含まれるステータス 200 が返されます。何も保存されないため、後で再度試すことができます。