DPPAutomate is an agentic-first platform for EU Digital Product Passports. It exposes a clean REST API and an OpenAPI 3.1 spec so a human can use it - and an AI agent can drive it. Generate passports from product photos, review and approve them, and resolve them publicly for regulators, all over HTTP.
What is DPPAutomate?
Under ESPR, products placed on the EU market need a Digital Product Passport - a structured, machine-readable record carrying identification, economic operator, materials, chemical compliance, environmental impact, sustainability, care, end-of-life, and compliance data. DPPAutomate models that as a 12-section Passport object. The fastest way to create one is to point the AI at a product image: it drafts the whole passport, and you review or auto-publish it.
The two layers
The surface has two layers, built for two different audiences.
Layer 1 - public regulatory
GET /api/public/v1/passports/{dppUid}. No auth. Returns the published passport as redacted JSON-LD - the machine-readable twin of the QR page. Edge-cached, open CORS.
Layer 2 - management API
Base /api/v1, authenticated with a per-workspace master key (Bearer ep_live_sk_...). Full CRUD, AI generation, drafts, learnings, workspace mode, export.
Layer 1 takes no authentication - it is what crawlers, consumer apps, and notified bodies resolve from the QR code:
# No auth - the machine-readable twin of the /dpp/{dppUid} page.
curl https://dppautomate.com/api/public/v1/passports/DPP-1717-AB12CDThe agentic model
DPPAutomate is designed to be run by an AI. Create a master API key in the dashboard ( Settings > API Keys), then hand it to Claude Code, Codex, or any LLM agent - and it can run your entire DPP workspace: generate passports from photos, review and approve drafts, manage the learnings that steer future output, switch Review/Auto mode, and export.
# Create a master key in the dashboard: Settings > API Keys.
# Then export it for the rest of your shell session.
export DPP_API_KEY="ep_live_sk_..."A key carries permissions - read, write, delete (an admin key grants all). Generating a passport is a single call:
curl https://dppautomate.com/api/v1/passports/generate \
-X POST \
-H "Authorization: Bearer $DPP_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "image": "data:image/png;base64,<...>" }'Review vs Auto mode
Every workspace has an AI mode that decides what happens to AI-generated and imported passports:
Review mode
New AI/imported passports become DRAFTS in a review queue. A human (or the agent, once trusted) approves or rejects them before they go live. Approvals capture learnings.
Auto mode
New passports are ACTIVE immediately. Best once the model is dialled in for your catalogue and you trust the agent end to end.
Set the mode over the API with PUT /api/v1/workspace/mode and a body of { "mode": "review" | "auto" }.
Learnings
Learnings are natural-language instructions that steer future generations - for example, "always read the country of origin from the sewn-in label". They are captured automatically from the human corrections made when a draft is approved, and you can also add them manually via POST /api/v1/learnings. Active learnings are injected into the generation prompt, so the system gets more accurate for your catalogue over time.
Reference
When you're ready to go deeper, the reference covers every endpoint, permission, schema and error code. The OpenAPI spec and /llms.txt are the canonical, machine-readable sources of truth - point your agent at them.
API Reference
Both layers, authentication, permissions, the rate-limit table, and the error model.
OpenAPI 3.1 spec
The full machine-readable contract at /api/openapi.json. Fetch it once and an agent knows the whole API.
Direct links: /api/openapi.json and /llms.txt.