A Python client to fetch, process, and analyze Nordpool electricity market data by interacting with the Nordpool Data Portal API.
The Nordpool Client provides an easy-to-use interface for retrieving various types of Nordpool electricity market data, including:
- Auction Data: Retrieve auction configurations and latest auction availability.
- Day-Ahead Prices: Get day-ahead prices for multiple delivery areas.
- Price Histories & Aggregated Data: Fetch historical price data and aggregated price statistics.
- Intraday Market Statistics: Access hourly and daily intraday market statistics.
- EPAD Data: Retrieve Elspot Price Auction Data auction results and bid curves.
- System Prices, Flows, Consumption, & Production: Query system price data, physical flows, consumption, and production data.
- This project is not officially affiliated with or endorsed by Nordpool Group. It is an independent client implementation for accessing publicly available API endpoints.
- The use of Nordpool data may be subject to Nordpool's terms of service and data usage policies. Users of this library are responsible for ensuring their usage complies with Nordpool's terms.
- This client accesses a Nordpool Data API, and usage may be subject to rate limiting or access restrictions imposed by Nordpool.
- Data retrieved through this client should be used in accordance with applicable laws and regulations regarding market data usage.
- The library author is not responsible for any misuse of the data or violations of Nordpool's terms of service.
- Users should review Nordpool's
robots.txtfile to understand which parts of their website are permitted for automated access.
nordpool-client/
├── pyproject.toml
├── README.md
└── src/
└── nordpool/
├── __init__.py # Contains: from .client import NordpoolClient
└── client.py # Contains the NordpoolClient class implementation
This project requires Python 3.7 or later.
Install directly from GitHub using pip:
pip install git+https://github.com/alexmgl/nordpool_client.gitOr clone the repository and install locally:
git clone https://github.com/alexmgl/nordpool_client.git
cd nordpool_client
pip install .If you're using pip:
pip install -r requirements.txtOr if you use Poetry:
poetry installBelow is an example of how to use the client:
from nordpool import NordpoolClient
# Instantiate the client
client = NordpoolClient()
# Retrieve N2EX day-ahead prices for United Kingdom (UK) and Norway (NO2)
prices = client.get_day_ahead_prices(query_date="2025-03-02",
market="N2EX_DayAhead",
delivery_areas=["NO2", "UK"],
currency="EUR")
print(prices)The NordpoolClient class provides several methods to access data endpoints. Some key methods include:
This data is very important for guiding which combinations of markets, delivery areas and currencies can be requested from the api.
get_auction_data_availability(save=False, **kwargs)get_auction_data_availability_latest(save=False, **kwargs)
get_day_ahead_prices(query_date, delivery_areas, currency="EUR", market="DayAhead", **kwargs)get_single_area_price_history(query_date, delivery_area, currency="EUR", market="DayAhead", **kwargs)
get_aggregate_prices(year, delivery_areas, currency="EUR", market="DayAhead", **kwargs)get_annual_aggregate_prices(delivery_areas, currency="EUR", market="DayAhead", **kwargs)
get_system_price(query_date, currency="EUR", **kwargs)get_intraday_market_statistics(query_date, delivery_area, **kwargs)get_intraday_hourly_statistics(query_date, delivery_area, **kwargs)
get_epad_results(query_date, **kwargs)get_epad_yearly_results(year, **kwargs)get_epad_bid_curves(query_date, **kwargs)get_epad_yearly_bid_curves(year, **kwargs)
get_day_ahead_volumes(query_date, delivery_areas, market="DayAhead", **kwargs)get_day_ahead_capacities(query_date, delivery_area, market="DayAhead", **kwargs)get_day_ahead_flow(query_date, delivery_area, market="DayAhead", **kwargs)get_aggregated_bid_curves(query_date, market_code, cluster_name, **kwargs)get_scheduled_physical_flows(query_date, delivery_area, market="DayAhead", **kwargs)get_flow_based_constraints(query_date, flow_based_domain, market="DayAhead", **kwargs)get_manual_frequency_restoration_reserve(query_date, delivery_areas, **kwargs)get_consumption(query_date, delivery_areas, locations=None, **kwargs)get_consumption_forecast(query_date, delivery_areas, locations=None, **kwargs)get_production(query_date, delivery_area, location="", **kwargs)get_physical_flows(query_date, delivery_area, **kwargs)
For full details on each method, please refer to the inline documentation within the source code (client.py).
The client is configured to use the Nordpool Data Portal API endpoint:
https://dataportal-api.nordpoolgroup.com/api
No additional API key is required, but you must have an active internet connection.
Contributions are welcome. Feel free to fork the repository, submit issues, and create pull requests.
This project is licensed under the MIT License.