Dynamic data — Annex XIII Point 4 — is append-only: each reading is an event with a type and a payload keyed by API field names. The passport keeps the history; nothing is overwritten. The BMS telemetry guide shows how to stream it.
Personalise the samples. Paste a test key and every snippet uses it — and your own model and passport ids.
/v1/passports/{id}/eventsRecord dynamic data
Appends one event. Put several readings of the same type in one payload.
Set bmsHistoryInvalidatedByReset when a BMS software reset has invalidated earlier state-of-health history (Art. 14).
Parameters1
idstringpathrequiredThe passport id.
Request body3
eventTypestringrequiredSOH_READING,CYCLE_COUNT,LIFETIME_METRIC,OPERATING_CONDITION,NEGATIVE_EVENT,PUT_INTO_SERVICE,STATUS_CHANGE,REPAIR,PERFORMANCE_VALUEorBMS_SOFTWARE_RESET.payloadobjectrequiredReadings keyed by API field name, e.g.
{ "cycleCount": 812 }.bmsHistoryInvalidatedByResetbooleanoptionalEarlier history is no longer valid. Default
false.
Headers2
Idempotency-KeystringheaderoptionalOptional. A unique string per logical operation (a UUID is ideal). The first response is stored for 24 hours and replayed for retries; see Idempotency.
X-DPP-Dry-Run"true"headeroptionalOptional, live keys. Validate the write in full and store nothing. Test keys always dry-run; see Test keys.
Responses
- 201Created — The stored event.
Errors6
- 400
Validation faileddetailsnames each invalid field. - 401
unauthorizedThe key is missing, unknown or revoked. - 403
insufficient_scopeThe key has nowritescope. - 404
Not foundNo passport with this id in your organisation. - 409
organisation_frozenThe organisation is frozen and read-only. - 422
idempotency_key_reusedTheIdempotency-Keywas already used with a different body.
Webhooks fired
Response fields · 201
object- idstring
- eventTypestring
One of
PUT_INTO_SERVICEREPAIRSOH_READINGLIFETIME_METRICCYCLE_COUNTSTATUS_CHANGENEGATIVE_EVENTOPERATING_CONDITIONPERFORMANCE_VALUEBMS_SOFTWARE_RESET - payloadobject
Keyed by field name — see /field-catalog, fields of kind
dynamic. - recordedAtstring · date-time
- bmsHistoryInvalidatedByResetboolean
curl -X POST "https://dppapi-production.up.railway.app/v1/passports/cm1q8y0bq0006l70fx9y8z7w6/events" \-H "Authorization: Bearer $DPP_API_KEY" \-H "Content-Type: application/json" \-H "Idempotency-Key: 7b3e0c52-1f7d-4b8a-9a52-2f0e6d1c9a44" \-d '{"eventType": "OPERATING_CONDITION","payload": {"stateOfCharge": 64,"operatingTemperature": 31.5,"timeExtremeHighTemp": 42,"timeChargingExtremeLowTemp": 0}}'{"id": "cm1qa1d7e0009l70f1k2j3h4g","passportId": "cm1q8y0bq0006l70fx9y8z7w6","eventType": "OPERATING_CONDITION","payload": {"stateOfCharge": 64,"operatingTemperature": 31.5,"timeExtremeHighTemp": 42,"timeChargingExtremeLowTemp": 0},"recordedAt": "2027-06-02T07:30:00.000Z","sourceOrgId": "cm1q7v0aa0000l70f1a2b3c4d","bmsHistoryInvalidatedByReset": false}/v1/passports/{id}/eventsList dynamic data
A passport’s events, a page at a time, filtered by time and type.
Parameters5
idstringpathrequiredThe passport id.
limitintegerqueryoptionalPage size, 1–200. Default 50.
cursorstringqueryoptionalThe
next_cursorof the previous page. Omit for the first page.sinceISO 8601 date-timequeryoptionalOnly events recorded at or after this instant.
event_typestringqueryoptionalOnly this event type, e.g.
SOH_READING.
Responses
- 200OK — A page of events.
Errors3
- 400
Validation faileddetailsnames each invalid field. - 401
unauthorizedThe key is missing, unknown or revoked. - 404
Not foundNo passport with this id in your organisation.
Response fields · 200
object- idstring
- eventTypestring
One of
PUT_INTO_SERVICEREPAIRSOH_READINGLIFETIME_METRICCYCLE_COUNTSTATUS_CHANGENEGATIVE_EVENTOPERATING_CONDITIONPERFORMANCE_VALUEBMS_SOFTWARE_RESET - payloadobject
Keyed by field name — see /field-catalog, fields of kind
dynamic. - recordedAtstring · date-time
- bmsHistoryInvalidatedByResetboolean
- has_morebooleanrequired
- next_cursorstring | nullrequired
Pass as
cursorto get the next page.
curl "https://dppapi-production.up.railway.app/v1/passports/cm1q8y0bq0006l70fx9y8z7w6/events?event_type=SOH_READING&since=2027-01-01T00%3A00%3A00Z" \-H "Authorization: Bearer $DPP_API_KEY"{"data": [{"id": "cm1qa1d7e0009l70f1k2j3h4g","eventType": "SOH_READING","payload": { "remainingCapacity": 14.6, "capacityFade": 2.7 },"recordedAt": "2027-06-02T07:30:00.000Z","bmsHistoryInvalidatedByReset": false}],"has_more": true,"next_cursor": "eyJpZCI6ImNtMXE4eTBicTAwMDZsNzBmeDl5OHo3dzYifQ"}