Skip to content
API reference

Tarife

8 endpoints

The endpoint descriptions come directly from the API and are in German.

Tarife auflisten

get/v1/tariffs

Aktive Tarife mit aktueller Version.

Response 200TariffList

NameTypeDescription
objectrequired"list"
datarequiredTariff[]
has_morerequiredboolean

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X GET https://api.ladehase.com/v1/tariffs \n  -H "Authorization: Bearer lh_test_…"
Response 200
{
  "object": "list",
  "data": [
    {
      "id": "trf_5e2a8b1c9d0f3e7a",
      "object": "tariff",
      "name": "string",
      "description": "string",
      "version": 0,
      "version_id": "string",
      "rules": {},
      "archived": true,
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "has_more": true
}

Tarif anlegen

post/v1/tariffs

Tarifregeln: `energyPrice` in Hundertstel-Rappen pro kWh (4500 = 45 Rappen), `startFee` und `serviceFee` in Rappen, `timeWindows` für zeitabhängige Preise, `idleFee` für die Standzeitgebühr, `maxAmount` als Höchstbetrag. Preise inkl. MWST.

Parameters

NameInType
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Headerstring

Request

NameTypeDescription
namerequiredstring
descriptionoptionalstring | null
rulesrequiredobject

Response 201Tariff

NameTypeDescription
idrequiredstringID mit Präfix «trf_»
objectrequired"tariff"
namerequiredstring
descriptionrequiredstring | null
versionrequiredinteger
version_idrequiredstring | null
rulesrequiredobject | nullTarifregeln, siehe TariffRules
archivedrequiredboolean
created_atrequiredstring
updated_atrequiredstring

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X POST https://api.ladehase.com/v1/tariffs \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"name":"string","description":"string","rules":{"currency":"CHF","energyPrice":0,"startFee":0,"serviceFee":0,"timeWindows":[],"idleFee":{"pricePerMinute":0,"graceMinutes":0,"trigger":"after_charging","maxAmount":0,"quietHours":{"from":"string","to":"string"}},"maxAmount":0,"timeZone":"Europe/Zurich"}}'
Response 201
{
  "id": "trf_5e2a8b1c9d0f3e7a",
  "object": "tariff",
  "name": "string",
  "description": "string",
  "version": 0,
  "version_id": "string",
  "rules": {},
  "archived": true,
  "created_at": "string",
  "updated_at": "string"
}

Tarif abrufen

get/v1/tariffs/{id}

Ein Tarif mit Regeln der aktuellen Version.

Parameters

NameInType
idrequiredPathstring

Response 200Tariff

NameTypeDescription
idrequiredstringID mit Präfix «trf_»
objectrequired"tariff"
namerequiredstring
descriptionrequiredstring | null
versionrequiredinteger
version_idrequiredstring | null
rulesrequiredobject | nullTarifregeln, siehe TariffRules
archivedrequiredboolean
created_atrequiredstring
updated_atrequiredstring

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X GET https://api.ladehase.com/v1/tariffs/{id} \n  -H "Authorization: Bearer lh_test_…"
Response 200
{
  "id": "trf_5e2a8b1c9d0f3e7a",
  "object": "tariff",
  "name": "string",
  "description": "string",
  "version": 0,
  "version_id": "string",
  "rules": {},
  "archived": true,
  "created_at": "string",
  "updated_at": "string"
}

Tarif ändern

patch/v1/tariffs/{id}

Neue Regeln ergeben eine neue Version. Laufende Ladungen behalten ihre Version.

Parameters

NameInType
idrequiredPathstring

Request

NameTypeDescription
nameoptionalstring
descriptionoptionalstring | null
rulesoptionalobject

Response 200Tariff

NameTypeDescription
idrequiredstringID mit Präfix «trf_»
objectrequired"tariff"
namerequiredstring
descriptionrequiredstring | null
versionrequiredinteger
version_idrequiredstring | null
rulesrequiredobject | nullTarifregeln, siehe TariffRules
archivedrequiredboolean
created_atrequiredstring
updated_atrequiredstring

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X PATCH https://api.ladehase.com/v1/tariffs/{id} \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"name":"string","description":"string","rules":{"currency":"CHF","energyPrice":0,"startFee":0,"serviceFee":0,"timeWindows":[],"idleFee":{"pricePerMinute":0,"graceMinutes":0,"trigger":"after_charging","maxAmount":0,"quietHours":{"from":"string","to":"string"}},"maxAmount":0,"timeZone":"Europe/Zurich"}}'
Response 200
{
  "id": "trf_5e2a8b1c9d0f3e7a",
  "object": "tariff",
  "name": "string",
  "description": "string",
  "version": 0,
  "version_id": "string",
  "rules": {},
  "archived": true,
  "created_at": "string",
  "updated_at": "string"
}

Tarif archivieren

delete/v1/tariffs/{id}

Nur Tarife ohne aktive Geräte.

Parameters

NameInType
idrequiredPathstring

Response 200Tariff

NameTypeDescription
idrequiredstringID mit Präfix «trf_»
objectrequired"tariff"
namerequiredstring
descriptionrequiredstring | null
versionrequiredinteger
version_idrequiredstring | null
rulesrequiredobject | nullTarifregeln, siehe TariffRules
archivedrequiredboolean
created_atrequiredstring
updated_atrequiredstring

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X DELETE https://api.ladehase.com/v1/tariffs/{id} \n  -H "Authorization: Bearer lh_test_…"
Response 200
{
  "id": "trf_5e2a8b1c9d0f3e7a",
  "object": "tariff",
  "name": "string",
  "description": "string",
  "version": 0,
  "version_id": "string",
  "rules": {},
  "archived": true,
  "created_at": "string",
  "updated_at": "string"
}

Versionen auflisten

get/v1/tariffs/{id}/versions

Alle Versionen eines Tarifs.

Parameters

NameInType
idrequiredPathstring

Response 200Object

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X GET https://api.ladehase.com/v1/tariffs/{id}/versions \n  -H "Authorization: Bearer lh_test_…"
Response 200
{}

Tarifvorschau

post/v1/tariffs/{id}/preview

Beispielbeträge, etwa «So viel kostet eine Ladung mit 20 kWh». Mit `rules` im Body lässt sich ein Entwurf berechnen.

Parameters

NameInType
idrequiredPathstring
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Headerstring

Request

NameTypeDescription
rulesoptionalobject
energy_whoptionalinteger[]
power_woptionalinteger
idle_minutesoptionalinteger
start_atoptionalstring (date-time)

Response 200Object

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X POST https://api.ladehase.com/v1/tariffs/{id}/preview \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"rules":{"currency":"CHF","energyPrice":0,"startFee":0,"serviceFee":0,"timeWindows":[],"idleFee":{"pricePerMinute":0,"graceMinutes":0,"trigger":"after_charging","maxAmount":0,"quietHours":{"from":"string","to":"string"}},"maxAmount":0,"timeZone":"Europe/Zurich"},"energy_wh":[10000,20000,40000],"power_w":11000,"idle_minutes":0,"start_at":"2026-10-25T08:30:00.000Z"}'
Response 200
{}

Vorschau für Entwurf

post/v1/tariffs/preview

Wie die Tarifvorschau, aber ohne gespeicherten Tarif (Regeln im Body).

Parameters

NameInType
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Headerstring

Request

NameTypeDescription
rulesoptionalobject
energy_whoptionalinteger[]
power_woptionalinteger
idle_minutesoptionalinteger
start_atoptionalstring (date-time)

Response 200Object

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X POST https://api.ladehase.com/v1/tariffs/preview \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"rules":{"currency":"CHF","energyPrice":0,"startFee":0,"serviceFee":0,"timeWindows":[],"idleFee":{"pricePerMinute":0,"graceMinutes":0,"trigger":"after_charging","maxAmount":0,"quietHours":{"from":"string","to":"string"}},"maxAmount":0,"timeZone":"Europe/Zurich"},"energy_wh":[10000,20000,40000],"power_w":11000,"idle_minutes":0,"start_at":"2026-10-25T08:30:00.000Z"}'
Response 200
{}