Dit is de vaste vorm waarin een digitaal productpaspoort wordt opgeschreven: één JSON-bestand per meubel. Je kunt die bestanden zelf maken en op je eigen server zetten; Furniture-ID leest ze en toont de paspoortpagina. Het formaat is vrij te gebruiken, ook buiten Furniture-ID om.
Beide werken zonder account en zonder dat wij iets bewaren.
Eén map met een index en per product een bestand. Je geeft in het portal alleen het webadres van de map op.
https://jouwdomein.nl/furniture-id/ ├── index.json lijst van al je producten ├── p/K4TV7.json op publieke code (de code op de sticker) └── sku/BUREAU-100.json hetzelfde bestand, op productcode
Eén volledig ingevuld paspoort: alle velden gevuld, drie talen, drie duurzaamheidswaarden met verschillende herkomst.
{
"schema_version": "1.1.0",
"product": {
"sku": "BUREAU-100",
"public_id": "K4TV7",
"name_nl": "Zit-sta bureau 160 cm",
"name_en": "Sit-stand desk 160 cm",
"name_de": "Sitz-Steh-Tisch 160 cm",
"tagline_nl": "Elektrisch verstelbaar, gemaakt om te repareren.",
"tagline_en": "Electrically adjustable, built to be repaired.",
"tagline_de": "Elektrisch verstellbar, reparierbar gebaut.",
"description_nl": "Elektrisch verstelbaar bureau met massief blad, losneembaar onderstel en verkrijgbare onderdelen.",
"description_en": "Electrically adjustable desk with a solid top, detachable frame and available spare parts.",
"description_de": "Elektrisch verstellbarer Tisch mit massiver Platte, abnehmbarem Gestell und verfügbaren Ersatzteilen.",
"warranty_years": 5,
"warranty_type": "volledige garantie op motor en onderstel",
"dimensions": {
"width": {
"value": 160,
"unit": "cm"
},
"depth": {
"value": 80,
"unit": "cm"
},
"height": {
"min": 65,
"max": 130,
"unit": "cm"
},
"weight": {
"value": 42,
"unit": "kg"
}
},
"specifications": {
"frame_material": "staal, gepoedercoat",
"top_material": "eiken, 25 mm",
"max_load": "80"
},
"images": [
"https://example.org/furniture/bureau-100.jpg"
],
"materials": [
{
"name": "Tafelblad",
"type": "eiken FSC",
"origin": "EU",
"percentage": 55,
"recyclable": true
},
{
"name": "Onderstel",
"type": "staal",
"origin": "EU",
"percentage": 40,
"recyclable": true
},
{
"name": "Motor",
"type": "elektronica",
"origin": "CN",
"percentage": 5,
"recyclable": false
}
]
},
"metrics": [
{
"field_key": "co2_footprint",
"value_numeric": 128.4,
"unit": "kg CO₂e",
"provenance": "third_party_verified",
"certificate_number": "EPD-NL-2026-0184",
"issuing_body": "Stichting MRPI",
"sort_order": 10
},
{
"field_key": "recycled_content_percentage",
"value_numeric": 62,
"unit": "%",
"provenance": "documented",
"source_url": "https://example.org/furniture/bureau-100-materiaalpaspoort.pdf",
"sort_order": 20
},
{
"field_key": "expected_lifespan",
"value_numeric": 15,
"unit": "jaar",
"provenance": "self_declared",
"sort_order": 30
}
],
"labels": [
{
"field_key": "co2_footprint",
"lang": "nl",
"display_name": "CO₂-voetafdruk",
"unit": "kg CO₂e"
},
{
"field_key": "co2_footprint",
"lang": "en",
"display_name": "Carbon footprint",
"unit": "kg CO₂e"
},
{
"field_key": "co2_footprint",
"lang": "de",
"display_name": "CO₂-Fußabdruck",
"unit": "kg CO₂e"
},
{
"field_key": "recycled_content_percentage",
"lang": "nl",
"display_name": "Gerecycled materiaal",
"unit": "%"
},
{
"field_key": "expected_lifespan",
"lang": "nl",
"display_name": "Verwachte levensduur",
"unit": "jaar"
},
{
"field_key": "frame_material",
"lang": "nl",
"display_name": "Onderstel"
},
{
"field_key": "top_material",
"lang": "nl",
"display_name": "Blad"
},
{
"field_key": "max_load",
"lang": "nl",
"display_name": "Maximale belasting",
"unit": "kg"
}
],
"fault_codes": [
{
"title_nl": "Het bureau gaat niet meer omhoog",
"title_en": "The desk no longer moves up",
"title_de": "Der Tisch fährt nicht mehr hoch",
"solution_nl": "Houd de omlaag-knop tien seconden ingedrukt om te resetten.",
"solution_en": "Hold the down button for ten seconds to reset.",
"solution_de": "Halten Sie die Ab-Taste zehn Sekunden gedrückt, um zurückzusetzen.",
"code": "E01",
"video_url": "https://www.youtube.com/watch?v=voorbeeld12",
"requires_service": false,
"is_common": true
},
{
"title_nl": "Het blad staat scheef",
"solution_nl": "Zet het bureau helemaal omlaag en reset het opnieuw.",
"requires_service": true,
"is_common": true
}
],
"downloads": [
{
"description": "Handleiding zit-sta bureau",
"file_url": "https://example.org/furniture/bureau-100-handleiding.pdf",
"file_type": "manual",
"language": "nl",
"display_order": 10
},
{
"description": "Milieuverklaring (EPD)",
"file_url": "https://example.org/furniture/bureau-100-epd.pdf",
"file_type": "certificate",
"language": "all",
"display_order": 20
}
],
"tenant": {
"name": "Voorbeeld Meubel",
"slug": "voorbeeld-meubel",
"primary_color": "#1B5E43"
}
}Draft 2020-12. Verplicht zijn de productcode en de Nederlandse naam; Engels en Duits zijn optioneel en vallen terug op Nederlands. Een duurzaamheidswaarde zonder herkomst wordt niet getoond.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://furniture-id.com/schema/passport-1.1.0.json",
"title": "Furniture-ID passport",
"type": "object",
"required": [
"schema_version",
"product"
],
"properties": {
"schema_version": {
"type": "string",
"enum": [
"1.0.0",
"1.1.0"
]
},
"product": {
"type": "object",
"required": [
"sku",
"name_nl"
],
"properties": {
"sku": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"public_id": {
"type": "string",
"pattern": "^[A-Z0-9]{4,12}$",
"description": "De code op de sticker. Leeg laten mag; dan geldt de sku."
},
"name_nl": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name_en": {
"type": "string",
"maxLength": 200
},
"name_de": {
"type": "string",
"maxLength": 200
},
"tagline_nl": {
"type": "string",
"maxLength": 300
},
"tagline_en": {
"type": "string",
"maxLength": 300
},
"tagline_de": {
"type": "string",
"maxLength": 300
},
"description_nl": {
"type": "string",
"maxLength": 4000
},
"description_en": {
"type": "string",
"maxLength": 4000
},
"description_de": {
"type": "string",
"maxLength": 4000
},
"warranty_years": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"warranty_type": {
"type": "string",
"maxLength": 120
},
"dimensions": {
"type": "object",
"description": "Per maat een waarde met eenheid, of min en max voor een bereik.",
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
},
"unit": {
"type": "string"
}
}
}
},
"specifications": {
"type": "object",
"description": "Sleutel is een veldsleutel uit labels; waarde is tekst.",
"additionalProperties": {
"type": "string"
}
},
"images": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"materials": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string"
},
"origin": {
"type": "string"
},
"percentage": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"recyclable": {
"type": "boolean"
}
}
}
}
}
},
"metrics": {
"type": "array",
"description": "Duurzaamheidswaarden. Zonder label blijft een waarde verborgen.",
"items": {
"type": "object",
"required": [
"field_key",
"provenance"
],
"properties": {
"field_key": {
"type": "string",
"minLength": 1
},
"value_numeric": {
"type": [
"number",
"null"
]
},
"value_text": {
"type": [
"string",
"null"
]
},
"unit": {
"type": [
"string",
"null"
]
},
"provenance": {
"type": "string",
"enum": [
"self_declared",
"documented",
"third_party_verified"
]
},
"certificate_number": {
"type": [
"string",
"null"
]
},
"issuing_body": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": [
"string",
"null"
]
},
"sort_order": {
"type": [
"number",
"null"
]
}
}
}
},
"labels": {
"type": "array",
"description": "Nette veldnamen per taal. Een veld zonder label wordt niet getoond.",
"items": {
"type": "object",
"required": [
"field_key",
"lang",
"display_name"
],
"properties": {
"field_key": {
"type": "string"
},
"lang": {
"type": "string",
"enum": [
"nl",
"en",
"de"
]
},
"display_name": {
"type": "string",
"minLength": 1
},
"unit": {
"type": [
"string",
"null"
]
},
"sort_order": {
"type": [
"number",
"null"
]
}
}
}
},
"fault_codes": {
"type": "array",
"description": "Klachten in gewone taal. De code is optioneel.",
"items": {
"type": "object",
"required": [
"title_nl"
],
"properties": {
"title_nl": {
"type": "string",
"minLength": 1
},
"title_en": {
"type": "string"
},
"title_de": {
"type": "string"
},
"solution_nl": {
"type": "string"
},
"solution_en": {
"type": "string"
},
"solution_de": {
"type": "string"
},
"code": {
"type": [
"string",
"null"
]
},
"video_url": {
"type": [
"string",
"null"
],
"description": "Optioneel, sinds 1.1.0: één link naar YouTube of Vimeo. Laden gebeurt pas als de bezoeker erop tikt."
},
"requires_service": {
"type": "boolean"
},
"is_common": {
"type": "boolean"
}
}
}
},
"downloads": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"file_url"
],
"properties": {
"description": {
"type": "string",
"minLength": 1,
"description": "De titel die je toont."
},
"file_url": {
"type": "string",
"format": "uri"
},
"file_type": {
"type": "string",
"enum": [
"manual",
"certificate",
"datasheet"
]
},
"language": {
"type": "string",
"enum": [
"nl",
"en",
"de",
"all"
]
},
"display_order": {
"type": "number"
}
}
}
},
"tenant": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"logo_url": {
"type": "string"
},
"primary_color": {
"type": "string"
}
}
}
}
}{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://furniture-id.com/schema/index-1.1.0.json",
"title": "Furniture-ID index",
"type": "object",
"required": [
"schema_version",
"products"
],
"properties": {
"schema_version": {
"type": "string",
"enum": [
"1.0.0",
"1.1.0"
]
},
"generated_at": {
"type": "string"
},
"products": {
"type": "array",
"items": {
"type": "object",
"required": [
"sku",
"file"
],
"properties": {
"sku": {
"type": "string"
},
"public_id": {
"type": "string"
},
"name_nl": {
"type": "string"
},
"file": {
"type": "string",
"description": "Pad ten opzichte van dit indexbestand."
}
}
}
}
}
}1.1.0 · 2026-08-10
1.0.0 · 2026-08-10
Creative Commons Zero v1.0 (CC0)
Het formaat is vrij te gebruiken, aan te passen en te verspreiden, ook commercieel, zonder naamsvermelding en zonder toestemming.