リファレンス · 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);試してみる
リクエストを送信できませんでした。