레퍼런스 · v1
Itemoo Public Product Data API
출처 정보가 포함된 제품 데이터, schema.org JSON-LD, 수신자용 여권, GS1 Digital Link 리졸버. 키가 필요 없습니다.
엔드포인트와 필드 설명은 영어로 제공됩니다. API의 코드 및 필드 이름과 같습니다.
소개
https://itemoo.eu
Read-only product data published by producers on Itemoo — no key needed. The same QR code serves a person (HTML page) and a machine (JSON). Every fact points to the document that proves it; machine data is never richer or poorer than the page a person sees.
Languages. ?lang=xx or Accept-Language; texts fall back to the brand default language.
Errors. { statusCode, error, code, params?, message } — rely on code. A code of a product that is no longer maintained returns 410.
Limits. Calls are rate-limited per IP address (429 when exceeded); responses are cacheable — respect Cache-Control.
Product data
Product data with provenance
get/q/{code}/data
키 불필요
Everything the human page shows, for machines: identity (GTIN, LOT, serial), product, facts with the document behind each, documents, FAQ, recall status and a trust section. Only the published version of the page is exposed. CORS is open (Access-Control-Allow-Origin: *); responses are cached for 5 minutes.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
langquery | string | Two-letter language; without it the Accept-Language header decides 예시: en |
Accept-Languageheader | string | Preferred language of the texts (fact names, description) when lang is missing. |
응답 200 · application/json
ProductData
identityProductIdentity필수필드 · ProductIdentity
codestring필수Itemoo code from the QR labellevel"unit" | "batch" | "variant" | "model"필수gtinstring | null필수skustring | null필수variantobject필드
labelstring필수catalogNostring | null필수
lotstring | null필수serialstring | null필수expiresAtstring (date-time) | null필수statusstring필수Batch status: ACTIVE | RECALLED | …uniqueProductIdentifierstring필수Unique product identifier of this code (EN 18219:2026): GS1 Digital Link with the batch and serial number of the code level, or the code address/q/{code}without a GTIN
productProductSummary필수필드 · ProductSummary
namestring필수brandstring필수category"chemicals" | "cosmetics" | "medical" | "food" | "supplements" | "electronics" | "appliances" | "batteries" | "textiles" | "furniture" | "toys" | "construction" | "other" | null필수Regulatory product type — decides the mandatory information: chemicals | cosmetics | medical | food | supplements | electronics | appliances | batteries | textiles | furniture | toys | construction | otherdescriptionstring필수imagestringtranslationsobjectName and description in every language the brand provides (ISO 639-1 code → text);nameanddescriptionabove are in the language of the response필드
namemap<string, string>필수descriptionmap<string, string>필수
manufacturerEconomicOperator | null필수Manufacturer with postal address and contact; null when the brand has not filled it in필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
responsiblePersonEconomicOperator | null필수Responsible person in the EU; null when none is given필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
importerEconomicOperator | null필수Importer (Regulation (EU) 2024/1781 Annex III point (j)); for a batch or unit code the batch importer필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
authorisedRepresentativeEconomicOperator | null필수Authorised representative of the manufacturer필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
facilityEconomicOperator | null필수Manufacturing facility (Annex III point (i)); publicly only the town and country unless the brand made the full address public필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
passportFieldsobject필수Model passport fields with the public access level (empty until the page is published)languagestring필수Language of the texts (requested one when the brand has it)publishedboolean필수false = the product page is not published yet; facts are emptymachineTranslatedboolean필수passportboolean필수The product has a Digital Product Passport: the brand added the “Digital product passport” block or the product is under a passport obligation. Public passport data fields (passportFields) are published for every productpassportStatus"NONE" | "ACTIVE" | "CLOSED"필수Passport state: NONE — no passport; ACTIVE; CLOSED — closed by the brand after the product was placed on the market (the passport shows the state as of the closing date)recallRecall | null필수필드 · Recall
activetrue필수certainboolean필수true = this exact code is recalled; false = the batch is unknown and may be affectedscope"product" | "batch" | "lotRange"필수product = the whole product; batch = one batch; lotRange = a range of batch numbers (lotFrom–lotTo)reasonstring필수instructionsstring | null필수lotFromstring | null필수lotTostring | null필수kind"recall" | "notice"recall = the product is recalled; notice = safety notice, the product is not withdrawn
factsProvenanceFact[]필수필드 · ProvenanceFact
keystringStable English key of a standard fact (origin, materials, battery.capacityAh, chemical.ufi, …); absent for parameters defined by the brand — match on it, not on the translated namenamestring필수Fact name in the response languagevaluestring필수provenanceobject필드
sourcestring필수Document or block the fact comes fromversionstringdocumentUrlstringassertedBystring필수Brand that published the factassertedAtstring
offersobject[]필수필드
namestring필수pricenumber필수currencystring필수
documentsDocument[]필수필드 · Document
titlestring필수urlstring필수kindstring필수certificate | declaration | repair | dpp | manual | sds | …versionstringaccessstringpublic | legit | authority — present on documents beyond the public leveldocIdstringLibrary document identifier — the same as in{ docId }values of document fieldslanguagestringLanguage of the file (ISO 639-1 code, e.g.de), set by the brand at the document version; absent — multilingual file or not specified
faqobject[]필수필드
questionstring필수answerstring필수
trustobject필수필드
assertedBystring필수publishedVia"Itemoo"필수evidencePolicystring필수factsWithProvenanceinteger필수factsTotalinteger필수lastUpdatedstring (date-time)필수
오류
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/data'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/data', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/data');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
schema.org Product (JSON-LD)
get/q/{code}/schema.json
키 불필요
The same product as schema.org Product in JSON-LD — for search engines and standard agents. Facts become additionalProperty with valueReference to the source document; the recall status is the first property (recallStatus).
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
langquery | string | Two-letter language; without it the Accept-Language header decides 예시: en |
Accept-Languageheader | string | Preferred language of the texts (fact names, description) when lang is missing. |
응답 200 · application/ld+json
object
@context"https://schema.org"필수@type"Product"필수namestring필수
오류
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/schema.json'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/schema.json', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/schema.json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Parameter profile file
get/q/{code}/profile
키 불필요
One parameter profile of the product (e.g. print settings for a resin) as a file: format=json gives { product, profile, params: [{ name, value }] }, ini (default) and cfg give key = value text for slicers.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
iquery | string | Profile index, 0 by default |
formatquery | "json" | "ini" | "cfg" | |
langquery | string |
응답 200 · application/json, text/plain
Profile file (attachment)
오류
| 404 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/profile?format=json'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/profile?format=json', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/profile?format=json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Capabilities for AI agents
get/.well-known/agent-interface.json
키 불필요
Entry point for an agent that landed on the domain: the endpoints above and the evidence policy.
응답 200 · application/json
object
namestring필수descriptionstring필수versionstring필수endpointsobject[]필수필드
pathstring필수methodstring필수returnsstring필수descriptionstring필수
evidencePolicystring필수
오류
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/.well-known/agent-interface.json'JavaScript
const res = await fetch('https://itemoo.eu/.well-known/agent-interface.json', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/.well-known/agent-interface.json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Passport
Digital Product Passport (JSON-LD)
get/q/{code}/dpp.jsonld
키 불필요
The passport in JSON-LD with the Itemoo context (https://itemoo.eu/ns/dpp/1.1/context.jsonld; version 1.0 stays published): fields map to the CIRPASS-2 ontology (https://w3id.org/eudpp#, battery modules) where the meaning matches, the rest to the Itemoo vocabulary. The product node is the unit, batch or model of the code; the passport node carries the version hash, backup copy, predecessor and successors, components and lifecycle status. The same document is returned by /q/{code} and the GS1 Digital Link addresses for Accept: application/ld+json (with Content-Location). With a recipient token or session it shows that level (then never cached). The CIRPASS-2 ontology is a project recommendation, not an EU data model; conformity with the EU semantic repository (Implementing Regulation (EU) 2026/1778) is not claimed. Only products with a passport have it — the brand added the “Digital product passport” block or the product is under a passport obligation (e.g. EV, LMT and industrial batteries above 2 kWh); other products answer 404 PASSPORT_NONE and publish their data in /q/{code}/data. A closed passport has lifecycle.status = closed and shows the state as of the closing date.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
langquery | string | Two-letter language; without it the Accept-Language header decides 예시: en |
Authorizationheader | string | Bearer ipa_… — optional recipient token |
Accept-Languageheader | string | Preferred language of the texts (fact names, description) when lang is missing. |
응답 200 · application/ld+json
object
@contextstring필수idstring필수type"Product"필수passportobject필수필드
type"DigitalProductPassport"필수
오류
| 401 |
|
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/dpp.jsonld'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/dpp.jsonld', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/dpp.jsonld');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
JSON-LD context of Itemoo passports
get/ns/dpp/{version}/context.jsonld
키 불필요
Immutable, versioned context (@protected). A change of content means a new version; documents name the version they use.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
versionpath · 필수 | string | Context version 예시: 1.0 |
응답 200 · application/ld+json
object
@contextobject필수
오류
| 404 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/ns/dpp/1.0/context.jsonld'JavaScript
const res = await fetch('https://itemoo.eu/ns/dpp/1.0/context.jsonld', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/ns/dpp/1.0/context.jsonld');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Itemoo passport vocabulary
get/ns/dpp/{version}/vocab
키 불필요
RDFS terms (itm:) used by the context for fields without a CIRPASS-2 equivalent, with labels in Polish and English; mapped fields are listed as equivalent properties.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
versionpath · 필수 | string | Vocabulary version 예시: 1.0 |
응답 200 · application/ld+json
object
@idstring필수
오류
| 404 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/ns/dpp/1.0/vocab'JavaScript
const res = await fetch('https://itemoo.eu/ns/dpp/1.0/vocab', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/ns/dpp/1.0/vocab');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Data model catalogue (DCAT-AP)
get/.well-known/dpp
키 불필요
DCAT-AP description of the Itemoo passport data models (context, vocabulary, ontologies they build on) and of the resolver service. No index of products or brands.
응답 200 · application/ld+json
object
@idstring필수@type"dcat:Catalog"필수
오류
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/.well-known/dpp'JavaScript
const res = await fetch('https://itemoo.eu/.well-known/dpp', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/.well-known/dpp');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Digital Product Passport
get/q/{code}/passport
키 불필요
Public passport data; with a recipient token issued by the producer (legitimate interest or authority) also the fields, documents and unit history of that level. Send the token as Authorization: Bearer ipa_…. Never cached. A browser (Accept: text/html without a token) gets a readable passport page at the same address; format=json returns JSON anyway. Only products with a passport have it — the brand added the “Digital product passport” block or the product is under a passport obligation (e.g. EV, LMT and industrial batteries above 2 kWh); other products answer 404 PASSPORT_NONE and publish their data in /q/{code}/data. A closed passport has lifecycle.status = closed and shows the state as of the closing date.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
langquery | string | Two-letter language; without it the Accept-Language header decides 예시: en |
atquery | string | The passport as it was at that moment, from the version history (a stable address of a version): ISO 8601 with a time zone (Z or ±hh:mm) or a plain date (start of the day, UTC). Without a time zone — 400 DATE_INVALID; in the future (over 60 s) — 400 DATE_IN_FUTURE예시: 2027-03-01T10:00:00Z |
formatquery | "json" | "html" | json — JSON even for a browser; html — the passport page. Without it the Accept header decides. |
Authorizationheader | string | Bearer ipa_… — optional recipient token |
Accept-Languageheader | string | Preferred language of the texts (fact names, description) when lang is missing. |
응답 200 · application/json
Passport
level"public" | "legit" | "authority"필수recipientstringName of the access grant usedversionPassportVersion | null필수필드 · PassportVersion
hashstring필수SHA-256 of the canonical (RFC 8785) composition of layer versions and the unit event chain headlayersobject[]필수필드
subject"product" | "variant" | "batch" | "unit"필수versioninteger필수hashstring필수
eventsHeadstring | null필수atstring (date-time)Present for a passport read at a point in time (?at=)
backupobject | null필수Backup copy of the passport kept by a DPP service provider (Regulation (EU) 2024/1781 Annex III point (l)), when the brand designated one필드
providerstring필수urlstring필수
identityProductIdentity필수필드 · ProductIdentity
codestring필수Itemoo code from the QR labellevel"unit" | "batch" | "variant" | "model"필수gtinstring | null필수skustring | null필수variantobject필드
labelstring필수catalogNostring | null필수
lotstring | null필수serialstring | null필수expiresAtstring (date-time) | null필수statusstring필수Batch status: ACTIVE | RECALLED | …uniqueProductIdentifierstring필수Unique product identifier of this code (EN 18219:2026): GS1 Digital Link with the batch and serial number of the code level, or the code address/q/{code}without a GTIN
productProductSummary필수필드 · ProductSummary
namestring필수brandstring필수category"chemicals" | "cosmetics" | "medical" | "food" | "supplements" | "electronics" | "appliances" | "batteries" | "textiles" | "furniture" | "toys" | "construction" | "other" | null필수Regulatory product type — decides the mandatory information: chemicals | cosmetics | medical | food | supplements | electronics | appliances | batteries | textiles | furniture | toys | construction | otherdescriptionstring필수imagestringtranslationsobjectName and description in every language the brand provides (ISO 639-1 code → text);nameanddescriptionabove are in the language of the response필드
namemap<string, string>필수descriptionmap<string, string>필수
manufacturerEconomicOperator | null필수필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
responsiblePersonEconomicOperator | null필수필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
importerEconomicOperator | null필수필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
authorisedRepresentativeEconomicOperator | null필수필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
facilityEconomicOperator | null필수필드 · EconomicOperator
namestring필수addressobject필수필드
streetstring | null필수postalCodestring | null필수citystring | null필수countrystring | null필수ISO 3166-1 alpha-2
emailstring | null필수phonestring | null필수Shown only at the access level the brand chose for it (default: persons with a legitimate interest)source"company" | "registry"필수company = the brand company data; registry = an operator from the company operator register designated in the passporttradeNamestring | nullRegistered trade name or trade mark (Regulation (EU) 2024/1781 Art. 27(6), 29(3))identifiersobject[]Unique operator or facility identifiers (Regulation (EU) 2024/1781 Annex III points (g)–(k), Art. 12; EN 18219:2026 Clause 6 — ISO/IEC 6523 or ISO/IEC 15459)필드
scheme"gln" | "duns" | "lei" | "vat" | "iso15459"필수gln = GS1 GLN, duns = D-U-N-S, lei = Legal Entity Identifier (ISO 17442), vat = EU VAT number with country prefix, iso15459 = identifier of another ISO/IEC 15459 issuing agencyiacstringIssuing agency code (ISO/IEC 15459-2 register): 0–9 for GS1, UN for D&B, otherwise the registered agency code; absent for lei and vatvaluestring필수
eoristring | nullEORI number (importer, Annex III point (j)) — shown only at the access level the brand chose for it (default: legitimate interest)
languagestring필수publishedboolean필수recallRecall | null필수필드 · Recall
activetrue필수certainboolean필수true = this exact code is recalled; false = the batch is unknown and may be affectedscope"product" | "batch" | "lotRange"필수product = the whole product; batch = one batch; lotRange = a range of batch numbers (lotFrom–lotTo)reasonstring필수instructionsstring | null필수lotFromstring | null필수lotTostring | null필수kind"recall" | "notice"recall = the product is recalled; notice = safety notice, the product is not withdrawn
factsProvenanceFact[]필수필드 · ProvenanceFact
keystringStable English key of a standard fact (origin, materials, battery.capacityAh, chemical.ufi, …); absent for parameters defined by the brand — match on it, not on the translated namenamestring필수Fact name in the response languagevaluestring필수provenanceobject필드
sourcestring필수Document or block the fact comes fromversionstringdocumentUrlstringassertedBystring필수Brand that published the factassertedAtstring
documentsDocument[]필수필드 · Document
titlestring필수urlstring필수kindstring필수certificate | declaration | repair | dpp | manual | sds | …versionstringaccessstringpublic | legit | authority — present on documents beyond the public leveldocIdstringLibrary document identifier — the same as in{ docId }values of document fieldslanguagestringLanguage of the file (ISO 639-1 code, e.g.de), set by the brand at the document version; absent — multilingual file or not specified
componentsPassportComponent[]필수Components with their own passport visible at this level (Regulation (EU) 2024/1781 Art. 2(4); CIRPASS-2 D4.1 recommendation 5)필드 · PassportComponent
codestring | null필수Itemoo code of the component passport (unit, batch, variant or model — also of another brand)uristring | null필수Address of a component passport outside Itemoo (DPP URL or GS1 Digital Link)urlstring필수Where to read the component passportrolestring | null필수nameany필수quantitynumber | null필수unitstring | null필수level"model" | "unit"필수model — bill of components of the model; unit — installed in this unit (assembly events)sincestring | null필수When the component was installed in this unit
lifecycleobject필수Lifecycle status of the passport: recalled — an active recall covers the code (a safety notice does not); end_of_life — the unit was recycled or became waste; archived — the brand left Itemoo and the passport is kept read-only; closed — the brand closed the passport after the product was placed on the market (the passport shows the state as of the closing date,since). A passport is never deleted: removal is a status (CIRPASS-2 D4.1 recommendation 3); a retired code answers 410필드
status"active" | "recalled" | "end_of_life" | "archived" | "closed"필수sincestring (date-time) | null필수
modelobject필수Model passport fields visible at this levelunitobject | null필수필드
serialstring | null필수dataobject필수stateobject필수필드
statusstring | null필수original | repurposed | re-used | remanufactured | waste | recycled (Regulation (EU) 2023/1542 Annex XIII point 4(c); recycled ends the passport). null — not visible at this access level (a battery status is for persons with a legitimate interest only)sohnumber | null필수State of health, 0–100 (SoH, or SOCE / remaining capacity when only that is recorded)sohAtstring (date-time) | null필수cyclesnumber | null필수incidentsinteger필수
historyobject[]필수필드
kindstring필수dataany필수occurredAtstring (date-time)필수sourcestring
linksobject필수필드
predecessorobject | null필수Passport before remanufacturing or repurposing (Art. 77(7))필드
codestring필수urlstring필수
successorsobject[]필수New passports created from this battery필드
codestring필수urlstring필수
custodianobject | null필수Operator responsible for the passport of a waste battery after a transfer (producer, PRO or waste management operator — Art. 77(7))필드
namestring필수rolestring필수sincestring (date-time)필수
오류
| 400 |
|
| 401 |
|
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/passport'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/passport', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/passport');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Products this component is part of
get/q/{code}/passport/part-of
키 불필요
Reverse component links: models whose bill of components lists this code and units where it is currently installed. A link is returned only when the reader has its access level AT THE BRAND OF THE PARENT product (a recipient token of that brand, or a market surveillance authority) — the component maker does not learn who uses its parts. Non-public reads are logged in the read log of the parent brand. Only products with a passport have it — the brand added the “Digital product passport” block or the product is under a passport obligation (e.g. EV, LMT and industrial batteries above 2 kWh); other products answer 404 PASSPORT_NONE and publish their data in /q/{code}/data. A closed passport has lifecycle.status = closed and shows the state as of the closing date.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
Authorizationheader | string | Bearer ipa_… — optional recipient token |
응답 200 · application/json
PartOf
codestring필수partOfobject[]필수필드
codestring필수urlstring필수rolestring | null필수level"model" | "unit"필수sincestring | null필수
오류
| 401 |
|
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/passport/part-of'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/passport/part-of', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/passport/part-of');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Brand passport feed (JSON Feed)
get/b/{slug}/passport/feed.json
키 불필요
Public feed of a brand for dealers, recyclers, marketplaces and authorities, without registering an address: recalls, safety notices and new versions of product and batch passports (names of the changed public fields; values are at the code address). No unit data. JSON Feed 1.1, ETag and 5-minute caching. The same entries as Atom: /b/{slug}/passport/feed.atom.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
slugpath · 필수 | string | Brand identifier from the brand app address 예시: acme |
응답 200 · application/feed+json
object
version"https://jsonfeed.org/version/1.1"필수itemsobject[]필수필드
idstring필수urlstring필수
오류
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/b/acme/passport/feed.json'JavaScript
const res = await fetch('https://itemoo.eu/b/acme/passport/feed.json', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/b/acme/passport/feed.json');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Brand passport feed (Atom)
get/b/{slug}/passport/feed.atom
키 불필요
The brand passport feed as Atom 1.0 (see the JSON Feed variant).
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
slugpath · 필수 | string | Brand identifier 예시: acme |
응답 200 · application/atom+xml
string
오류
| 404 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/b/acme/passport/feed.atom'JavaScript
const res = await fetch('https://itemoo.eu/b/acme/passport/feed.atom', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/b/acme/passport/feed.atom');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Passport version history
get/q/{code}/passport/history
키 불필요
Every change of passport fields (model, variant, batch, unit) is an append-only version chained by SHA-256 hashes. The response lists versions with the changes of fields visible at the reader's level (public without a token) and, for the authority level, the leaf hashes needed to recompute each version hash. Redacted values (personal data removed by the platform) keep their hash and show redacted: true. Only products with a passport have it — the brand added the “Digital product passport” block or the product is under a passport obligation (e.g. EV, LMT and industrial batteries above 2 kWh); other products answer 404 PASSPORT_NONE and publish their data in /q/{code}/data. A closed passport has lifecycle.status = closed and shows the state as of the closing date.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
Authorizationheader | string | Bearer ipa_… — optional recipient token |
응답 200 · application/json
PassportHistory
codestring필수level"public" | "legit" | "authority"필수versionPassportVersion | null필수필드 · PassportVersion
hashstring필수SHA-256 of the canonical (RFC 8785) composition of layer versions and the unit event chain headlayersobject[]필수필드
subject"product" | "variant" | "batch" | "unit"필수versioninteger필수hashstring필수
eventsHeadstring | null필수atstring (date-time)Present for a passport read at a point in time (?at=)
versionsobject[]필수필드
subject"product" | "variant" | "batch" | "unit"필수versioninteger필수hashstring필수prevHashstring | null필수atstring (date-time)필수sourcestring필수changesobject[]필수필드
keystring필수op"add" | "change" | "remove"필수valueanyredactedboolean
leavesmap<string, object>Leaf hashes (authority level only) to recompute the version hash필드
hstring필수access"public" | "legit" | "authority"필수
오류
| 401 |
|
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/passport/history'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/passport/history', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/passport/history');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Proof of existence of the current passport versions
get/q/{code}/passport/anchor
키 불필요
Every day (UTC) Itemoo builds a Merkle tree (RFC 6962 hashing: leaf = SHA-256(0x00 ‖ hash), node = SHA-256(0x01 ‖ left ‖ right), sorted unique leaves) of all passport version hashes and unit event hashes recorded that day and, when enabled, obtains an RFC 3161 timestamp for SHA-256(root). For each current layer version (and the head of the unit event chain) the response gives the day, the root and the inclusion path; anchor: null until the day is anchored. Verify the token with openssl ts -verify -digest <timestamp.digest> -in <token>. Only products with a passport have it — the brand added the “Digital product passport” block or the product is under a passport obligation (e.g. EV, LMT and industrial batteries above 2 kWh); other products answer 404 PASSPORT_NONE and publish their data in /q/{code}/data. A closed passport has lifecycle.status = closed and shows the state as of the closing date.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
응답 200 · application/json
PassportAnchorProofs
codestring필수algorithmstring | null필수proofsobject[]필수필드
subject"product" | "variant" | "batch" | "unit" | "events"필수versionintegerhashstring필수anchorobject | null필수필드
daystring필수rootstring필수algorithmstring필수leavesinteger필수pathobject[]필수필드
side"left" | "right"필수hashstring필수
timestampobject | null필수필드
providerstring필수atstring필수digeststring필수tokenstring필수Base64 RFC 3161 TimeStampResp
오류
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/passport/anchor'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/passport/anchor', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/passport/anchor');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Request access to an archived passport
post/q/{code}/passport/access-request
키 불필요
After the contract of the brand ends, regulated passports (batteries with the full passport) stay available in the Itemoo Passport Archive, but the brand no longer issues recipient tokens. Authorities and persons with a legitimate interest (Regulation (EU) 2023/1542 Annex XIII) request access here; a platform operator reviews the request and another one approves it (four eyes) and sends the token. Outside the archive the route answers 404 — ask the brand.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
요청 본문 application/json
level"legit" | "authority"필수organizationstring필수Authority, service, recycler…emailstring필수Contact e-mail for the token (deleted 180 days after the decision)justificationstring필수Why the access is needed and on what basis
응답 200 · application/json
PassportAccessRequestCreated
idstring필수status"new"필수
오류
| 400 |
|
| 404 |
|
| 409 |
|
| 429 |
|
예시
cURL
curl -X POST 'https://itemoo.eu/q/A1B2C3D4/passport/access-request' \
-H 'Content-Type: application/json' \
-d '{"level":"legit","organization":"Recycling Sp. z o.o.","email":"office@example.com","justification":"Dismantling and recycling of the battery received as waste."}'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/passport/access-request', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"level": "legit",
"organization": "Recycling Sp. z o.o.",
"email": "office@example.com",
"justification": "Dismantling and recycling of the battery received as waste."
}),
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/passport/access-request');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"level":"legit","organization":"Recycling Sp. z o.o.","email":"office@example.com","justification":"Dismantling and recycling of the battery received as waste."}',
]);
$data = json_decode(curl_exec($ch), true);Restricted passport document file
get/q/{code}/passport/documents/{versionId}
키 불필요
The file of a document outside the public level (e.g. dismantling information, test reports — Annex XIII points 2–3 of Regulation (EU) 2023/1542). Its address comes from documents[].url of GET /q/{code}/passport read with a token; the public file address of such a document returns 404. Requires Authorization: Bearer ipa_… with a level that sees the document; every download is recorded in the producer's access log. Never cached.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
codepath · 필수 | string | Itemoo code from the QR label (unit, batch, variant or product) 예시: A1B2C3D4 |
versionIdpath · 필수 | string | Document version id from the passport 예시: clx0doc0version0001 |
Authorizationheader | string | Bearer ipa_… — recipient token (required) |
응답 200 · application/pdf, application/octet-stream
Document file
오류
| 401 |
|
| 404 |
|
| 410 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/q/A1B2C3D4/passport/documents/clx0doc0version0001'JavaScript
const res = await fetch('https://itemoo.eu/q/A1B2C3D4/passport/documents/clx0doc0version0001', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/q/A1B2C3D4/passport/documents/clx0doc0version0001');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
GS1 Digital Link
Resolve a GTIN
get/01/{gtin}
키 불필요
GS1 Digital Link resolver. With linkType=linkset or Accept: application/linkset+json it returns the linkset (RFC 9264) built from the published page: product page, instructions, certificates, passport and recall status. With linkType=gs1:<type> it redirects (307) to the first link of that type. Without either it shows the product page (HTML). One GTIN used by several brands returns a choice of their pages.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
gtinpath · 필수 | string | GTIN (8–14 digits) 예시: 05901234123457 |
linkTypequery | string | "linkset" = the whole linkset (also with Accept: application/linkset+json); "gs1:pip" etc. = 307 redirect to the first link of that type |
langquery | string | |
Accept-Languageheader | string | Preferred language of the texts (fact names, description) when lang is missing. |
Acceptheader | string | application/linkset+json returns the linkset without linkType. |
응답 200 · application/linkset+json
Linkset
linksetmap<string, string | object[]>[]필수One entry: "anchor" (the GS1 URI) and one key per link type (https://gs1.org/voc/pip, …/instructions, …/certificationInfo, …/sustainabilityInfo, …/recallStatus)필드
hrefstring필수titlestringtypestringhreflangstring[]
오류
| 404 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/01/05901234123457?linkType=linkset'JavaScript
const res = await fetch('https://itemoo.eu/01/05901234123457?linkType=linkset', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/01/05901234123457?linkType=linkset');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Resolve a GTIN with a batch
get/01/{gtin}/10/{lot}
키 불필요
GS1 Digital Link resolver. With linkType=linkset or Accept: application/linkset+json it returns the linkset (RFC 9264) built from the published page: product page, instructions, certificates, passport and recall status. With linkType=gs1:<type> it redirects (307) to the first link of that type. Without either it shows the product page (HTML). One GTIN used by several brands returns a choice of their pages.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
gtinpath · 필수 | string | GTIN (8–14 digits) 예시: 05901234123457 |
lotpath · 필수 | string | |
linkTypequery | string | "linkset" = the whole linkset (also with Accept: application/linkset+json); "gs1:pip" etc. = 307 redirect to the first link of that type |
langquery | string | |
Accept-Languageheader | string | Preferred language of the texts (fact names, description) when lang is missing. |
Acceptheader | string | application/linkset+json returns the linkset without linkType. |
응답 200 · application/linkset+json
Linkset
linksetmap<string, string | object[]>[]필수One entry: "anchor" (the GS1 URI) and one key per link type (https://gs1.org/voc/pip, …/instructions, …/certificationInfo, …/sustainabilityInfo, …/recallStatus)필드
hrefstring필수titlestringtypestringhreflangstring[]
오류
| 404 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/01/05901234123457/10/L2026-10?linkType=linkset'JavaScript
const res = await fetch('https://itemoo.eu/01/05901234123457/10/L2026-10?linkType=linkset', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/01/05901234123457/10/L2026-10?linkType=linkset');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Resolve a GTIN with a serial number
get/01/{gtin}/21/{serial}
키 불필요
GS1 Digital Link resolver. With linkType=linkset or Accept: application/linkset+json it returns the linkset (RFC 9264) built from the published page: product page, instructions, certificates, passport and recall status. With linkType=gs1:<type> it redirects (307) to the first link of that type. Without either it shows the product page (HTML). One GTIN used by several brands returns a choice of their pages.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
gtinpath · 필수 | string | GTIN (8–14 digits) 예시: 05901234123457 |
serialpath · 필수 | string | |
linkTypequery | string | "linkset" = the whole linkset (also with Accept: application/linkset+json); "gs1:pip" etc. = 307 redirect to the first link of that type |
langquery | string | |
Accept-Languageheader | string | Preferred language of the texts (fact names, description) when lang is missing. |
Acceptheader | string | application/linkset+json returns the linkset without linkType. |
응답 200 · application/linkset+json
Linkset
linksetmap<string, string | object[]>[]필수One entry: "anchor" (the GS1 URI) and one key per link type (https://gs1.org/voc/pip, …/instructions, …/certificationInfo, …/sustainabilityInfo, …/recallStatus)필드
hrefstring필수titlestringtypestringhreflangstring[]
오류
| 404 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/01/05901234123457/21/SN-0001?linkType=linkset'JavaScript
const res = await fetch('https://itemoo.eu/01/05901234123457/21/SN-0001?linkType=linkset', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/01/05901234123457/21/SN-0001?linkType=linkset');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Resolve a GTIN with a batch and a serial number
get/01/{gtin}/10/{lot}/21/{serial}
키 불필요
GS1 Digital Link resolver. With linkType=linkset or Accept: application/linkset+json it returns the linkset (RFC 9264) built from the published page: product page, instructions, certificates, passport and recall status. With linkType=gs1:<type> it redirects (307) to the first link of that type. Without either it shows the product page (HTML). One GTIN used by several brands returns a choice of their pages.
매개변수
| 필드 | 유형 | 설명 |
|---|---|---|
gtinpath · 필수 | string | GTIN (8–14 digits) 예시: 05901234123457 |
lotpath · 필수 | string | |
serialpath · 필수 | string | |
linkTypequery | string | "linkset" = the whole linkset (also with Accept: application/linkset+json); "gs1:pip" etc. = 307 redirect to the first link of that type |
langquery | string | |
Accept-Languageheader | string | Preferred language of the texts (fact names, description) when lang is missing. |
Acceptheader | string | application/linkset+json returns the linkset without linkType. |
응답 200 · application/linkset+json
Linkset
linksetmap<string, string | object[]>[]필수One entry: "anchor" (the GS1 URI) and one key per link type (https://gs1.org/voc/pip, …/instructions, …/certificationInfo, …/sustainabilityInfo, …/recallStatus)필드
hrefstring필수titlestringtypestringhreflangstring[]
오류
| 404 |
|
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/01/05901234123457/10/L2026-10/21/SN-0001?linkType=linkset'JavaScript
const res = await fetch('https://itemoo.eu/01/05901234123457/10/L2026-10/21/SN-0001?linkType=linkset', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/01/05901234123457/10/L2026-10/21/SN-0001?linkType=linkset');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.
Resolver description
get/.well-known/gs1resolver
키 불필요
GS1 resolver description: supported keys and link types, for scanners and passport registries.
응답 200 · application/json
object
오류
| 429 |
|
예시
cURL
curl -X GET 'https://itemoo.eu/.well-known/gs1resolver'JavaScript
const res = await fetch('https://itemoo.eu/.well-known/gs1resolver', {
method: 'GET',
});
const data = await res.json();PHP
$ch = curl_init('https://itemoo.eu/.well-known/gs1resolver');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);사용해 보기
요청을 보낼 수 없습니다.