Developers · Getting started

Battery Passport API

A REST API for the EU Battery Passport: create battery models, issue one passport per physical battery, publish, and keep dynamic data current from your ERP, MES or BMS.

Version
v1.0.0
Base URL
https://dppapi-production.up.railway.app/v1
Format
JSON · OpenAPI 3.1
FeedbackLast updated

Bu makale İngilizce olarak mevcuttur.

On this pageYour first call

60-second start

Make your first call

Three steps, nothing to install. A test key reads your real data and dry-runs every write, so you can explore without changing anything.

  1. 1

    Create a test key

    In the app, open Organisation → API keys and create a dpp_test_… key with the read scope.

  2. 2

    Put it in your environment

    Every sample in these docs reads DPP_API_KEY, so you never paste a key into code.

  3. 3

    Ask who you are

    GET /me answers with the key’s mode, your organisation, plan, usage and rate limit.

API access is included on every plan.

1 · Your key, in an environment variable
# macOS / Linux. Keep the key out of source code and shell history.export DPP_API_KEY="dpp_test_…"   # or dpp_live_… once you are ready
2 · GET /v1/me
curl "https://dppapi-production.up.railway.app/v1/me" \-H "Authorization: Bearer $DPP_API_KEY"
200 OK · who you are
{"apiKey": {"name": "SAP production","prefix": "dpp_test_3f9a","scopes": ["read", "write"],"mode": "test"},"organisation": {"id": "cm1q7v0aa0000l70f1a2b3c4d",

Start here

How it fits together

Your systems talk to the API; the API keeps one passport per battery and serves its public tier behind the QR code; webhooks tell your systems when something changed.

Your systems

  • ERP · product master data
  • MES · end of line
  • BMS · fleet telemetry

Collecta DPP API · /v1

modelsbatteriespassportsevents

One passport per battery, the publish gate and access tiers, enforced on the server.

Public resolver

/p/{uniqueIdentifier}

Behind the QR code on the battery. Public tier only; JSON-LD on request.

Webhooks back to your systems: passport.published, passport.event_recorded, supplier.submitted and more — signed, retried, logged.
Your ERP, MES and BMS call the API with a key. The API stores models, batteries, passports and events, and publishes passports to the public resolver behind each QR code. Webhooks notify your systems of changes.

What it is for

Regulation (EU) 2023/1542 requires a passport for every individual LMT battery, industrial battery above 2 kWh and EV battery placed on the EU market from 18 February 2027. The API lets the systems that already describe those batteries create, publish and maintain the passports themselves — no re-typing, no spreadsheet hand-offs, and the same rules as the app, enforced on the server.

ERP

Mirror battery models from product master data, and issue a passport for every serial number your ERP records — the passport follows the data you already maintain.

MES

Register batteries as they leave the line, with place and date of manufacture and end-of-line measurements, then publish the run in one request.

BMS & fleet

Post state of health, cycles, throughput, temperature exposure and negative events from the field, so each passport reflects the battery it describes.

At a glance

Base URL
https://dppapi-production.up.railway.app/v1
Auth
Bearer API key · read / write scopes
Keys
dpp_live_… stores · dpp_test_… dry-runs
Rate limit
600/min live · 60/min test
Bulk
Up to 1,000 rows per request
Lists
Cursor pages of up to 200
Retries
Idempotency-Key, stored 24 h
Events
9 signed webhook types
Spec
OpenAPI 3.1, public

The happy path

Five calls take a battery design from nothing to live passports that stay current:

  1. 1

    Create a model

    POST/v1/models

    Category, capacity, chemistry and the model-level data points in fields.

  2. 2

    Close the gaps

    GET/v1/models/{id}/completeness

    The missing-field analysis lists what the category still requires; publishing waits until it is complete.

  3. 3

    Create the batteries

    POST/v1/items/batch

    One passport per physical battery, each with its own unique identifier.

  4. 4

    Publish

    POST/v1/passports/publish

    The passports go live on the public resolver behind the QR code.

  5. 5

    Keep it current

    POST/v1/passports/{id}/events

    Append state of health and other dynamic data over the battery’s life.

Endpoints

Paths are relative to https://dppapi-production.up.railway.app/v1. GET needs the read scope; POST, PATCH and PUT need write. Every endpoint has its own section with parameters, examples in seven languages and its errors.

Account and catalogue

Models

Documents

Batteries

Passports

Dynamic data (events)

Fleet operations

Webhook endpoints

Facilities

Supplier requests

Audit trail

Export

Public resolver

Guides

Raw specification: https://dppapi-production.up.railway.app/v1/openapi.json · Example ids in these docs, such as cm1q8x2k40003l70f9a8s7d6e, stand for the ids your own calls return.

Çerez tercihleri

Hangi çerezlerin kullanılacağını siz seçersiniz. Tercihinizi istediğiniz zaman alt bilgideki “Çerez ayarları”ndan değiştirebilirsiniz. Gizlilik politikası

Gerekli

Her zaman açık

Sitenin çalışması için gereklidir: açık/koyu tema seçiminiz ve bu çerez tercihiniz tarayıcınızda saklanır. Sizi izlemek için kullanılmazlar.

Analitik

Google Analytics 4, sayfaların nasıl kullanıldığını istatistiklerle ölçer ve siteyi iyileştirmemize yardımcı olur. Kabul ederseniz çerez bırakır ve ziyaretinizi tam olarak ölçer. Reddederseniz çerez bırakmaz, ancak Google yine de görüntülenen sayfa, tarayıcı türü ve IP adresi gibi teknik veriler alabilir.

_ga, _ga_* · en çok 2 yıl · Google