📈 Battery revenue with our forecast simulated:See tomorrow’s forecast →
progrunners / Polish market data

Poland rebuilt its market — and its data

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.

· Written for developers integrating Polish market data after the 2024 balancing market reform. Verified September 2026.
On this page
  1. api.raporty.pse.pl
  2. The 2024 reform changed the questions
  3. The PSE API
  4. What you can get
  5. Practical notes

api.raporty.pse.pl

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.

The 2024 reform changed the questions

Poland moved to a reformed balancing market that changed three things a data consumer cares about:

Anything written before 2024 is a trap. Blog posts, Stack Overflow answers and half the client libraries still point at the old endpoints and assume hourly data. Check the date on everything you read about the Polish market, including this page.

The PSE API

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}

What you can get

DataNotes
System demand and generationQuarter-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 exchangePhysical flows and allocations on each interconnector.
Unit-level generationFor units participating in the balancing market.
ForecastsDemand 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.

Practical notes

  1. Times are local Warsaw time in most reports, with a business date field that is not a timestamp. Convert explicitly and handle the two clock-change days, when a business day has 92 or 100 quarter-hours instead of 96.
  2. Coal detail matters most here. If you are modelling emissions or marginal cost in Poland, the hard coal versus lignite split matters. It is available from ENTSO-E (B05 and B02) for Poland as for every other zone, not only from PSE.
  3. The API is young. Report names and fields have changed since launch. Pin your parser, validate the schema on each run and alert on unexpected columns rather than silently dropping them.
  4. Cross-check with ENTSO-E. Poland publishes there too, and the differences between the two — resolution, timing, definitions — are informative rather than errors. See our ENTSO-E API guide.

Frequently asked questions

Does the PSE API need an API key?
No. api.raporty.pse.pl is open, returns JSON and needs no authentication. It replaced the older reporting pages after the 2024 market reform.
What resolution is Polish market data?
Quarter-hourly since the 2024 reform. Anything describing hourly Polish settlement is out of date.
How do I filter a PSE report by date?
Use the OData-style filter, for example $filter=business_date eq '2026-09-15'. Paging follows the nextLink cursor ($after); $skip returns HTTP 400.
Where do I get Polish day-ahead prices?
TGE holds the market results, but publishes them as reports rather than through a developer API. For automation, ENTSO-E day-ahead prices for bidding zone 10YPL-AREA-----S are the practical route.
Why are the report names unreadable?
They are Polish abbreviations with no English index. Fetch the root listing once and keep a local map from report name to meaning.

Polish data, after the reform

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