Veröffentlichte Pässe eines Modells
Listen Sie jede Einheit eines Batteriemodells mit veröffentlichtem Pass auf und geben Sie Pass-ID, aktuelle Version und öffentlichen Link als CSV aus.
Das Skript listet mit listBatteries und den Filtern
battery_model_id und passport_status=published die Einheiten eines Batteriemodells, deren Pass veröffentlicht
ist, liest jeden Pass mit getPassport und gibt je Einheit eine
CSV-Zeile aus: Seriennummer, Pass-ID, aktuelle Version, Zeitpunkt der Veröffentlichung und öffentliche Seite. Es
braucht einen Schlüssel mit dem Scope read.
- Die ID des Modells liefert
listBatteryModels. - Pässe im Status
update_neededsind ebenfalls online (ihre aktuelle Version bleibt öffentlich, bis sie erneut veröffentlicht werden). Starten Sie das Skript ein zweites Mal mitpassport_status=update_needed, um sie einzuschließen. - Für eine einzelne Modellversion verwenden Sie
model_version_idstattbattery_model_id.
#!/usr/bin/env bash
# model-passports.sh <model-id>: the published passports of one battery model as CSV (needs curl and jq)
set -euo pipefail
model_id="$1" # the id from listBatteryModels
auth="Authorization: Bearer $BATTERYPASS_API_KEY"
echo "serial_number,passport_id,version_no,published_at,public_url"
cursor=""
while :; do
page=$(curl -sS --fail --retry 5 -G "$BATTERYPASS_URL/api/v1/batteries" -H "$auth" \
-d "battery_model_id=$model_id" -d passport_status=published -d limit=200 \
${cursor:+--data-urlencode "cursor=$cursor"})
for id in $(jq -r '.items[].id' <<<"$page"); do
curl -sS --fail --retry 5 -H "$auth" "$BATTERYPASS_URL/api/v1/batteries/$id/passport" |
jq -r '[.serial_number, .passport_id, .current_version.version_no, .current_version.published_at, .public_url] | @csv'
done
cursor=$(jq -r '.next_cursor // empty' <<<"$page")
[ -n "$cursor" ] || break
doneserial_number,passport_id,version_no,published_at,public_url
SV2027-000184,urn:dpp:0192f0c4-7d1e-7a3b-9c55-2f1e8d4a6b10,4,2026-10-24T06:00:03Z,https://batterypass.example.com/pass/0192f0c4-7d1e-7a3b-9c55-2f1e8d4a6b10
SV2027-000185,urn:dpp:0192f0d7-3e2a-7b1c-8d4e-5f6a7b8c9d0e,2,2026-09-30T14:22:10Z,https://batterypass.example.com/pass/0192f0d7-3e2a-7b1c-8d4e-5f6a7b8c9d0eDie Shell-Fassung setzt jedes CSV-Feld in Anführungszeichen (@csv), die anderen nur, wo es nötig ist. Jede
Einheit kostet eine Anfrage, und alle Schlüssel Ihrer Organisation teilen sich 600 Anfragen pro Minute. Pass und
Versionen erklärt Pässe und Versionen.