progrunners.comenergy & technology
progrunners / Polish market data

Poland rebuilt its market — and its data

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.

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.

# list of available reports
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
GET https://api.raporty.pse.pl/api/pk5l-wp?$first=100&$skip=200

What you can get

DataNotes
System demand and generationQuarter-hourly, by source type, including coal split by hard coal and lignite — a breakdown most European TSOs do not publish.
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 is the Polish advantage. If you are modelling emissions or marginal cost in Poland, the hard coal versus lignite split matters and is available — most European markets only give you "fossil".
  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 uses $first and $skip.
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.

Explore the rest of the site

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