What you’ll need
- An access token. If this is your own backend acting on your organization’s data, Client Credentials is fine. If you’re rendering for a customer who consented through OAuth, use Authorization Code; see the HEMS guide for that flow.
- An active subscription on a plan that exposes price data.
1. Fetch the price time series
Today + tomorrow is the most useful default range. Tomorrow’s prices appear once the day-ahead auction clears in the early afternoon, after which the full next 24 hours are available at once.price is cents per kWh, all-in: it already includes taxes, levies, grid fees, and your plan’s margins. You don’t have to do any further math to show “what the customer actually pays.”
Intervals are 15 minutes long. The EPEX day-ahead auction switched to
quarter-hourly products on 1 October 2025, so that’s the native resolution of
the underlying market and what we expose. See Price time
series for the full schema.
2. Highlight cheap and expensive intervals
A flat list of numbers isn’t useful. The cheapest move: bucket each interval relative to the day’s range and color them.3. Render the chart
Any charting library works. With Recharts:4. Refresh sensibly
You don’t need a websocket and you don’t need a polling loop. The day-ahead auction publishes the full next 24 hours once a day, in the early afternoon, and those prices are final. A reasonable refresh policy:- Fetch once per day, after the auction clears.
- Re-fetch on demand if your UI is opened and you don’t yet have tomorrow’s prices.
- Invalidate explicitly when you receive a
subscription.activatedorsubscription.endedwebhook; those flip whether prices are even available.
What’s next
Connect a HEMS
Don’t just display prices: shift the customer’s flexible loads against them.
Show invoices
Pair your price chart with monthly billing summaries.
Subscription state
React to lifecycle changes that affect price availability.
API reference
All query parameters and edge cases for the price endpoint.