# Entsoe

Query ENTSOE energy market data including prices, load, and generation.

## Query ENTSOE timeseries data

> Query ENTSOE energy market timeseries data including:\
> \- Day-ahead and imbalance prices\
> \- Load and generation actuals and forecasts\
> \- Cross-border flows and scheduled exchanges\
> \- Wind and solar forecasts\
> \
> \*\*Supported Variables:\*\*\
> \- \`day\_ahead\_prices\`: Day-ahead electricity market prices\
> \- \`imbalance\_prices\`: Imbalance settlement prices\
> \- \`load\_actual\`: Actual total load\
> \- \`load\_forecast\_da\`: Day-ahead load forecast\
> \- \`generation\_actual\`: Actual power generation by source type\
> \- \`generation\_forecast\_da\`: Day-ahead generation forecast\
> \- \`crossborder\_flows\`: Physical cross-border power flows\
> \- \`wind\_solar\_forecast\_da\`: Day-ahead wind/solar forecast\
> \- And more...\
> \
> \*\*Response Formats:\*\*\
> \- \`json\`: Columnar JSON format \`{column: \[values], ...}\`\
> \- \`arrow\`: Apache Arrow IPC stream for efficient processing\
> \
> \*\*Authentication\*\*: Requires API key.\
> \
> For more information, see \[docs.jua.ai]\(<https://docs.jua.ai>).

```json
{"openapi":"3.1.0","info":{"title":"Jua Query Engine API","version":"0.1.0"},"tags":[{"name":"entsoe","description":"Query ENTSOE energy market data including prices, load, and generation."}],"security":[{"HTTPBearer":[]}],"paths":{"/v1/entsoe/data":{"post":{"tags":["entsoe"],"summary":"Query ENTSOE timeseries data","description":"Query ENTSOE energy market timeseries data including:\n- Day-ahead and imbalance prices\n- Load and generation actuals and forecasts\n- Cross-border flows and scheduled exchanges\n- Wind and solar forecasts\n\n**Supported Variables:**\n- `day_ahead_prices`: Day-ahead electricity market prices\n- `imbalance_prices`: Imbalance settlement prices\n- `load_actual`: Actual total load\n- `load_forecast_da`: Day-ahead load forecast\n- `generation_actual`: Actual power generation by source type\n- `generation_forecast_da`: Day-ahead generation forecast\n- `crossborder_flows`: Physical cross-border power flows\n- `wind_solar_forecast_da`: Day-ahead wind/solar forecast\n- And more...\n\n**Response Formats:**\n- `json`: Columnar JSON format `{column: [values], ...}`\n- `arrow`: Apache Arrow IPC stream for efficient processing\n\n**Authentication**: Requires API key.\n\nFor more information, see [docs.jua.ai](https://docs.jua.ai).","operationId":"post_entsoe_data_v1_entsoe_data_post","parameters":[{"name":"format","in":"query","required":false,"schema":{"enum":["json","arrow"],"type":"string","description":"Response format: 'json' for columnar JSON or 'arrow' for Apache Arrow format","default":"json","title":"Format"},"description":"Response format: 'json' for columnar JSON or 'arrow' for Apache Arrow format"},{"name":"include_units","in":"query","required":false,"schema":{"type":"boolean","description":"When true, JSON responses are wrapped in {data, units}. Units are always sent via X-Variable-Units header regardless.","default":false,"title":"Include Units"},"description":"When true, JSON responses are wrapped in {data, units}. Units are always sent via X-Variable-Units header regardless."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntsoeTimeseriesQuery"}}}},"responses":{"200":{"description":"Successfully retrieved ENTSOE data","content":{"application/json":{"schema":{}},"application/vnd.apache.arrow.stream":{"description":"Apache Arrow IPC stream format"}}},"400":{"description":"Invalid query parameters"},"401":{"description":"Authentication required"},"403":{"description":"Insufficient permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"EntsoeTimeseriesQuery":{"properties":{"variables":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeVariable"},"type":"array"},{"type":"null"}],"title":"Variables","description":"List of ENTSOE variable types to query. If not set, returns all variables."},"zone_keys":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeZone"},"type":"array"},{"type":"null"}],"title":"Zone Keys","description":"List of zone codes (e.g., ['DE_LU', 'FR', 'NO_1'])"},"zone_from":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeZone"},"type":"array"},{"type":"null"}],"title":"Zone From","description":"Source zones for cross-border queries (e.g., FR)"},"zone_to":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeZone"},"type":"array"},{"type":"null"}],"title":"Zone To","description":"Destination zones for cross-border queries (e.g., DE_LU)"},"psr_types":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoePsrType"},"type":"array"},{"type":"null"}],"title":"Psr Types","description":"List of PSR types to filter generation data"},"other_types":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeOtherType"},"type":"array"},{"type":"null"}],"title":"Other Types","description":"Other types filter (e.g., 'Long', 'Short' for imbalance)"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time for the query (inclusive)"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time","description":"End time for the query (exclusive). If None, no upper bound is applied (useful for day-ahead forecasts)"},"aggregation":{"$ref":"#/components/schemas/jua_query_v2__entsoe__query__TemporalAggregation","description":"Temporal aggregation to apply","default":"none"},"include_metadata":{"type":"boolean","title":"Include Metadata","description":"Include metadata column in response","default":false},"time_zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Zone","description":"IANA time zone name for time formatting (e.g., 'Europe/Berlin', 'America/New_York'). Defaults to UTC"},"order_by":{"anyOf":[{"items":{"$ref":"#/components/schemas/OrderByItem_str_"},"type":"array"},{"type":"null"}],"title":"Order By","description":"Columns to order by. Supports direction suffix: 'time__desc' for descending, 'time__asc' for ascending (default). Can also use object format: {'field': 'time', 'direction': 'desc'}"},"pagination":{"anyOf":[{"$ref":"#/components/schemas/Pagination"},{"type":"null"}],"description":"Pagination parameters"},"as_of":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of","description":"Point-in-time replay. If set, the query only returns rows whose estimated ENTSO-E publication time is <= this timestamp. Used by /simulate/entsoe to backtest against the data state at as_of."}},"type":"object","required":["start_time"],"title":"EntsoeTimeseriesQuery","description":"Query parameters for ENTSOE timeseries data.\n\nSupports filtering by:\n- variables: List of ENTSOE variable types (optional, returns all if not set)\n- zone_keys: List of zone codes for zone-based data\n- zone_from/zone_to: For cross-border flow queries\n- psr_types: For generation data by source type\n- start_time: Start of time range (required)\n- end_time: End of time range (optional - if None, no upper bound applied)\n\nNote: end_time can be None to include all future data, which is useful\nfor day-ahead forecasts that extend into tomorrow."},"EntsoeVariable":{"type":"string","enum":["crossborder_flows","day_ahead_prices","generation_actual","generation_forecast_da","imbalance_prices","imbalance_volumes","load_actual","load_forecast_da","net_position_da","net_position_total","ntc_dayahead","ntc_weekahead","ntc_monthahead","ntc_yearahead","scheduled_exchanges_da","scheduled_exchanges_total","total_available_hydro_capacity","wind_solar_forecast_da","wind_solar_forecast_intraday"],"title":"EntsoeVariable","description":"ENTSOE timeseries variable types."},"EntsoeZone":{"type":"string","enum":["AL","AT","BA","BE","BG","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GE","GR","HR","HU","IE","IT","LT","LU","LV","MD","ME","MK","MT","NL","NO","PL","PT","RO","RS","RU","SE","SI","SK","TR","UA","UK","XK","DE_LU","DE_AT_LU","DE_50HZ","DE_AMPRION","DE_TENNET","DE_TRANSNET","DK_1","DK_2","DK_CA","IT_CALA","IT_CNOR","IT_CSUD","IT_NORD","IT_SARD","IT_SICI","IT_SUD","IT_SACO_AC","IT_SACO_DC","NO_1","NO_2","NO_3","NO_4","NO_5","NO_2_NSL","SE_1","SE_2","SE_3","SE_4","IE_SEM","GB_NIR","LU_BZN","UA_IPS"],"title":"EntsoeZone","description":"ENTSOE bidding zones and control areas.\n\nBased on ENTSO-E Transparency Platform zone codes."},"EntsoePsrType":{"type":"string","enum":["Biomass","Energy storage","Fossil Brown coal/Lignite","Fossil Coal-derived gas","Fossil Gas","Fossil Hard coal","Fossil Oil","Fossil Oil shale","Fossil Peat","Geothermal","Hydro Pumped Storage","Hydro Pumped Storage Consumption","Hydro Pumped Storage Generation","Hydro Run-of-river and poundage","Hydro Water Reservoir","Marine","Nuclear","Other","Other renewable","Solar","Waste","Wind Offshore","Wind Onshore"],"title":"EntsoePsrType","description":"ENTSOE Production/Generation Source (PSR) types."},"EntsoeOtherType":{"type":"string","enum":["Long","Short"],"title":"EntsoeOtherType","description":"ENTSOE Other Type (for imbalance data)."},"jua_query_v2__entsoe__query__TemporalAggregation":{"type":"string","enum":["none","hourly","daily"],"title":"TemporalAggregation","description":"Temporal aggregation options for ENTSOE queries."},"OrderByItem_str_":{"properties":{"field":{"type":"string","title":"Field","description":"Field to sort by"},"direction":{"$ref":"#/components/schemas/SortDirection","description":"Sort direction: 'asc' (default) or 'desc'","default":"asc"},"aggregation":{"anyOf":[{"type":"string","enum":["avg","std","min","max","sum","count","median","quantile","argmin","argmax"]},{"type":"null"}],"title":"Aggregation","description":"Aggregation function when ordering by variable"}},"type":"object","required":["field"],"title":"OrderByItem[str]"},"SortDirection":{"type":"string","enum":["asc","desc"],"title":"SortDirection","description":"Sort direction for ORDER BY clauses."},"Pagination":{"properties":{"limit":{"type":"integer","title":"Limit","default":100},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"Pagination"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Query ENTSOE data in pivoted wide-column format

> Returns ENTSO-E generation+load data pivoted into one column per PSR type, with optional derived columns (wind\_total, renewables\_total, residual\_load) and linear interpolation — all computed inside ClickHouse.

```json
{"openapi":"3.1.0","info":{"title":"Jua Query Engine API","version":"0.1.0"},"tags":[{"name":"entsoe","description":"Query ENTSOE energy market data including prices, load, and generation."}],"security":[{"HTTPBearer":[]}],"paths":{"/v1/entsoe/pivoted":{"post":{"tags":["entsoe"],"summary":"Query ENTSOE data in pivoted wide-column format","description":"Returns ENTSO-E generation+load data pivoted into one column per PSR type, with optional derived columns (wind_total, renewables_total, residual_load) and linear interpolation — all computed inside ClickHouse.","operationId":"post_entsoe_pivoted_v1_entsoe_pivoted_post","parameters":[{"name":"format","in":"query","required":false,"schema":{"enum":["json","arrow"],"type":"string","description":"Response format: 'json' or 'arrow'","default":"json","title":"Format"},"description":"Response format: 'json' or 'arrow'"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntsoePivotedQuery"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"EntsoePivotedQuery":{"properties":{"zone_keys":{"items":{"$ref":"#/components/schemas/EntsoeZone"},"type":"array","title":"Zone Keys","description":"Zone codes to query"},"psr_types":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoePsrType"},"type":"array"},{"type":"null"}],"title":"Psr Types","description":"PSR types to pivot into columns"},"generation_variable":{"anyOf":[{"$ref":"#/components/schemas/EntsoeVariable"},{"type":"null"}],"description":"ENTSO-E variable for generation data"},"load_variable":{"anyOf":[{"$ref":"#/components/schemas/EntsoeVariable"},{"type":"null"}],"description":"ENTSO-E variable for load data"},"psr_column_map":{"additionalProperties":{"type":"string"},"type":"object","title":"Psr Column Map","description":"Maps PSR type name to output column name"},"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start time (inclusive)"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time","description":"End time (exclusive)"},"temporal_resolution_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Temporal Resolution Minutes","description":"Target resolution; None to skip interpolation","default":15},"model_label":{"type":"string","title":"Model Label","description":"Value for the 'model' column in output rows","default":"ENTSO-E Actual"},"needed_derived_vars":{"anyOf":[{"items":{"type":"string"},"type":"array","uniqueItems":true},{"type":"null"}],"title":"Needed Derived Vars","description":"Set of derived column names to attempt to compute (wind_total_mw / renewables_total_mw / residual_load_mw). compute_derived_power_columns silently skips any whose input columns aren't in the frame, so callers don't have to mirror the feasibility logic. None means no derivation."},"load_col":{"type":"string","title":"Load Col","default":"load_mw"},"zone_key_remap":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Zone Key Remap","description":"Remap zone_key values in output"},"as_of":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of","description":"Point-in-time replay. If set, only rows whose estimated ENTSO-E publication time is <= as_of contribute to the pivot."}},"type":"object","required":["zone_keys","start_time"],"title":"EntsoePivotedQuery","description":"Query that returns ENTSO-E data pivoted into wide-column format.\n\nPivots PSR-based generation data into per-source columns, optionally\njoins load, and interpolates to a regular time grid in ClickHouse.\nDerived columns (wind_total / renewables_total / residual_load) are\ncomputed post-query in `query_pivoted_data` via the shared\n`compute_derived_power_columns` helper — same code path as UK power\nand the api-server pivoted view, so null-propagation semantics match\neverywhere. Callers declare *intent* via ``needed_derived_vars``\n(the set of derived column names they want); feasibility (does this\nzone have onshore+offshore? does the frame have load?) is decided by\nthe derivation helper itself, not by the call site."},"EntsoeZone":{"type":"string","enum":["AL","AT","BA","BE","BG","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GE","GR","HR","HU","IE","IT","LT","LU","LV","MD","ME","MK","MT","NL","NO","PL","PT","RO","RS","RU","SE","SI","SK","TR","UA","UK","XK","DE_LU","DE_AT_LU","DE_50HZ","DE_AMPRION","DE_TENNET","DE_TRANSNET","DK_1","DK_2","DK_CA","IT_CALA","IT_CNOR","IT_CSUD","IT_NORD","IT_SARD","IT_SICI","IT_SUD","IT_SACO_AC","IT_SACO_DC","NO_1","NO_2","NO_3","NO_4","NO_5","NO_2_NSL","SE_1","SE_2","SE_3","SE_4","IE_SEM","GB_NIR","LU_BZN","UA_IPS"],"title":"EntsoeZone","description":"ENTSOE bidding zones and control areas.\n\nBased on ENTSO-E Transparency Platform zone codes."},"EntsoePsrType":{"type":"string","enum":["Biomass","Energy storage","Fossil Brown coal/Lignite","Fossil Coal-derived gas","Fossil Gas","Fossil Hard coal","Fossil Oil","Fossil Oil shale","Fossil Peat","Geothermal","Hydro Pumped Storage","Hydro Pumped Storage Consumption","Hydro Pumped Storage Generation","Hydro Run-of-river and poundage","Hydro Water Reservoir","Marine","Nuclear","Other","Other renewable","Solar","Waste","Wind Offshore","Wind Onshore"],"title":"EntsoePsrType","description":"ENTSOE Production/Generation Source (PSR) types."},"EntsoeVariable":{"type":"string","enum":["crossborder_flows","day_ahead_prices","generation_actual","generation_forecast_da","imbalance_prices","imbalance_volumes","load_actual","load_forecast_da","net_position_da","net_position_total","ntc_dayahead","ntc_weekahead","ntc_monthahead","ntc_yearahead","scheduled_exchanges_da","scheduled_exchanges_total","total_available_hydro_capacity","wind_solar_forecast_da","wind_solar_forecast_intraday"],"title":"EntsoeVariable","description":"ENTSOE timeseries variable types."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## Query ENTSOE outages data

> Query ENTSOE infrastructure outages (generation units and transmission lines).\
> \
> \*\*Features:\*\*\
> \- \*\*Source Types:\*\* Generation units (power plants) or Transmission lines\
> \- \*\*Time Filtering:\*\* Real-time snapshots (active\_at) or schedule ranges (start\_from/to)\
> \- \*\*Filtering:\*\* Filter by zone, plant type, business type (planned/forced)\
> \- \*\*Aggregation:\*\* Optional capacity aggregation summaries\
> \
> \*\*Authentication\*\*: Requires API key.

```json
{"openapi":"3.1.0","info":{"title":"Jua Query Engine API","version":"0.1.0"},"tags":[{"name":"entsoe","description":"Query ENTSOE energy market data including prices, load, and generation."}],"security":[{"HTTPBearer":[]}],"paths":{"/v1/entsoe/outages":{"post":{"tags":["entsoe"],"summary":"Query ENTSOE outages data","description":"Query ENTSOE infrastructure outages (generation units and transmission lines).\n\n**Features:**\n- **Source Types:** Generation units (power plants) or Transmission lines\n- **Time Filtering:** Real-time snapshots (active_at) or schedule ranges (start_from/to)\n- **Filtering:** Filter by zone, plant type, business type (planned/forced)\n- **Aggregation:** Optional capacity aggregation summaries\n\n**Authentication**: Requires API key.","operationId":"post_entsoe_outages_v1_entsoe_outages_post","parameters":[{"name":"format","in":"query","required":false,"schema":{"enum":["json","arrow"],"type":"string","description":"Response format: 'json' for columnar JSON or 'arrow' for Apache Arrow format","default":"json","title":"Format"},"description":"Response format: 'json' for columnar JSON or 'arrow' for Apache Arrow format"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntsoeOutagesQuery"}}}},"responses":{"200":{"description":"Successfully retrieved outages data","content":{"application/json":{"schema":{}},"application/vnd.apache.arrow.stream":{"description":"Apache Arrow IPC stream format"}}},"400":{"description":"Invalid query parameters"},"401":{"description":"Authentication required"},"403":{"description":"Insufficient permissions"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"EntsoeOutagesQuery":{"properties":{"source_type":{"anyOf":[{"$ref":"#/components/schemas/EntsoeOutageSourceType"},{"type":"null"}],"description":"Filter by source type (generation_unit or transmission)"},"biddingzone_domain":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeZone"},"type":"array"},{"type":"null"}],"title":"Biddingzone Domain","description":"List of bidding zones (for generation outages)"},"in_domain":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeZone"},"type":"array"},{"type":"null"}],"title":"In Domain","description":"List of from-zones (for transmission outages)"},"out_domain":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeZone"},"type":"array"},{"type":"null"}],"title":"Out Domain","description":"List of to-zones (for transmission outages)"},"active_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Active At","description":"Get outages active at this specific time (start <= time < end)"},"start_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start From","description":"Filter by start time >= this value"},"start_to":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start To","description":"Filter by start time < this value"},"plant_types":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoePsrType"},"type":"array"},{"type":"null"}],"title":"Plant Types","description":"Filter by plant type (generation only)"},"business_types":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntsoeBusinessType"},"type":"array"},{"type":"null"}],"title":"Business Types","description":"Filter by business type (reason)"},"exclude_cancelled":{"type":"boolean","title":"Exclude Cancelled","description":"Exclude cancelled outages (docstatus in ['A09', 'Cancelled'])","default":true},"order_by":{"anyOf":[{"items":{"$ref":"#/components/schemas/OrderByItem_str_"},"type":"array"},{"type":"null"}],"title":"Order By","description":"Columns to order by. Supports direction suffix: 'start_time__desc' for descending, 'start_time__asc' for ascending. Object format: {'field': 'start_time', 'direction': 'desc'}"},"pagination":{"anyOf":[{"$ref":"#/components/schemas/Pagination"},{"type":"null"}],"description":"Pagination parameters"},"as_of":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of","description":"Point-in-time replay. If set, only outage records whose TSO publication time (created_doc_time) is <= this timestamp are returned. Used by /simulate/entsoe/outages."}},"type":"object","title":"EntsoeOutagesQuery","description":"Query parameters for ENTSOE outages data.\n\nSupports filtering by:\n- source_type: Generation vs Transmission\n- zones: biddingzone_domain (gen) or in_domain/out_domain (trans)\n- time: active_at, or start_from/start_to\n- attributes: plant_type, business_type, status"},"EntsoeOutageSourceType":{"type":"string","enum":["generation_unit","transmission"],"title":"EntsoeOutageSourceType","description":"Outage source type discriminator."},"EntsoeZone":{"type":"string","enum":["AL","AT","BA","BE","BG","CH","CY","CZ","DE","DK","EE","ES","FI","FR","GB","GE","GR","HR","HU","IE","IT","LT","LU","LV","MD","ME","MK","MT","NL","NO","PL","PT","RO","RS","RU","SE","SI","SK","TR","UA","UK","XK","DE_LU","DE_AT_LU","DE_50HZ","DE_AMPRION","DE_TENNET","DE_TRANSNET","DK_1","DK_2","DK_CA","IT_CALA","IT_CNOR","IT_CSUD","IT_NORD","IT_SARD","IT_SICI","IT_SUD","IT_SACO_AC","IT_SACO_DC","NO_1","NO_2","NO_3","NO_4","NO_5","NO_2_NSL","SE_1","SE_2","SE_3","SE_4","IE_SEM","GB_NIR","LU_BZN","UA_IPS"],"title":"EntsoeZone","description":"ENTSOE bidding zones and control areas.\n\nBased on ENTSO-E Transparency Platform zone codes."},"EntsoePsrType":{"type":"string","enum":["Biomass","Energy storage","Fossil Brown coal/Lignite","Fossil Coal-derived gas","Fossil Gas","Fossil Hard coal","Fossil Oil","Fossil Oil shale","Fossil Peat","Geothermal","Hydro Pumped Storage","Hydro Pumped Storage Consumption","Hydro Pumped Storage Generation","Hydro Run-of-river and poundage","Hydro Water Reservoir","Marine","Nuclear","Other","Other renewable","Solar","Waste","Wind Offshore","Wind Onshore"],"title":"EntsoePsrType","description":"ENTSOE Production/Generation Source (PSR) types."},"EntsoeBusinessType":{"type":"string","enum":["Planned maintenance","Unplanned outage"],"title":"EntsoeBusinessType","description":"Business type for outages (reason).\n\nNote: Values match the human-readable strings stored in ClickHouse,\nnot the raw ENTSOE codes (A53, A54)."},"OrderByItem_str_":{"properties":{"field":{"type":"string","title":"Field","description":"Field to sort by"},"direction":{"$ref":"#/components/schemas/SortDirection","description":"Sort direction: 'asc' (default) or 'desc'","default":"asc"},"aggregation":{"anyOf":[{"type":"string","enum":["avg","std","min","max","sum","count","median","quantile","argmin","argmax"]},{"type":"null"}],"title":"Aggregation","description":"Aggregation function when ordering by variable"}},"type":"object","required":["field"],"title":"OrderByItem[str]"},"SortDirection":{"type":"string","enum":["asc","desc"],"title":"SortDirection","description":"Sort direction for ORDER BY clauses."},"Pagination":{"properties":{"limit":{"type":"integer","title":"Limit","default":100},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","title":"Pagination"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## List available ENTSOE variables

> Get a list of available ENTSOE variable types with metadata including:\
> \- Variable name\
> \- Description\
> \- Unit of measurement\
> \- Whether variable uses zone\_key, zone\_from/zone\_to, or psr\_type filters\
> \
> \*\*Authentication\*\*: Requires API key.

```json
{"openapi":"3.1.0","info":{"title":"Jua Query Engine API","version":"0.1.0"},"tags":[{"name":"entsoe","description":"Query ENTSOE energy market data including prices, load, and generation."}],"security":[{"HTTPBearer":[]}],"paths":{"/v1/entsoe/variables":{"get":{"tags":["entsoe"],"summary":"List available ENTSOE variables","description":"Get a list of available ENTSOE variable types with metadata including:\n- Variable name\n- Description\n- Unit of measurement\n- Whether variable uses zone_key, zone_from/zone_to, or psr_type filters\n\n**Authentication**: Requires API key.","operationId":"get_entsoe_variables_v1_entsoe_variables_get","parameters":[{"name":"zone_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional zone to filter variables by","title":"Zone Key"},"description":"Optional zone to filter variables by"}],"responses":{"200":{"description":"Successfully retrieved variable list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/jua_query_v2__entsoe__types__AvailableVariablesResult"}}}},"401":{"description":"Authentication required"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"jua_query_v2__entsoe__types__AvailableVariablesResult":{"properties":{"variables":{"items":{"$ref":"#/components/schemas/EntsoeVariableInfo"},"type":"array","title":"Variables"}},"type":"object","required":["variables"],"title":"AvailableVariablesResult","description":"Result for available variables query."},"EntsoeVariableInfo":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"unit":{"type":"string","title":"Unit"},"uses_zone_key":{"type":"boolean","title":"Uses Zone Key","default":true},"uses_zone_from_to":{"type":"boolean","title":"Uses Zone From To","default":false},"uses_psr_type":{"type":"boolean","title":"Uses Psr Type","default":false},"zone_kind":{"$ref":"#/components/schemas/EntsoeZoneKind","default":"physical"}},"type":"object","required":["name","description","unit"],"title":"EntsoeVariableInfo","description":"Information about an ENTSOE variable."},"EntsoeZoneKind":{"type":"string","enum":["physical","bidding","cross_border"],"title":"EntsoeZoneKind","description":"Which ENTSOE zone concept a variable is published under.\n\nENTSOE publishes some data at the country / control-area level\n(generation, load, capacity) and other data at the bidding-zone\nlevel (prices, net positions, imbalance).  For most countries the\ncountry code IS the bidding-zone code, but not always: Ireland\npublishes gen/load under ``IE`` (the country) and day-ahead prices\nunder ``IE_SEM`` (the all-island Single Electricity Market bidding\nzone).  Luxembourg is similar (``LU`` vs ``LU_BZN``).\n\nCross-border variables (flows, NTC, scheduled exchanges) use\n``zone_from`` / ``zone_to`` instead of ``zone_key`` and are flagged\nseparately so callers know not to try resolving them against a\nphysical/bidding zone pair."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## List available ENTSOE zones

> Get a list of available zone codes (bidding zones, countries).\
> \
> Optionally filter by variable to see which zones have data for a specific variable.\
> \
> \*\*Authentication\*\*: Requires API key.

```json
{"openapi":"3.1.0","info":{"title":"Jua Query Engine API","version":"0.1.0"},"tags":[{"name":"entsoe","description":"Query ENTSOE energy market data including prices, load, and generation."}],"security":[{"HTTPBearer":[]}],"paths":{"/v1/entsoe/zones":{"get":{"tags":["entsoe"],"summary":"List available ENTSOE zones","description":"Get a list of available zone codes (bidding zones, countries).\n\nOptionally filter by variable to see which zones have data for a specific variable.\n\n**Authentication**: Requires API key.","operationId":"get_entsoe_zones_v1_entsoe_zones_get","parameters":[{"name":"variable","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EntsoeVariable"},{"type":"null"}],"description":"Optional variable to filter zones by","title":"Variable"},"description":"Optional variable to filter zones by"}],"responses":{"200":{"description":"Successfully retrieved zone list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableZonesResult"}}}},"401":{"description":"Authentication required"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"EntsoeVariable":{"type":"string","enum":["crossborder_flows","day_ahead_prices","generation_actual","generation_forecast_da","imbalance_prices","imbalance_volumes","load_actual","load_forecast_da","net_position_da","net_position_total","ntc_dayahead","ntc_weekahead","ntc_monthahead","ntc_yearahead","scheduled_exchanges_da","scheduled_exchanges_total","total_available_hydro_capacity","wind_solar_forecast_da","wind_solar_forecast_intraday"],"title":"EntsoeVariable","description":"ENTSOE timeseries variable types."},"AvailableZonesResult":{"properties":{"zones":{"items":{"type":"string"},"type":"array","title":"Zones"}},"type":"object","required":["zones"],"title":"AvailableZonesResult","description":"Result for available zones query."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## List available PSR types

> Get a list of available PSR (Production Source Type) codes for generation data.\
> \
> PSR types include:\
> \- Solar, Wind Onshore, Wind Offshore\
> \- Nuclear, Hydro (various types)\
> \- Fossil fuels (Gas, Coal, Oil, etc.)\
> \- Biomass, Geothermal, etc.\
> \
> \*\*Authentication\*\*: Requires API key.

```json
{"openapi":"3.1.0","info":{"title":"Jua Query Engine API","version":"0.1.0"},"tags":[{"name":"entsoe","description":"Query ENTSOE energy market data including prices, load, and generation."}],"security":[{"HTTPBearer":[]}],"paths":{"/v1/entsoe/psr-types":{"get":{"tags":["entsoe"],"summary":"List available PSR types","description":"Get a list of available PSR (Production Source Type) codes for generation data.\n\nPSR types include:\n- Solar, Wind Onshore, Wind Offshore\n- Nuclear, Hydro (various types)\n- Fossil fuels (Gas, Coal, Oil, etc.)\n- Biomass, Geothermal, etc.\n\n**Authentication**: Requires API key.","operationId":"get_entsoe_psr_types_v1_entsoe_psr_types_get","responses":{"200":{"description":"Successfully retrieved PSR type list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailablePsrTypesResult"}}}},"401":{"description":"Authentication required"}}}}},"components":{"schemas":{"AvailablePsrTypesResult":{"properties":{"psr_types":{"items":{"type":"string"},"type":"array","title":"Psr Types"}},"type":"object","required":["psr_types"],"title":"AvailablePsrTypesResult","description":"Result for available PSR types query."}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.jua.ai/api-v2/query-engine/open-api-reference/entsoe.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
