Stroomprijs API voor uur- en kwartierprijzen

Gebruik twee gratis JSON-endpoints voor actuele Nederlandse stroomtarieven per uur en komende energieprijzen per kwartier. Geen API-key nodig, wel vriendelijk cachen en de rate limits respecteren. En doe even een linkje terug naar Dynamisch Tarief als je de data op een website gebruikt.

Geen API-key JSON via HTTPS Tijdzone Europe/Amsterdam Data via ENTSO-E

Eén request, direct bruikbare JSON

Alle prijzen zijn in euro per kWh. price is een indicatieve all-in consumentenprijs: marktprijs, belastingen, btw en de gemiddelde inkoopvergoeding van actieve leveranciers.

Terminal cURL
curl --request GET \
  --header "Accept: application/json" \
  "https://www.dynamisch-tarief.nl/api/stroom/actueel"
GET /api/stroom/actueel

Actuele stroomprijs API

Geeft het tarief van het interval dat nu loopt. Geschikt voor een dashboard, prijsbadge of automatisering die alleen hoeft te weten wat stroom op dit moment kost.

200 OK · application/json
{
  "price": 0.28431,
  "price_excl_markup": 0.26742,
  "market_price": 0.12837,
  "supplier_markup": 0.01689,
  "currency": "EUR",
  "unit": "kWh",
  "from": "2026-08-11T14:15:00+02:00",
  "till": "2026-08-11T14:30:00+02:00",
  "resolution": "PT15M",
  "source": "entsoe"
}
VeldBetekenis
price All-in prijs inclusief gemiddelde leveranciersopslag.
price_excl_markup Prijs inclusief belasting en btw, zonder leveranciersopslag.
market_price Kale day-ahead marktprijs exclusief belastingen.
supplier_markup Gemiddelde inkoopvergoeding van actieve leveranciers.
from / till Begin en einde van het lopende prijsinterval.
resolution PT15M bij kwartierdata; PT60M bij de uurlijkse fallback.
source entsoe, frank of none.
GET /api/stroom/kwartierprijzen?uren=6

Kwartierprijzen API voor komende uren

Geeft de intervallen vanaf het lopende kwartier. Gebruik de optionele queryparameter uren voor 1 t/m 36 uur; zonder parameter worden 6 uur opgevraagd. De response kan korter zijn wanneer de day-ahead prijzen voor morgen nog niet zijn gepubliceerd.

Let op de metadata. Normaal is resolution gelijk aan PT15M. Bij tijdelijke uitval van ENTSO-E kan de API uurlijkse fallbackdata met PT60M teruggeven; de intervallen worden niet kunstmatig als kwartierprijzen voorgedaan.

200 OK · application/json
{
  "currency": "EUR",
  "unit": "kWh",
  "timezone": "Europe/Amsterdam",
  "resolution": "PT15M",
  "resolution_minutes": 15,
  "requested_hours": 6,
  "available_from": "2026-08-11T14:15:00+02:00",
  "available_until": "2026-08-11T20:15:00+02:00",
  "source": "entsoe",
  "prices": [
    {
      "from": "2026-08-11T14:15:00+02:00",
      "till": "2026-08-11T14:30:00+02:00",
      "price": 0.28431,
      "price_excl_markup": 0.26742,
      "market_price": 0.12837,
      "supplier_markup": 0.01689
    }
  ]
}

Wat kun je ermee bouwen?

De endpoints zijn bewust klein gehouden. De API levert prijsintervallen; jouw applicatie bepaalt wanneer er iets wordt getoond, gemeld of geschakeld.

Een handige vuistregel: gebruik actueel om te tonen wat stroom nu kost en kwartierprijzen om vooruit te plannen.

  1. 01

    Een live stroomprijs op je website

    Toon de actuele consumentenprijs bij een energieartikel, rekentool of dashboard. Vermeld het tijdvak naast de prijs, zodat bezoekers zien hoe lang het tarief geldt. Is price leeg, toon dan “tijdelijk niet beschikbaar” en niet stilletjes de laatst bekende prijs.

    Endpoint
    /actueel
    Verversen
    Elke 5 minuten
    Gebruik
    price, from, till
  2. 02

    Een sensor voor Home Assistant of andere domotica

    Lees de actuele prijs in als sensorwaarde en laat een boiler, vaatwasser of ventilatiesysteem alleen starten onder je eigen grens. Werk met een kleine marge tussen aan- en uitschakelen, zodat een apparaat niet bij iedere cent verschil heen en weer schakelt.

    Endpoint
    /actueel
    Verversen
    Elke 5 minuten
    Regel
    Eigen prijsgrens
  3. 03

    Een laadplanning voor de elektrische auto

    Vraag 12 tot 24 uur op en kies genoeg goedkope intervallen om de gewenste hoeveelheid energie te laden. Sommige laadpalen kunnen losse kwartieren gebruiken; andere werken prettiger met één aaneengesloten blok. Controleer altijd available_until voordat je een volledige nacht inplant.

    Endpoint
    /kwartierprijzen
    Venster
    12 tot 24 uur
    Let op
    Beschikbare horizon
  4. 04

    Een planning voor batterij, warmtepomp of boiler

    Gebruik de komende prijzen om warmte of energie op te slaan wanneer dat gunstig is. Neem ook comfort, buffercapaciteit en maximaal vermogen mee. Het goedkoopste kwartier is niet automatisch het beste schakelmoment als een apparaat daarna extra hard moet werken.

    Endpoint
    /kwartierprijzen
    Venster
    24 tot 36 uur
    Prijsveld
    price
  5. 05

    Een melding bij negatieve of opvallende prijzen

    Stuur een melding wanneer een komend interval onder je grens komt. Kijk voor een negatieve handelsprijs naar market_price; de all-in consumentenprijs kan door belastingen en opslag alsnog positief zijn. Gebruik from als unieke sleutel om dubbele meldingen te voorkomen.

    Endpoint
    /kwartierprijzen
    Venster
    6 tot 12 uur
    Gebruik
    market_price, from

Van response naar betrouwbare automatisering

  1. 1 / ophalen

    Gebruik de ETag en bewaar de laatste geldige response in je eigen cache.

  2. 2 / controleren

    Lees source, resolution en available_until voordat je plant.

  3. 3 / beslissen

    Pas je eigen prijsgrens, looptijd en apparaatbeperkingen toe op de intervallen.

Caching en rate limits

Prijsdata verandert per kwartier, niet per seconde. Beide endpoints hebben daarom dezelfde ruime limieten per IP-adres. Een normale integratie die elke vijf minuten ververst gebruikt slechts 12 van de 1.000 verzoeken per uur.

60

verzoeken per minuut

1.000

verzoeken per uur

≤ 5 min

publieke cacheduur

Cache-Control: de exacte max-age loopt nooit voorbij de volgende kwartiergrens en is maximaal 300 seconden.

ETag: stuur If-None-Match mee. Bij ongewijzigde data volgt 304 Not Modified zonder responsebody.

Rate-limit headers: succesvolle responses bevatten onder andere X-RateLimit-Limit en X-RateLimit-Remaining. Een overschrijding geeft 429 en Retry-After.

Responses om rekening mee te houden

200 OK Een geldige response. Bij bronuitval kunnen prijzen null of de lijst leeg zijn.
304 Not Modified De ETag komt overeen; gebruik je gecachete response.
422 Ongeldige invoer uren is geen geheel getal van 1 t/m 36.
429 Te veel verzoeken Wacht het aantal seconden uit Retry-After.
5xx Tijdelijke storing Behoud kort de laatst bekende waarde en probeer met oplopende wachttijd opnieuw.

Gebruik de API netjes

Deze API draait als hobbyproject en heeft geen beschikbaarheidsgarantie. Cache responses, bouw een fallback in en neem bij structureel of commercieel grootverbruik eerst contact op.

Gebruik je de API op een website? Leuk! Zet dan, als je ons blij wilt maken, even een linkje naar Dynamisch Tarief op je site. Zo weten bezoekers waar de data vandaan komt en help je dit hobbyproject een beetje vooruit.

Contact opnemen