Polish power data comes from PSE through one open REST API at api.raporty.pse.pl: no key, JSON responses, OData-style filters. The 2024 balancing market reform moved settlement from hourly to 15 minutes, changed the imbalance pricing model and moved reporting from the old pse.pl pages to raporty.pse.pl, so most guides and client libraries written before 2024 point at endpoints that no longer apply.
Poland introduced a reformed balancing market in 2024: quarter-hour settlement, a new pricing model and, with it, an entirely new reporting API. Most of what you find online predates it and is wrong. Poland rebuilt its balancing market, and the data changed with it.
PSE moved its reports to a single REST endpoint at api.raporty.pse.pl. The Polish word raporty in the hostname is not decoration — the old CSV report names carried over into the new API paths, so knowing the report you want is half the query.
The same guide in Polish, with the PSE report names left in the original: Dane rynku energii: API PSE i raporty po reformie 2024.
Poland moved to a reformed balancing market that changed three things a data consumer cares about:
pse.pl/dane-systemowe pages to the new raporty.pse.pl portal with a documented API at api.raporty.pse.pl. A refreshed version became the only one on 15 June 2025, and the v1 API addresses were switched off at the end of 2025.The reporting API is open, needs no key, speaks JSON and follows an OData-like filter syntax. Each report is a named collection.
# documentation of all reports (opens in a browser)
GET https://api.raporty.pse.pl/
# one report, filtered by business date
GET https://api.raporty.pse.pl/api/his-wlk-cal
?$filter=business_date eq '2026-09-15'
# paging: follow nextLink ($after is a cursor, $skip returns HTTP 400)
GET https://api.raporty.pse.pl/api/pk5l-wp?$first=100
GET {nextLink from the previous response}$filter with eq, ge, le — quote dates as strings.nextLink with an $after token. $skip is rejected with HTTP 400. A single day of a quarter-hourly report (96 rows) comes back in one call.| Data | Notes |
|---|---|
| System demand and generation | Quarter-hourly, by category of generating unit, plus wind and solar. For a hard coal versus lignite split use ENTSO-E generation per production type (B05 hard coal, B02 lignite), which carries it for every zone. |
| Balancing market prices (CRO) | The imbalance price per settlement period under the reformed model. |
| Cross-border exchange | Physical flows and allocations on each interconnector. |
| Unit-level generation | For units participating in the balancing market. |
| Forecasts | Demand and renewable generation, published ahead of delivery. |
TGE, the Polish power exchange, holds the day-ahead and intraday market results. Its data is published on its own site and in reports rather than a developer API — for automated use, the ENTSO-E day-ahead price under 10YPL-AREA-----S is usually the practical route.
Quarter-hour settlement, a young API with moving schemas and reports named in Polish abbreviations — we have done this integration. If you need Polish market data you can trust, talk to us.
Get in touch