← Back to prices

API Documentation

Free, open API for electricity spot prices in Estonia, Finland, Latvia and Lithuania. No authentication required.

Endpoint

GET https://nordpool.novytel.com/api/v1/prices

Parameters

ParameterValuesDefaultDescription
country ee, fi, lv, lt Auto (GeoIP) Country market area
Update schedule: Prices refresh once per hour, aligned to the hour boundary. Today's prices are always available. Tomorrow's prices appear after ~13:00 CET when NordPool publishes them.

Response

All prices are in €/MWh. Timestamps are ISO 8601 / RFC 3339 in the local market timezone (EET/EEST for EE/LV/LT, EET/EEST for FI).

{
  "country": "ee",
  "updated": "2026-04-01T10:01:00+03:00",
  "current": {
    "hour": "2026-04-01T10:00:00+03:00",
    "price_eur_mwh": 11.79
  },
  "days": [
    {
      "date": "2026-04-01",
      "label": "today",
      "min_eur_mwh": 2.72,
      "avg_eur_mwh": 41.32,
      "max_eur_mwh": 155.75,
      "hours": [
        { "hour": "2026-04-01T10:00:00+03:00", "price_eur_mwh": 11.79 },
        { "hour": "2026-04-01T11:00:00+03:00", "price_eur_mwh": 10.82 },
        ...
      ]
    },
    {
      "date": "2026-04-02",
      "label": "tomorrow",
      ...
    }
  ]
}

Day labels

labelMeaning
todayCurrent hour through end of today
tomorrowAll hours of tomorrow (available after ~13:00 CET)
day_after_tomorrowWhen published by NordPool

Integration examples

curl

curl "https://nordpool.novytel.com/api/v1/prices?country=ee" | jq '.current'

Home Assistant — REST sensor

# configuration.yaml
sensor:
  - platform: rest
    name: "EE Electricity Price"
    resource: "https://nordpool.novytel.com/api/v1/prices?country=ee"
    value_template: "{{ value_json.current.price_eur_mwh }}"
    unit_of_measurement: "€/MWh"
    device_class: monetary
    scan_interval: 3600
    json_attributes:
      - days

Home Assistant — RESTful (modern, recommended)

# configuration.yaml
rest:
  - resource: "https://nordpool.novytel.com/api/v1/prices?country=ee"
    scan_interval: 3600
    sensor:
      - name: "Current electricity price"
        value_template: "{{ value_json.current.price_eur_mwh }}"
        unit_of_measurement: "€/MWh"
        device_class: monetary
      - name: "Today avg electricity price"
        value_template: "{{ value_json.days[0].avg_eur_mwh }}"
        unit_of_measurement: "€/MWh"
      - name: "Today max electricity price"
        value_template: "{{ value_json.days[0].max_eur_mwh }}"
        unit_of_measurement: "€/MWh"

Python

import requests

data = requests.get(
    "https://nordpool.novytel.com/api/v1/prices",
    params={"country": "ee"}
).json()

print(f"Now: {data['current']['price_eur_mwh']} €/MWh")
for hour in data['days'][0]['hours']:
    print(hour['hour'], hour['price_eur_mwh'])

Node-RED

Use an HTTP request node with method GET and URL https://nordpool.novytel.com/api/v1/prices?country=ee. Set "Return" to a parsed JSON object. Access the price via msg.payload.current.price_eur_mwh.