Swiss Dynamic Electricity Tariffs — real time
One normalized API for all Swiss dynamic electricity tariffs. Updated daily, 96 × 15-min slots per day, three price components per slot.
- 1 tariff of your choice (permanent)
- Today's prices — all 96 slots
- Smart view for your tariff
- Interactive map (your zone)
- 100 API requests / day
- 1 API key
- All tariffs simultaneously
- Historical data (unlimited)
- Monthly summary & metrics
- All 9+ tariffs simultaneously
- Full historical data
- Smart view — all tariffs
- Interactive map — all zones
- 1 000 API requests / day
- Up to 5 API keys
- Monthly summary & /metrics
- Priority support
- Everything in Pro
- As many keys as you need — one per employee
- Requests/day sized to your usage
- Per-key usage tracking
- Shared account-level limit
- Company invoicing with VAT
- Pay only for what you configure
| Field | Type | Description |
|---|---|---|
| tariff_id | string |
Unique slug identifier. Example
ckw_home_dynamic |
| tariff_name | string |
Human-readable name. Example
CKW Dynamic Home |
| provider_name | string |
Swiss energy utility (EVU). Example
CKW |
| zip_ranges | integer[] | Swiss postal codes served. |
| daily_update_time_utc | string |
Daily price refresh time (UTC). Example
17:30 |
| datetime_available_from_utc | datetime | First UTC datetime with data. |
| valid_until_utc | datetime nullable |
|
| time_resolution_minutes | integer |
Slot resolution in minutes. Example
15 |
| sgr_compliant | boolean | SmartGridready (SGr) certified. |
[
{
"tariff_id": "ckw_home_dynamic",
"tariff_name": "CKW Dynamic Home",
"provider_name": "CKW",
"zip_ranges": [6000, 6002, 6003],
"daily_update_time_utc": "11:05",
"datetime_available_from_utc": "2026-01-01T00:00:00+00:00",
"valid_until_utc": null,
"time_resolution_minutes": 15,
"sgr_compliant": true
}
]
| Field | Type | Description |
|---|---|---|
| tariff_id | string | Tariff identifier. |
| zip_code | integer | |
| start_timerequired | datetime |
Start of window in UTC. Example
2026-08-27T00:00:00Z |
| end_time | datetime | End of window in UTC. Defaults to start_time + 24 h. |
| Field | Type | Description |
|---|---|---|
| tariff_id | string |
Tariff slug identifier. Example
ckw_home_dynamic |
| date | string |
Swiss local date of the data. Example
2026-08-27 |
| start_time | datetime | UTC start of the actual day window returned. |
| end_time | datetime | UTC end of the actual day window returned. |
| energy_price_utc | object[] | Energy component (CHF/kWh). |
| grid_price_utc | object[] | Grid/network component (CHF/kWh). |
| residual_price_utc | object[] | Residual charges (CHF/kWh). |
| slot_count | integer | Number of 15-min slots returned (96 = full day). |
{
"tariff_id": "ckw_home_dynamic",
"date": "2026-08-27",
"start_time": "2026-08-27T23:00:00+00:00",
"end_time": "2026-08-27T23:00:00+00:00",
"slot_count": 96,
"energy_price_utc": [
{"2026-06-18T22:00:00+00:00": 0.0842},
{"2026-06-18T22:15:00+00:00": 0.0791},
... 94 more slots
],
"grid_price_utc": [
{"2026-06-18T22:00:00+00:00": 0.0412},
... 95 more slots
],
"residual_price_utc": [
{"2026-06-18T22:00:00+00:00": 0.0051},
... 95 more slots
]
}
| Field | Type | Description |
|---|---|---|
| start_timerequired | datetime |
Start of window in UTC. Example
2026-08-27T00:00:00Z |
| end_time | datetime | End of window in UTC. Defaults to start_time + 24 h. |
| Field | Type | Description |
|---|---|---|
| energy_price_utc | object[] | Energy component slots (CHF/kWh). |
| grid_price_utc | object[] | Grid component slots (CHF/kWh). |
| residual_price_utc | object[] | Residual charges slots (CHF/kWh). |
| slot_count | integer | Number of 15-min slots for this tariff. |
{
"ckw_home_dynamic": {
"date": "2026-08-27",
"slot_count": 96,
"energy_price_utc": [
{"2026-06-18T22:00:00+00:00": 0.0842},
... 95 more
],
"grid_price_utc": [...],
"residual_price_utc": [...]
},
"ekz_dynamisch": {
"date": "2026-08-27",
"slot_count": 96,
"energy_price_utc": [...],
"grid_price_utc": [...],
"residual_price_utc": [...]
},
... all active tariffs
}
| Field | Type | Description |
|---|---|---|
| tariff_idrequired | string | |
| days | integer |
| Field | Type | Description |
|---|---|---|
| tariff_id | string | |
| days | object[] |
{
"tariff_id": "ckw_home_dynamic",
"days": [
{
"date": "2026-08-27",
"avg_price": 0.1284,
"min_price": 0.0912,
"max_price": 0.1873,
"slot_count": 96
},
... one entry per day
]
}
| Field | Type | Description |
|---|---|---|
| tariff_idrequired | string | |
| months | integer |
| Field | Type | Description |
|---|---|---|
| tariff_id | string | |
| months | object[] |
{
"tariff_id": "ckw_home_dynamic",
"months": [
{
"month": "2026-06",
"avg_price": 0.1197,
"min_price": 0.0688,
"max_price": 0.2011,
"slot_count": 2880
},
... one entry per month
]
}
| Field | Type | Description |
|---|---|---|
| date_str | string |
| Field | Type | Description |
|---|---|---|
| date | string | |
| tariffs | object[] |
{
"date": "2026-08-27",
"tariffs": [
{
"tariff_id": "ckw_home_dynamic",
"provider_name": "CKW",
"cheapest_window": {
"time": "03:15",
"price": 0.0688
},
"most_expensive_window": {
"time": "19:00",
"price": 0.2011
},
"avg_today": 0.1284
},
... one entry per active tariff
]
}