stroomprijzenapi

Endpoints

Base: https://api.stroomwekker.nl · zes GET-requests zonder state en zonder key, plus een MCP-server die er wel een vraagt. Alle instants in UTC, alle prijzen in EUR.

Method
Path
Wat je terugkrijgt
GET
/api/v1/prices?date=&resolution=
Elk interval van één Nederlandse kalenderdag. Zonder date: morgen zodra die gepubliceerd is, anders vandaag.
GET
/api/v1/prices/now
Het interval waarin dit moment valt, met de volledige opbouw.
GET
/api/v1/tax-rates
Energiebelasting, ODE en btw per jaar, plus de btw-periodes en de formule.
GET
/api/v1/test-vectors
Doorgerekende bedragen per belastingjaar en de grensgevallen, met de som uitgeschreven.
GET
/api/v1/status
Dekking per resolutie en de laatste ingest-run. unchanged is gezond.
GET
/health
Liveness, raakt de database bewust niet aan.
POST
/mcp
MCP-server over Streamable HTTP, voor assistenten. JSON-RPC, geen REST, key verplicht — zie hieronder.

Prijzen van morgen verschijnen bij SMARD rond 14:00 CE(S)T. Tot dat moment is points een lege array — geen foutmelding.

Voor assistenten: de MCP-server

Zet een MCP-client op https://api.stroomwekker.nl/mcp en een model kan deze prijzen zelf lezen. Geen sessie, geen installatie — wel een key. Eén gesprek zijn al snel tien requests die geen van alle uit de cache komen, dus dat verkeer krijgt zijn eigen dagbudget in plaats van dat van iedereen samen. Een gratis key haal je op met POST /api/v1/keys.

Zes tools: get_prices, get_current_price, find_cheapest_window, get_tax_rates, get_data_coverage en get_api_usage. Die laatste vertelt de assistent wat er over is van het dagbudget van de key, zodat een geweigerde call uitgelegd wordt in plaats van herhaald. Die derde is het punt van het geheel — hij beantwoordt de vraag die mensen echt stellen ("wanneer zet ik de wasmachine aan") in plaats van 96 getallen terug te geven om zelf te sorteren. Alles alleen-lezen, en dezelfde doorgerekende bedragen als de endpoints hierboven.

{
  "mcpServers": {
    "stroomprijzen": {
      "url": "https://api.stroomwekker.nl/mcp",
      "headers": { "Authorization": "Bearer <key>" }
    }
  }
}

Wat de server aanbiedt staat ook op https://api.stroomwekker.nl/.well-known/mcp/server-card.json: het endpoint, de zes tools met hun argumenten, en dat er een key nodig is. Die kaart is zelf vrij op te halen — een client die alleen het domein kent, kan anders nergens zien wat hier draait. Hij wordt gegenereerd uit dezelfde tooldefinities als de server zelf, dus hij kan geen tool noemen die niet bestaat en er geen missen.

Kan je client alleen een URL kwijt en geen headers? Zet de key er dan achter: https://api.stroomwekker.nl/mcp?apiKey=<key>. Elk antwoord noemt Stroomwekker.nl als bron en linkt naar de pagina van de dag waar het over gaat, zodat een assistent die kan doorgeven.

Welk veld wil je?

Bijna zeker allInEurKwh. Dat is wat een huishouden per kWh betaalt.

rawEurKwh is de kale marktprijs. In 2026 ligt die zo'n 0,11 EUR/kWh onder de all-in prijs. Toon je die aan een consument als "de stroomprijs", dan onderschat je de rekening met precies dat bedrag — en omdat het gat vrijwel constant is, ziet het plausibel uit in plaats van kapot.

allIn = (rawEurMwh / 1000 + energyTax + ode) × (1 + vat)
curl -s 'https://api.stroomwekker.nl/api/v1/prices?date=2026-08-15' \
  | jq '.points | min_by(.allInEurKwh) | {localTime, allInEurKwh}'

# {
#   "localTime": "2026-08-15T13:00:00+02:00",
#   "allInEurKwh": 0.118169
# }