Latest prices
Today and tomorrow (published day-ahead).
GET /electricity/{ZONE}/latest/
Reusable JSON endpoints, examples, and response formats for Utilitarian Spot.
Each endpoint uses the zone codes below.
All timestamps are ISO‑8601 in UTC. Responses are JSON arrays of
objects with timestamp and value.
Today and tomorrow (published day-ahead).
GET /electricity/{ZONE}/latest/
Quarter-hourly or hourly prices for a specific day.
GET /electricity/{ZONE}/{YYYY}/{MM}/{DD}/
All daily values for a month.
GET /electricity/{ZONE}/{YYYY}/{MM}/
All daily values for a year.
GET /electricity/{ZONE}/{YYYY}/
import httpx
# Latest prices for SE1
latest = httpx.get(
"https://spot.utilitarian.io/electricity/SE1/latest/"
).json()
# All prices for 2022
year_2022 = httpx.get(
"https://spot.utilitarian.io/electricity/SE2/2022/"
).json()
# Prices for May 2022
may_prices = httpx.get(
"https://spot.utilitarian.io/electricity/SE3/2022/05/"
).json()
# Specific day: May 3rd 2022
may_3rd = httpx.get(
"https://spot.utilitarian.io/electricity/SE4/2022/05/03/"
).json()
[
{
"timestamp": "2025-10-09T00:00:00+00:00",
"value": "27.12"
},
{
"timestamp": "2025-10-09T00:15:00+00:00",
"value": "28.03"
}
]
Call endpoints directly from browsers.
Use If-Modified-Since to avoid
re-downloading unchanged data.
All values originate from the ENTSO-E Transparency Platform in UTC and €/MWh.
Each price point is valid from its timestamp until the next point is reached. We omit explicit intervals to keep payloads compact.
Values are expressed in €/MWh. Some markets deliver hourly values, others provide 15-minute granularity.
Spot is intentionally LLM-friendly: no authentication, no rate limits, and a published OpenAPI schema. Agents can call the REST endpoints directly or load the schema automatically.
GET /electricity/SE3/latest/ (JSON array of timestamp/value pairs in €/MWh). No auth required.”Use these payloads when registering tools with OpenAI, Anthropic, or similar runtimes.
// OpenAI function definition
{
"type": "function",
"function": {
"name": "spot_get_latest",
"description": "Return the latest day-ahead prices for a bidding zone (€/MWh).",
"parameters": {
"type": "object",
"properties": {
"zone": {
"type": "string",
"description": "ENTSO-E bidding zone such as SE3, NO2, DE_LU"
}
},
"required": ["zone"]
}
}
}
// Example tool call (OpenAI)
{
"id": "spot-call-1",
"type": "function",
"function": {
"name": "spot_get_latest",
"arguments": "{\"zone\":\"SE3\"}"
}
}
// Anthropic tool referencing OpenAPI
{
"name": "spot_api",
"description": "Utilitarian Spot electricity price API",
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$ref": "https://spot.utilitarian.io/api/openapi.yaml#/components/schemas/PriceRecord"
}
}
# LangChain helper
from langchain.tools import StructuredTool
import httpx
def fetch_latest(zone: str):
resp = httpx.get(f"https://spot.utilitarian.io/electricity/{zone}/latest/")
resp.raise_for_status()
return resp.json()
spot_tool = StructuredTool.from_function(
func=fetch_latest,
name="spot_latest_prices",
description="Return the latest electricity prices (€/MWh) for a bidding zone such as SE3 or DE_LU."
)
Give your assistant realistic examples of how to translate questions into API calls and answers.
Q:
“What are the latest Swedish SE3 prices?”
Tool call:
{
"name": "spot_get_latest",
"arguments": {"zone": "SE3"}
}
A:
“SE3 latest prices (€/MWh): 2025-02-07T00:00Z → 55.12, … 2025-02-08T23:00Z → 48.63.”
Q:
“Give me the SE1 prices for May 2024.”
Tool call:
{
"name": "spot_get_month",
"arguments": {"zone": "SE1", "year": "2024", "month": "05"}
}
A:
“Returned 744 hourly datapoints for SE1 May 2024. Average price 32.44 €/MWh.”
Q:
“Compare NO2 and NO3 prices for 7 Feb 2025.”
Tool calls:
[
{
"name": "spot_get_day",
"arguments": {"zone": "NO2", "year": "2025", "month": "02", "day": "07"}
},
{
"name": "spot_get_day",
"arguments": {"zone": "NO3", "year": "2025", "month": "02", "day": "07"}
}
]
A:
“NO2 averaged 41.2 €/MWh; NO3 averaged 38.7 €/MWh on 2025‑02‑07. Spread 2.5 €/MWh.”