BYTETOOLS

aWATTar Market Data API

Free aWATTar API with no key: hourly German and Austrian day-ahead electricity market prices in EUR/MWh, published as soon as the exchange releases them. Tested example.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 21 Aug 2026

What is the aWATTar Market Data API?

aWATTar publishes day-ahead wholesale electricity market prices for Germany and Austria as a free JSON API with no key. Each entry covers one hourly delivery period with its market price in euros per megawatt hour.

Day-ahead electricity prices are set once a day in an auction and then apply hour by hour through the following delivery day. This endpoint exposes exactly that curve, unadorned and without a key, which is why it underpins a large number of home-automation setups that shift a dishwasher or a car charger into the cheapest hours.

Three details govern correctness. Timestamps are **milliseconds** since epoch, not seconds, and `end_timestamp` is exclusive. The unit is EUR per MWh, so reaching cents per kWh means dividing by ten — 167.83 EUR/MWh is 16.783 ct/kWh before any network fee, levy or tax, which typically more than doubles what a household actually pays. And prices can be **negative** when generation exceeds demand; that is a real market outcome, not a data error, so never clamp at zero.

Quick facts

Base URL
https://api.awattar.de/v1
Authentication
No key or registration. The Austrian market is served from api.awattar.at with an identical interface.
Rate limit
No published limit. Prices publish once a day, so caching costs you nothing.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the aWATTar Market Data API

Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. German hourly day-ahead electricity prices

GET https://api.awattar.de/v1/marketdata

curl
curl 'https://api.awattar.de/v1/marketdata'
JavaScript (fetch)
const res = await fetch("https://api.awattar.de/v1/marketdata");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.awattar.de/v1/marketdata", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "object": "list",
  "data": [
    {
      "start_timestamp": 1787295600000,
      "end_timestamp": 1787299200000,
      "marketprice": 167.83,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787299200000,
      "end_timestamp": 1787302800000,
      "marketprice": 149,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787302800000,
      "end_timestamp": 1787306400000,
      "marketprice": 138.88,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787306400000,
      "end_timestamp": 1787310000000,
      "marketprice": 135.21,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787310000000,
      "end_timestamp": 1787313600000,
      "marketprice": 140.5,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787313600000,
      "end_timestamp": 1787317200000,
      "marketprice": 141.17,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787317200000,
      "end_timestamp": 1787320800000,
      "marketprice": 149.75,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787320800000,
      "end_timestamp": 1787324400000,
      "marketprice": 166.49,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787324400000,
      "end_timestamp": 1787328000000,
      "marketprice": 186.21,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787328000000,
      "end_timestamp": 1787331600000,
      "marketprice": 196.99,
      "unit": "Eur/MWh"
    },
    {
      "start_timestamp": 1787331600000,
      "end_timestamp": 1787335200000,
      "marketprice": 204.42,
      "unit": "Eu

Parameters

ParameterTypeRequiredDescription
startqueryOptionalStart of the window as Unix milliseconds. Defaults to the current hour. 1787295600000
endqueryOptionalEnd of the window as Unix milliseconds, exclusive. 1787382000000

Response fields

objectstring
Always `list` — an envelope marker.
data[].start_timestampinteger
Start of the delivery hour in Unix **milliseconds**. Divide by 1000 for a seconds-based timestamp.
data[].end_timestampinteger
End of the delivery hour, exclusive.
data[].marketpricenumber
Wholesale price for that hour. Can be negative.
data[].unitstring
`Eur/MWh`. Divide by 10 for cents per kWh.

What you can build with the aWATTar Market Data API

  • Schedule an EV charge or heat pump into the cheapest hours of the day
  • Chart the day-ahead price curve for a German or Austrian delivery day
  • Estimate the wholesale component of an energy bill
  • Trigger a home automation rule when the price crosses a threshold

Common errors and how to fix them

Timestamps a thousand years out

Milliseconds were parsed as seconds.

Fix: Divide `start_timestamp` by 1000 before passing it to a seconds-based date function.

Empty data array

The window is beyond what the auction has published.

Fix: Next-day prices appear in the early afternoon CET. Before that, requesting tomorrow returns nothing.

Negative prices treated as errors

They are real market outcomes.

Fix: Negative wholesale prices occur when generation exceeds demand. Do not clamp them at zero — the sign carries information.

aWATTar Market Data API — frequently asked questions

Is the aWATTar price API free?

Yes. The market data endpoint needs no key or registration, and the Austrian equivalent at api.awattar.at behaves identically.

Are these the prices a household pays?

No. They are wholesale day-ahead market prices. A retail bill adds network charges, levies and taxes on top, which usually more than doubles the figure.

Why are some prices negative?

Because when generation exceeds demand the market clears below zero. It is a genuine outcome of the day-ahead auction and appears in the data as a negative `marketprice`.

When do tomorrow's prices become available?

After the day-ahead auction clears, typically in the early afternoon Central European Time. Requesting tomorrow before that returns an empty array.

Tools that pair with this API

Alternatives to aWATTar Market Data API

If aWATTar Market Data does not fit, these finance & crypto apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
CoinGeckoFree cryptocurrency price API covering 10,000+ coins. Live prices, market cap and volume in any currency, no API key on the public tier. Tested curl example.No keyYes19 Aug 2026
Binance Public APIBinance public market data API needs no API key: live ticker prices, order books, klines and 24h stats for every trading pair. Tested curl example and response.No keyYes19 Aug 2026
Coinbase Exchange RatesCoinbase public exchange rates API with no key: convert any cryptocurrency to 100+ fiat currencies in a single request. Tested curl example and live JSON.No keyYes19 Aug 2026
FrankfurterFree currency exchange rate API with no key, built on European Central Bank data. Latest and historical rates, time series and conversion. Tested curl example.No keyYes19 Aug 2026
AwesomeAPI EconomiaFree Brazilian currency API with no key: real-time bid and ask for USD-BRL, EUR-BRL, crypto and 150+ pairs, plus daily history. Tested curl example and live response.No keyYes21 Aug 2026
Bank of Canada ValetFree Bank of Canada Valet API with no key: official exchange rates, interest rates, bond yields and economic series with decades of history. Tested example.No keyYes20 Aug 2026
All Finance & Crypto APIs

aWATTar Market Data is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.