API Quick Start
With the energiedaten.at API you can retrieve measurement data from your meters programmatically. This guide shows you the fastest path to your first successful API call.
Step 1 — API Key and Base URL
Create a key under Data → API Tokens. For details, see Creating API Keys.
After creation, you'll find two important values on the token detail page:
- API Token — Your authentication key. Copy it immediately — it is only shown once.
- Base URL — Your team-specific URL, e.g.
https://energiedaten.at/api/v1/teams/my-team
Step 2 — List Your Meters
Fetch your meters to get the meter ID:
curl https://energiedaten.at/api/v1/teams/{TEAM}/meters \
-H "Authorization: Bearer {TOKEN}"
The response contains your meters with their UUIDs:
{
"data": [
{
"id": "9c3a5e8f-1b2d-4a6e-8f0c-3d5e7a9b1c2d",
"metering_point": "AT0010000000000000001000000000001",
"energy_direction": "consumption",
"granularity": "quarter_hour",
"status": "connected",
"latest_data_at": "2026-04-05T08:15:00Z",
"created_at": "2026-01-10T08:00:00Z"
}
]
}
Copy the id of the meter you want for the next step.
Step 3 — Fetch Measurement Data
Replace {TEAM}, {TOKEN}, and {METER_ID} with your values:
curl "https://energiedaten.at/api/v1/teams/{TEAM}/meters/{METER_ID}/data?from=2026-04-05T00:00:00Z&to=2026-04-05T01:00:00Z" \
-H "Authorization: Bearer {TOKEN}"
A successful response looks like this:
{
"data": [
{
"timestamp": "2026-04-05T00:00:00Z",
"timestamp_end": "2026-04-05T00:15:00Z",
"value": 0.285,
"unit": "kWh",
"obis_code": "1-1:1.8.0",
"quality": 1
},
{
"timestamp": "2026-04-05T00:15:00Z",
"timestamp_end": "2026-04-05T00:30:00Z",
"value": 0.312,
"unit": "kWh",
"obis_code": "1-1:1.8.0",
"quality": 1
}
],
"meta": {
"meter_id": "9c3a5e8f-1b2d-4a6e-8f0c-3d5e7a9b1c2d",
"metering_point": "AT0010000000000000001000000000001",
"granularity": "quarter_hour",
"from": "2026-04-05T00:00:00Z",
"to": "2026-04-05T01:00:00Z",
"total_records": 4,
"data_completeness": 1.0,
"quality_breakdown": {
"measured": 4,
"estimated": 0,
"unreliable": 0
}
}
}
Data quality: 1 = measured, 2 = estimated, 3 = unreliable. Filter with ?quality=measured.
For the Latest Readings
Without a date range — the last 96 values (one day of quarter-hourly data):
curl https://energiedaten.at/api/v1/teams/{TEAM}/meters/{METER_ID}/data/latest \
-H "Authorization: Bearer {TOKEN}"
Next Steps
The full API reference — all endpoints, parameters, and response formats — is available in the API documentation.
For automatic push delivery without polling, we recommend Webhooks or MQTT.