Resources
Categories
Every Categories endpoint, with the scope it enforces, the body it takes, a response you can read, and the refusals it can return.
List product categories.
get
/categories- Scope
- No credential required
Idempotency-Key- Not accepted
- Returns
- 200
Errors
Every refusal this endpoint can return, with the status it arrives with.
Request
curl "https://passportcraft.com/api/v1/categories"Response · 200
{
"object": "list",
"data": [
{
"object": "category",
"id": "general",
"name": "categories/general",
"display_name": "General Product",
"schema_version": "1.0.0-draft",
"field_count": 28
},
{
"object": "category",
"id": "textile",
"name": "categories/textile",
"display_name": "Textile / Apparel",
"schema_version": "1.0.0-draft",
"field_count": 51
},
{
"object": "category",
"id": "battery",
"name": "categories/battery",
"display_name": "Battery",
"schema_version": "1.0.0-draft",
"field_count": 93
}
],
"has_more": false,
"next_cursor": null
}GET /categories
Fetch a category field schema.
get
/categories/{category}/schema- Scope
- No credential required
Idempotency-Key- Not accepted
- Returns
- 200
Path parameters
categorystringRequiredA category id, as returned by the category list.
Errors
Every refusal this endpoint can return, with the status it arrives with.
Request
curl "https://passportcraft.com/api/v1/categories/battery/schema"Response · 200
{
"object": "category_schema",
"id": "battery",
"name": "categories/battery/schema",
"category": "battery",
"display_name": "Battery",
"schema_version": "1.0.0-draft",
"field_groups": [
{
"object": "field_group",
"id": "identification",
"label": "Product Identification",
"description": "Core identifiers and descriptors for the product"
},
{
"object": "field_group",
"id": "manufacturer",
"label": "Manufacturer / Economic Operator",
"description": "Details of the manufacturer or EU responsible person"
},
{
"object": "field_group",
"id": "sustainability",
"label": "Environmental Data",
"description": "Carbon footprint and material recycling data"
},
{
"object": "field_group",
"id": "compliance",
"label": "Regulatory Compliance",
"description": "Substances of concern and conformity declarations"
},
{
"object": "field_group",
"id": "end_of_life",
"label": "End of Life",
"description": "Recycling and disposal guidance for the product"
},
{
"object": "field_group",
"id": "circular_economy",
"label": "Circular Economy",
"description": "Recyclability, disassembly, and end-of-life information"
},
{
"object": "field_group",
"id": "identifiers_product",
"label": "Battery Identification & Product Data",
"description": "These you'll know from your own product and paperwork — your model name, where it's made, your warranty, and the IDs your manufacturer gives you."
},
{
"object": "field_group",
"id": "labels_conformity",
"label": "Labels, Symbols & Conformity",
"description": "These are the warning symbols, label text, and conformity documents (like your EU Declaration of Conformity) you put together for the EU market."
},
{
"object": "field_group",
"id": "carbon_footprint",
"label": "Carbon Footprint",
"description": "You don't measure these yourself — they come from your cell supplier or an LCA (life-cycle assessment) vendor, and aren't required until carbon-footprint rules phase in around 2028."
},
{
"object": "field_group",
"id": "due_diligence",
"label": "Supply-Chain Due Diligence",
"description": "This is your responsible-sourcing reporting — it comes from your supply-chain team or a third-party scheme, isn't required until 18 August 2027, and companies under €40M turnover are exempt."
},
{
"object": "field_group",
"id": "materials",
"label": "Materials & Composition",
"description": "These describe what's inside the battery — your cell supplier's datasheet and safety documents are where the chemistry, materials, and hazardous-substance details come from."
},
{
"object": "field_group",
"id": "circularity",
"label": "Circularity & Resource Efficiency",
"description": "These cover repair, recycling, and end-of-life. The dismantling and spare-parts links are yours to provide, and so are the waste-battery safety instructions. The recycled-content shares come from your cell supplier and aren't required until around 2028 — the renewable content share is separate, so add that as soon as your supplier sends it."
},
{
"object": "field_group",
"id": "performance",
"label": "Performance & Durability",
"description": "These are the deep technical specs — copy them straight off your cell supplier's datasheet; they're the supplier's numbers to provide, not measurements you take."
}
],
"fields": [
{
"object": "field",
"name": "battery_model_identifier",
"type": "text",
"required": true,
"access_tier": "public",
"group": "identifiers_product",
"label": "Battery model identifier",
"description": "Enter the model name or number you use to identify this battery.",
"placeholder": "BP-48100-LFP",
"regulatory_basis": [
{
"regulation": "Batteries Reg (EU) 2023/1542",
"reference": "Annex XIII(1)(a) -> Annex VI Part A(2)",
"status": "applies_later",
"applies_when": "LMT, industrial >2 kWh and EV batteries placed on the market or put into service from 18 Feb 2027 (Art. 77(1))",
"note": "Annex VI Part A(2) requires the battery category and information identifying the battery; Art. 38(6) requires model identification and the batch or serial number, or product number, on the battery itself."
}
]
},
{
"object": "field",
"name": "product_name",
"type": "text",
"required": true,
"access_tier": "public",
"group": "identification",
"label": "Product Name",
"description": "Commercial name of the product",
"hint": "Shown as the headline on the public passport and in search.",
"requirement": "required",
"functional_basis": "Record identity — the passport cannot identify its product without a name.",
"regulatory_basis": [
{
"regulation": "ESPR (Reg (EU) 2024/1781)",
"reference": "Annex III(a)",
"status": "anticipated",
"note": "Product identifier/name — DA-gated for textiles."
}
]
},
{
"object": "field",
"name": "recyclable_content_percentage",
"type": "number",
"required": false,
"access_tier": "public",
"group": "sustainability",
"label": "Recyclable Content (%)",
"description": "Percentage of the product that is recyclable at end of life",
"min": 0,
"max": 100
},
{
"object": "field",
"name": "conformity_declaration_url",
"type": "url",
"required": false,
"access_tier": "authority",
"group": "compliance",
"label": "Declaration of Conformity URL",
"description": "Link to the EU Declaration of Conformity document, or upload the PDF.",
"document_types": [
"conformity_declaration"
],
"document_id_key": "conformity_declaration_url__document_id"
},
{
"object": "field",
"name": "substances_of_concern",
"type": "array",
"required": true,
"access_tier": "public",
"group": "compliance",
"label": "Substances of Concern",
"description": "List of substances of concern present above threshold concentrations, or \"none declared\"",
"item_type": "string",
"requirement": "required",
"regulatory_basis": [
{
"regulation": "REACH (Reg (EC) 1907/2006)",
"reference": "Art. 33",
"status": "in_force",
"note": "Communicate SVHCs > 0.1% w/w per article."
},
{
"regulation": "SCIP / WFD (Dir 2008/98/EC)",
"reference": "Art. 9(1)(i)",
"status": "in_force",
"note": "SCIP notification; repeal proposed (Environmental Omnibus COM(2025) 986) — re-check quarterly.",
"status_changing": true
},
{
"regulation": "ESPR (Reg (EU) 2024/1781)",
"reference": "Art. 7(5)",
"status": "anticipated"
}
]
},
{
"object": "field",
"name": "initial_round_trip_energy_efficiency",
"type": "number",
"required": true,
"required_when": {
"field": "battery_category",
"one_of": [
"ev",
"lmt"
]
},
"access_tier": "public",
"group": "performance",
"label": "Initial round trip energy efficiency",
"description": "Copy the round-trip energy efficiency at the start of life from your cell supplier's datasheet.",
"placeholder": "96",
"hint": "Listed as round-trip efficiency or RTE, as a percentage.",
"unit": "%",
"min": 0,
"max": 100,
"regulatory_basis": [
{
"regulation": "Batteries Reg (EU) 2023/1542",
"reference": "Annex XIII(1)(n)",
"status": "applies_later",
"applies_when": "LMT, industrial >2 kWh and EV batteries placed on the market or put into service from 18 Feb 2027 (Art. 77(1))",
"note": "Annex XIII(1)(n): initial round trip energy efficiency and at 50 % of cycle-life. Defined at Annex IV, definition (6); parameterised at Annex IV Part A(4)."
}
]
}
]
}GET /categories/battery/schema