Normalized, typed client for Irish Single Electricity Market (SEM) data.
Project description
Irish Electricity Data
Typed, synchronous Python client for Irish electricity market data. Covers a number of different sources, the EirGrid smartgrid dashboard, SEMO and SEMOpx reports and returns normalised Pydantic models with tz-aware UTC timestamps throughout.
Data sources
| Provider | Upstream |
|---|---|
EirGridProvider |
smartgriddashboard.com |
SemoProvider |
reports.sem-o.com |
SemopxProvider |
reports.semopx.com |
EirGridProvider
| Method | Description | Resolution |
|---|---|---|
get_co2 |
CO2 emissions by region | 15 min |
get_frequency |
Grid frequency | 5 sec |
get_interconnector_flows |
EWIC, Greenlink, and Moyle flows (positive = import) | 15 min |
get_outturn |
Wind, solar, and demand actuals (filterable by variable and region) | 15 min |
get_outturn_demand |
Demand outturn shortcut | 15 min |
get_outturn_solar |
Solar outturn shortcut | 15 min |
get_outturn_wind |
Wind outturn shortcut | 15 min |
get_snsp |
System Non-Synchronous Penetration, all-island | 30 min |
SemoProvider
| Method | Description | Resolution |
|---|---|---|
get_5min_imbalance_prices |
Imbalance prices | 5 min |
get_auction_results |
Ex-ante auction results - prices/volumes/net position data | daily |
get_fpns |
Final physical notifications by trade date | 30 min |
get_imbalance_forecast |
Hourly forecast imbalance | hourly |
get_imbalance_price_supporting_info |
Supporting detail behind imbalance prices | 5 min |
get_lts_schedule |
LTS operational schedule | 30 min |
get_metered_generation |
D1 daily metered generation per unit | 30 min |
get_settlement_prices |
30-minute average imbalance settlement prices | 30 min |
get_wind_forecast |
Aggregated wind generation forecast | 15 min |
SemopxProvider
| Method | Description |
|---|---|
get_market_result |
Market result for a given auction (DA, IDA1, IDA2, IDA3) and delivery date — includes per-portfolio volumes and prices |
Installation
Requires Python 3.12+.
pip install irish-electricity-data
Quick start
All providers are available through a single MarketClient object or they can be instantiated directly. Use it as a context manager to ensure the underlying HTTP connection is closed cleanly.
EirGrid — outturn wind production
import datetime as dt
from irish_electricity_data import MarketClient
with MarketClient() as client:
start, end = dt.datetime(2025, 1, 15, 10), dt.datetime(2025, 1, 15, 15)
data = client.eirgrid.get_outturn_wind(start, end)
print(data.wind_ie)
SEMO — Imbalance settlement prices
import datetime as dt
from irish_electricity_data import MarketClient
with MarketClient() as client:
data = client.semo.get_settlement_prices(
start=dt.datetime(2026, 5, 20),
end=dt.datetime(2026, 5, 20, 10),
)
SEMOpx — Cleared positions per unit
import datetime as dt
from irish_electricity_data import Auction, MarketClient
with MarketClient() as client:
yesterday = dt.date.today() - dt.timedelta(days=1)
result = client.semopx.get_market_result(Auction.DAY_AHEAD, yesterday)
elem = result[0]
print(elem.unit_id)
print(elem.positions)
Design
- Typed: every method returns a Pydantic model or a list of models; no raw dicts or untyped tuples leak out of the library.
- Synchronous: built on
httpxwith HTTP/2. Async support is not planned. - No caching: the library is a thin, faithful transport layer. Caching, persistence, and scheduling are the caller's responsibility.
- Timestamps are UTC: upstream local or naive times are normalised at the parser boundary.
Contributing
See CONTRIBUTING.md.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file irish_electricity_data-0.1.0.tar.gz.
File metadata
- Download URL: irish_electricity_data-0.1.0.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e231a8c8f30499d241ae200eb0eccced8c72871843869daf8d7145e47e092d1
|
|
| MD5 |
24497909f57a0b5a006e4eb9ca2f53db
|
|
| BLAKE2b-256 |
643878f339fd66ff729f8faa5420460a30ded329664aaee83683233c23671c8c
|
File details
Details for the file irish_electricity_data-0.1.0-py3-none-any.whl.
File metadata
- Download URL: irish_electricity_data-0.1.0-py3-none-any.whl
- Upload date:
- Size: 30.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f5da2499d900f4a75bbb2fc155f4cf5fa7782071c8931295bf2976af346635b
|
|
| MD5 |
47933acb1fabaae97cddaf100cc262c1
|
|
| BLAKE2b-256 |
54454b8ec205928454863ad5f75290ba15a19a48b847fb27a39547a73bdf2483
|