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.