Ein Barcode ist kein Produkt. prodid schon.
Eine dauerhafte, offene Kennung für jedes physische Produkt. Jeder Barcode und jede Teilenummer löst darauf auf, und jede Angabe nennt die Quelle, die sie gemacht hat.
Die Spezifikation erscheint nur auf Englisch, und der englische Text ist der maßgebliche.
Item · Acme
Trail Jacket
navy · M · verkauft in TR, DE
- material100% recycled polyester✓ acme.example
- weight480 g✓ acme.example
- nameAcme Trail Jacket, navy, Mlapsed · shop.example
Das Problem
Vier Codes, eine Jacke, und nichts verbindet sie.
Ein Produkt bekommt für jeden Markt, jede Packungsgröße und jede neue Verpackung einen neuen Barcode, und seine Daten liegen jeweils in einem anderen System. Widersprechen sich zwei davon, wird einer stillschweigend überschrieben.
prodid gibt dem Produkt selbst eine Kennung, die sich nicht ändert, wenn sich der Barcode ändert.
09506000134352
Verkaufseinheit für DE und TR
eine weitere GTIN
dieselbe Jacke im Doppelpack
eine weitere GTIN
die Verpackung vom nächsten Jahr
TJ-2041-NVY-M
Teilenummer des Herstellers
Eine Variante
9p2d4kv7mq3nbhxf
Nie wiederverwendet, nie gelöscht. Jeder Code, der je hierher gezeigt hat, funktioniert weiter.
Das Modell
Familie, Variante, Item. Codes zeigen darauf; sie sind es nicht.
Jede Ebene hat ihre eigene opid: 16 Zeichen, die nichts kodieren, sodass nichts am Produkt sie falsch machen kann.
family · 3n7k2q9vdfhb4mta
Acme Trail Jacket
Das Produkt, wie Menschen darüber sprechen.
variant · 9p2d4kv7mq3nbhxf
navy · Größe M
Eine Kombination aus Farbe, Größe und Ähnlichem.
item · kq7m3v9dn2hb4t5x
Verkaufseinheit für DE und TR
Das Ding, das einen Barcode trägt.
- gtin09506000134352
- mpnTJ-2041-NVY-M
- skuTJ-2041-NVY-M
Eine neue Verpackung fügt ein neues Item mit neuem Barcode hinzu, unter derselben Variante und derselben Familie. Nichts, was auf das alte gezeigt hat, geht kaputt.
So funktioniert es
Auf der eigenen Domain veröffentlichen. prodid indexiert. Jeder löst auf.
01 · Veröffentlichen
Drei Dinge auf Ihrer Domain
- /.well-known/prodid.json
- /prodid/items.ndjson
- _prodid TXT "v=prodid0; host=…"
Ein Discovery-Dokument, ein Feed mit einem Produkt pro Zeile und ein DNS-Eintrag, der beweist, dass die Domain Ihnen gehört.
So veröffentlichen Sie →02 · Indexieren
Geprüft, zugeordnet, zugeschrieben
- jede Zeile gegen das Schema validiert
- einer bestehenden opid zugeordnet oder einer neuen
- jedes Feld als Claim Ihrer Domain gespeichert
Händler, Register und offene Datensätze sind auf dieselbe Weise Quellen: neben dem Hersteller, nie über ihm.
So funktionieren Claims →03 · Auflösen
Eine URL, aufgedruckt auf dem Produkt
prodid.org/01/09506000134352
Browser → eine Seite
API → der JSON-Datensatz
Der Pfad folgt der GS1-Digital-Link-Syntax und kann deshalb der QR-Code auf dem Etikett selbst sein.
So funktioniert das Auflösen →
Claims
Jede Angabe nennt ihre Quelle. Widersprüche bleiben sichtbar.
Nichts wird zu einer „Wahrheit“ zusammengeführt. Hört eine Quelle auf zu veröffentlichen, bleiben ihre Claims erhalten und werden als lapsed markiert, nicht gelöscht.
| Eigenschaft | Wert | Quelle | Vertrauen | Gesehen |
|---|---|---|---|---|
| name | Trail Jacket | acme.example | verified | 2026-09-14 |
| brand | Acme | acme.example | verified | 2026-09-14 |
| material | 100% recycled polyester | acme.example | verified | 2026-09-14 |
| weight | 480 g | acme.example | verified | 2026-09-14 |
| media | image · CC-BY-4.0 | acme.example | verified | 2026-09-14 |
| markets | TR, DE | acme.example | verified | 2026-09-14 |
| name | Acme Trail Jacket, navy, M | shop.example | unverified · lapsed | 2026-08-02 |
- authoritative
- Kontrolliert die Domain und ist als Markeninhaber bestätigt.
- verified
- Hat die Kontrolle über eine Domain per DNS oder über die eigene Website nachgewiesen.
- unverified
- Ein gehosteter Name ohne Domain, ein Datensatz oder ein Beitrag.
GET /01/09506000134352 HTTP/1.1
Host: prodid.org
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Location: /id/kq7m3v9dn2hb4t5x{
"$type": "org.prodid.entity",
"version": 1,
"opid": "kq7m3v9dn2hb4t5x",
"kind": "item",
"parents": {
"family": "3n7k2q9vdfhb4mta",
"variant": "9p2d4kv7mq3nbhxf"
},
"identifiers": [
{
"scheme": "gtin",
"value": "09506000134352"
},
{
"scheme": "mpn",
"value": "TJ-2041-NVY-M",
"scope": "acme"
},
{
"scheme": "sku",
"value": "TJ-2041-NVY-M",
"scope": "acme.example"
}
],
"claims": [
{
"property": "name",
"value": "Trail Jacket",
"lang": "en",
"source": {
"name": "acme.example",
"trust": "verified",
"lapsed": false
},
"seen_at": "2026-09-14T09:12:03Z"
},
{
"property": "brand",
"value": "Acme",
"source": {
"name": "acme.example",
"trust": "verified",
"lapsed": false
},
"seen_at": "2026-09-14T09:12:03Z"
},
{
"property": "properties.material",
"value": "100% recycled polyester",
"lang": "en",
"source": {
"name": "acme.example",
"trust": "verified",
"lapsed": false
},
"seen_at": "2026-09-14T09:12:03Z"
},
{
"property": "properties.weight",
"value": {
"value": 480,
"unit": "g"
},
"source": {
"name": "acme.example",
"trust": "verified",
"lapsed": false
},
"seen_at": "2026-09-14T09:12:03Z"
},
{
"property": "markets",
"value": "TR",
"source": {
"name": "acme.example",
"trust": "verified",
"lapsed": false
},
"seen_at": "2026-09-14T09:12:03Z"
},
{
"property": "markets",
"value": "DE",
"source": {
"name": "acme.example",
"trust": "verified",
"lapsed": false
},
"seen_at": "2026-09-14T09:12:03Z"
},
{
"property": "name",
"value": "Acme Trail Jacket, navy, M",
"lang": "en",
"source": {
"name": "shop.example",
"trust": "unverified",
"lapsed": true
},
"seen_at": "2026-08-02T17:41:55Z"
},
{
"property": "media",
"value": {
"sha256": "e3943ea26ce08ae81809e62936dc4f934fa04da6cd57bd9ab2a90b79da751c09",
"url": "https://acme.example/img/tj2041-navy.webp",
"media_url": "https://media.prodid.org/sha256/e3943ea26ce08ae81809e62936dc4f934fa04da6cd57bd9ab2a90b79da751c09",
"license": "CC-BY-4.0",
"kind": "image"
},
"source": {
"name": "acme.example",
"trust": "verified",
"lapsed": false
},
"seen_at": "2026-09-14T09:12:03Z"
}
]
}Für wen
Für die, die die Daten machen, und für die, die sie brauchen.
Hersteller
Machen Sie Ihre Produktdaten einmal, auf Ihrer eigenen Domain. Kein Händlerangebot und kein Marktplatz besitzt die Beschreibung dessen, was Sie herstellen.
Auf Ihrer Domain veröffentlichen →Anbieter von E-Commerce, ERP und PIM
Ein Discovery-Dokument und ein Feed pro Händlerdomain, erzeugt aus Daten, die Sie bereits haben.
Einen Weg wählen →Entwickler
Lösen Sie jeden Code auf eine Kennung auf, die ein Umpacken übersteht. Jede Angabe sagt, wer sie gemacht hat, wann, und ob diese Quelle noch dahintersteht.
Die Daten holen →Zum EU-Digitalen Produktpass. Die ESPR verlangt einen Pass, der über einen Datenträger auf dem Produkt erreichbar ist, und GS1 Digital Link ist eine der Trägersyntaxen, die dafür standardisiert werden. prodid ist kein Passdienst, und hier zu veröffentlichen erfüllt keine Vorschrift; es ist dieselbe Grundlage: ein maschinenlesbarer Datensatz pro Produkt, unter einer stabilen Adresse, die Sie kontrollieren.
Stand
Wo das tatsächlich steht.
Spec v1. Der Index und der gehostete Publisher laufen auf prodid.org. Jeder kann veröffentlichen, auf der eigenen Domain oder gehostet.
- Stabil
Spezifikation v1. Sie ändert sich nur durch Ergänzungen; alles andere wäre v2. Ein v0-Discovery-Dokument wird bis 2027-01-26 00:00 UTC akzeptiert. Lesen Sie sie und sagen Sie, wo sie falsch ist.
- Canary und ein Datensatz
Noch ist kein Katalog eines Publishers indexiert. Der Index enthält zwei Quellen: den eigenen Canary des Projekts, canary.prodid.org, der Veröffentlichen, Crawlen und Auflösen von Anfang bis Ende belegt, und dataset:wikidata, einen begrenzten Testimport von 5 Wikidata-Einträgen, unverified und unter CC0-1.0.
- Absichtlich
Der Index ist ersetzbar. Die Spezifikation, die Schemas, die opids und die Code-Zuordnungen sind CC0. Jeder Claim behält die Lizenz seiner Quelle. Die Angaben liegen auf den Domains, die sie veröffentlichen, sodass jeder sie erneut crawlen kann und gedruckte Codes ihre Bedeutung behalten.
Geben Sie Ihren Produkten eine Identität, die den Barcode überdauert.
Zwei Dateien und ein DNS-Eintrag auf Ihrer eigenen Domain, oder eine gehostete Seite ganz ohne Domain.