REST API Dokumentation
Automatisieren Sie Ihren Batteriepass-Workflow. Produkte per REST API erstellen, aktualisieren, veröffentlichen und exportieren. Die Pass-Abruf-Endpunkte sind an den Methoden und REST-Vorgaben der EN 18222:2026 ausgerichtet; die vollständige Konformitätsprüfung einschließlich abhängiger Normen ist noch offen.
Authentifizierung
Scale-Plan erforderlich. Den Schlüssel erstellen Sie in Ihren Organisationseinstellungen.
Authorization: Bearer dpp_live_...Basis-URL
120 Anfragen/Minute pro Organisation.
https://app.dpphero.com/api/v1Kurzbeispiel
curl -X POST https://app.dpphero.com/api/v1/products \
-H "Authorization: Bearer dpp_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "LFP Module 48V",
"serial_number": "BAT-2025-001",
"battery_category": "industrial",
"manufacturing_date": "2025-06-15",
"battery_mass": 45.5
}'Verfügbare Endpunkte
Alle Endpunkte erfordern einen Bearer Token (API-Schlüssel). Verfügbar im Scale-Tarif.
Produkte
/products/products/products/{id}/products/{id}/products/{id}/products/{id}/image/products/{id}/image/products/{id}/filesBatteriezustand
Dynamische BMS-Daten wie Ladezustand, Zyklenanzahl und Kapazitätsverlust per API aktualisieren.
/products/{id}/condition/products/{id}/conditionMassen-Import
/products/bulkExport
/products/{id}/export/json/products/{id}/export/gefeg-json/products/{id}/export/pdf/products/{id}/preprint-qr/products/{id}/export/qrOrganisation
/organization/facilities/audit-logListen, Filter und Seiten
GET /products liefert seitenweise. page ab 1, per_page 1 bis 100 (Vorgabe 25). Dazu filtern Sie nach status und battery_category, suchen mit search und sortieren nach created_at, updated_at oder name, je aufsteigend oder absteigend. Die Antwort nennt total und total_pages.
GET /products?page=1&per_page=25&sort=created_at&order=descMaschinenlesbare Spezifikation
Die komplette Schnittstelle als OpenAPI-Dokument, ohne Anmeldung abrufbar. Damit erzeugen Sie Client-Code oder laden die Sammlung in Ihr Werkzeug.
openapi.jsonGS1 Digital Link
Pässe sind auch über die GS1-Kennungen adressierbar: GTIN und Seriennummer zusammen bezeichnen genau eine Batterie, so wie der GS1 Digital Link es vorsieht. Wie die GTIN dabei geschrieben wird, steht bei den betroffenen Endpunkten; welche das sind, zeigt die vollständige Dokumentation im Konto.
Fehler- und Statuscodes
Jeder Fehler kommt als JSON-Objekt mit gleichbleibendem Aufbau. Bei 429 nennt der Retry-After-Kopf die Wartezeit in Sekunden.
validation_errorEingabe unvollständig oder falsch; details nennt das FeldunauthorizedAPI-Schlüssel fehlt oder ist ungültigforbiddenSchlüssel darf diese Ressource nicht ansprechenplan_requiredFunktion gehört zu einem anderen Tarifnot_foundRessource gibt es nicht in Ihrer OrganisationconflictWert ist bereits vergeben, etwa eine doppelte Kennungrate_limit_exceededZu viele Anfragen; Retry-After beachteninternal_errorFehler auf unserer Seite; correlation_id an den Support geben{
"error": {
"code": "validation_error",
"message": "...",
"details": { "name": ["Required"] },
"correlation_id": "..."
}
}Die correlation_id steht zusätzlich im X-Correlation-Id-Kopf. Nennen Sie sie im Support-Fall, dann finden wir denselben Vorgang in unseren Protokollen wieder.
Vollständige Dokumentation
Die komplette API-Referenz mit Felddefinitionen, Beispiel-Payloads, Fehlercodes, Auto-Fill-Regeln und dem vollständigen Produkt-Schema steht in Ihrem Dashboard zur Verfügung.
Was Sie vor der ersten Anfrage wissen sollten
Authentifizierung
Jede Anfrage trägt ein Bearer-Token im Authorization-Kopf. Die REST-API gehört zum Scale-Tarif; in den kleineren Tarifen arbeiten Sie über die Oberfläche oder den CSV-Import.
Seitenweises Lesen
Listen-Endpunkte geben nicht alles auf einmal zurück. Sie steuern das über page (ab 1, Standard 1) und per_page (1 bis 100, Standard 25). Die Antwort trägt page, per_page, total und total_pages. Sie brauchen also nicht zu raten, wann Schluss ist. Sortiert wird über sort (created_at, updated_at oder name) und order (asc oder desc). Gefiltert wird über status, battery_category und search.
Noch keine Webhooks
Ereignis-Benachrichtigungen gibt es derzeit nicht. Änderungen holen Sie über einen Abruf ab. Sinnvoll ist eine Sortierung nach updated_at und eine Beschränkung auf den Zeitraum seit Ihrem letzten Lauf. Wir schreiben das hin, statt es zu verschweigen. So bauen Sie Ihre Anbindung nicht auf eine Zusage, die es nicht gibt.
Der Export folgt dem Battery-Passport-Datenmodell in Version 2.0. Was in welchem Feld steht, entscheidet die Feld-Registry der Anwendung, nicht der Aufruf. Die Endpunkt-Beschreibungen oben und der Doku-Tab im Konto stammen aus derselben Quelle. Sie laufen deshalb nicht auseinander.