{"openapi":"3.1.0","info":{"title":"Spotwatts electricity price API","version":"1.0.0","summary":"Free day-ahead electricity prices for the Nordic and Baltic bidding zones.","description":"Day-ahead (SDAC) prices of NO1–NO5, SE1–SE4, DK1–DK2, FI, EE, LV and LT from the ENTSO-E Transparency Platform: one zone and day per request, 15-minute intervals and hourly averages, with and without VAT. Free, no key. Every public display must show a visible link to Spotwatts (rel=\"nofollow\" is fine). Terms: https://spotwatts.com/en/api#terms","termsOfService":"https://spotwatts.com/en/api#terms","contact":{"url":"https://spotwatts.com/en/about#contact"}},"externalDocs":{"url":"https://spotwatts.com/en/api"},"servers":[{"url":"https://spotwatts.com/api/v1"}],"paths":{"/zones.json":{"get":{"summary":"Bidding zones","responses":{"200":{"description":"All 15 zones with their currency, time zone and VAT rate today."}}}},"/{zone}/{day}.json":{"get":{"summary":"Prices of one zone for one local day","parameters":[{"$ref":"#/components/parameters/zone"},{"name":"day","in":"path","required":true,"description":"today, tomorrow or a local date YYYY-MM-DD (from 2023-01-01).","schema":{"type":"string","pattern":"^(today|tomorrow|\\d{4}-\\d{2}-\\d{2})$"},"example":"today"}],"responses":{"200":{"description":"The day's prices.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Day"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/{zone}/now.json":{"get":{"summary":"Price of the current 15-minute interval in one zone","parameters":[{"$ref":"#/components/parameters/zone"}],"responses":{"200":{"description":"The current interval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Now"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/now.json":{"get":{"summary":"Price of the current 15-minute interval in every zone","responses":{"200":{"description":"Zone code → current interval (null when the zone has no prices for today)."}}}},"/prices/{year}/{monthDay}_{zone}.json":{"get":{"summary":"One day in the common daily-file format","description":"An array of intervals with {CUR}_per_kWh (excl. VAT), EUR_per_kWh, EXR, time_start, time_end, for all 15 zones.","parameters":[{"name":"year","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{4}$"},"example":"2026"},{"name":"monthDay","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}-\\d{2}$"},"example":"10-25"},{"name":"zone","in":"path","required":true,"schema":{"type":"string"},"example":"SE3"}],"responses":{"200":{"description":"The day's intervals."},"404":{"$ref":"#/components/responses/NotFound"}}}}},"components":{"parameters":{"zone":{"name":"zone","in":"path","required":true,"description":"Bidding zone in lower case.","schema":{"type":"string","enum":["no1","no2","no3","no4","no5","dk1","dk2","se1","se2","se3","se4","fi","ee","lv","lt"]},"example":"no2"}},"responses":{"NotFound":{"description":"Unknown zone or date, or prices not published yet (tomorrow's come at about 13:00 CET).","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"schemas":{"Interval":{"type":"object","properties":{"start":{"type":"string","format":"date-time","description":"Local time with offset."},"end":{"type":"string","format":"date-time"},"price":{"type":"number","description":"Currency per kWh, excl. VAT."},"price_vat":{"type":"number","description":"Currency per kWh, incl. VAT."},"eur_mwh":{"type":"number","description":"Day-ahead price in EUR/MWh, as published."}}},"Day":{"type":"object","properties":{"zone":{"type":"string","example":"NO2"},"country":{"type":"string","example":"NO"},"timezone":{"type":"string","example":"Europe/Oslo"},"currency":{"type":"string","enum":["NOK","SEK","DKK","EUR"]},"unit":{"type":"string","example":"NOK/kWh"},"date":{"type":"string","format":"date"},"vat_rate":{"type":"number","description":"Percent; 0 in NO4."},"exchange_rate":{"type":"object","description":"ECB rate per 1 EUR known at the day's auction (date null for EUR).","properties":{"eur":{"type":"number"},"date":{"type":["string","null"],"format":"date"}}},"resolution":{"type":"integer","enum":[15,60],"description":"Interval minutes: 15 since 1.10.2025, 60 before."},"average":{"type":"object","properties":{"price":{"type":"number"},"price_vat":{"type":"number"},"eur_mwh":{"type":"number"}}},"min":{"$ref":"#/components/schemas/Interval"},"max":{"$ref":"#/components/schemas/Interval"},"cheapest_windows":{"type":"array","description":"Cheapest continuous 1–4 hours starting within the day.","items":{"allOf":[{"$ref":"#/components/schemas/Interval"},{"type":"object","properties":{"hours":{"type":"integer"}}}]}},"intervals":{"type":"array","items":{"$ref":"#/components/schemas/Interval"}},"hours":{"type":"array","description":"Hourly averages.","items":{"$ref":"#/components/schemas/Interval"}},"page":{"type":"string","format":"uri"},"source":{"type":"string"},"attribution":{"$ref":"#/components/schemas/Attribution"}}},"Now":{"allOf":[{"$ref":"#/components/schemas/Interval"},{"type":"object","properties":{"zone":{"type":"string"},"country":{"type":"string"},"timezone":{"type":"string"},"currency":{"type":"string"},"unit":{"type":"string"},"vat_rate":{"type":"number"},"attribution":{"$ref":"#/components/schemas/Attribution"}}}]},"Attribution":{"type":"object","properties":{"text":{"type":"string","example":"Prices: Spotwatts"},"url":{"type":"string","format":"uri"}}}}}}