# 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"}},"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"}},"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"},"derive_wind_total":{"type":"boolean","title":"Derive Wind Total","default":false},"wind_onshore_col":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wind Onshore Col"},"wind_offshore_col":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wind Offshore Col"},"derive_renewables_total":{"type":"boolean","title":"Derive Renewables Total","default":false},"solar_col":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solar Col"},"derive_residual_load":{"type":"boolean","title":"Derive Residual Load","default":false},"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"}},"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, derives wind_total / renewables_total / residual_load,\nand interpolates to a regular time grid — all inside ClickHouse SQL."},"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"}},"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"}},"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"}},"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","responses":{"200":{"description":"Successfully retrieved variable list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/jua_query_v2__entsoe__types__AvailableVariablesResult"}}}},"401":{"description":"Authentication required"}}}}},"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}},"type":"object","required":["name","description","unit"],"title":"EntsoeVariableInfo","description":"Information about an ENTSOE variable."}}}}
```

## 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/jua_query_v2__power_forecast__types__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."},"jua_query_v2__power_forecast__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"}},"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/jua_query_v2__power_forecast__types__AvailablePsrTypesResult"}}}},"401":{"description":"Authentication required"}}}}},"components":{"schemas":{"jua_query_v2__power_forecast__types__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."}}}}
```
