API 문서

Data Enricher를 자체 플랫폼, PIM 또는 가져오기 스크립트에 연결하세요. 하나의 REST API로 JSON을 입력하고 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은 최대 한 번, 문구당 최대 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를 통해 한 번에 최대 20개까지 보낼 수 있습니다. 그중 5개가 동시에 검색됩니다.

제품을 찾을 수 없는 경우는 어떻게 되나요?

결과에 오류가 포함된 상태 200이 반환됩니다. 저장되지 않으므로 나중에 다시 시도할 수 있습니다.