{
  "name": "Digital Product Passport API",
  "version": "v1",
  "basePath": "/dpp",
  "generatedAt": "2026-09-15T04:32:12.986Z",
  "static": {
    "base": "/dpp/api/v1",
    "note": "Public, not rate limited.",
    "endpoints": [
      {
        "method": "GET",
        "path": "/dpp/api/v1/index.json",
        "description": "This catalogue."
      },
      {
        "method": "GET",
        "path": "/dpp/api/v1/meta.json",
        "description": "Regulation metadata, key dates, registry environment, dataset versions, sources."
      },
      {
        "method": "GET",
        "path": "/dpp/api/v1/categories.json",
        "description": "Supported product categories (v1: three battery types)."
      },
      {
        "method": "GET",
        "path": "/dpp/api/v1/data-models/{category}.json",
        "description": "Versioned attribute schema for a category with accessTier per attribute."
      },
      {
        "method": "GET",
        "path": "/dpp/api/v1/access-tiers.json",
        "description": "Access tier definitions and group→tier map."
      },
      {
        "method": "GET",
        "path": "/dpp/api/v1/carriers.json",
        "description": "Supported carrier types and identifier scheme standards."
      },
      {
        "method": "GET",
        "path": "/dpp/api/v1/schemas/passport.schema.json",
        "description": "Passport JSON Schema."
      },
      {
        "method": "GET",
        "path": "/dpp/api/v1/schemas/create-request.schema.json",
        "description": "Create request JSON Schema."
      }
    ]
  },
  "compute": {
    "note": "Public/free. Create and public resolve are anonymous. Register, manage, and authorised-tier resolve require a scoped API key (Authorization: Bearer <key>). Rate limited per client.",
    "endpoints": [
      {
        "method": "POST",
        "path": "/dpp/v1/passports",
        "description": "Create a passport → uid + dataCarrier + resolveUrl."
      },
      {
        "method": "GET",
        "path": "/dpp/v1/passports",
        "description": "List your passports (owner key required)."
      },
      {
        "method": "GET",
        "path": "/dpp/v1/passports/{id}",
        "description": "Fetch your passport — full, all tiers (owner key required)."
      },
      {
        "method": "PATCH",
        "path": "/dpp/v1/passports/{id}",
        "description": "Update draft / versioned amendment (owner key required)."
      },
      {
        "method": "POST",
        "path": "/dpp/v1/passports/{id}/register",
        "description": "Register with EU DPP Registry (owner key required)."
      },
      {
        "method": "GET",
        "path": "/dpp/v1/passports/{id}/carrier",
        "description": "Fetch data carrier (QR/DataMatrix/NFC)."
      },
      {
        "method": "GET",
        "path": "/dpp/v1/dpp/{uid}",
        "description": "Resolve passport (JSON, tier-filtered by credential)."
      },
      {
        "method": "GET",
        "path": "/dpp/dpp/{uid}",
        "description": "Resolve passport (HTML view, tier-filtered)."
      },
      {
        "method": "GET",
        "path": "/dpp/v1/usage",
        "description": "API key usage and quota."
      }
    ]
  }
}
