โš™๏ธ API Access

API Endpoints Reference

Updated 2026-04

Overview

All endpoints are under https://dppcloud.co.uk/api/v1. Authentication: Authorization: Bearer dpp_live_... on every request.

All responses use a consistent envelope:

Response envelope

{ "data": { ... } } # single resource
{ "data": [...], "pagination": { ... } } # list
{ "error": "message" } # error

Organisation

GET /api/v1/org

Returns your organisation summary including quota usage.

Passports

GET /api/v1/passports

Returns a paginated list of passports. Query parameters: page, per_page (max 100), status (draft/complete/active/revoked), category (BATTERY_EV/BATTERY_INDUSTRIAL).

GET /api/v1/passports/:id

Returns a full passport including Annex XIII data, supply chain actors, and document metadata.

POST /api/v1/passports

Creates a new passport. Required fields: passport_number, product_name, category_code (BATTERY_EV or BATTERY_INDUSTRIAL). Optional: passport_level (model/batch/item), data (Annex XIII fields).

PATCH /api/v1/passports/:id

Updates data (Annex XIII fields), product_name, or passport_level. The data object is merged โ€” only send the fields you want to change.

POST /api/v1/passports/:id/activate

Activates a passport. Returns the updated passport with status: "active" and public_url.

GET /api/v1/passports/:id/registry-status

Returns EU registry submission state including status, submission ID, and any error details.

Error codes

CodeMeaning
401Invalid, expired, or missing API key
403Access not permitted โ€” demo account, or insufficient role permissions
404Resource not found or belongs to another organisation
409Conflict โ€” passport number already exists
422Validation error โ€” required fields missing
429Passport quota reached
500Internal server error

Start building your Digital Product Passports

EU Battery Regulation compliance โ€” 18 February 2027 deadline.

Request demo account โ†’