Market Forecast API
Take the Swiss signal into your own systems.
The same forecasts that run the Orvio platform, over a simple REST API. System-imbalance direction and the imbalance energy price, at 15-minute resolution, refreshed every 15 minutes.
What the feed gives you
Two forecasts, one feed
System-imbalance direction in MW and the imbalance energy price in EUR/MWh, aligned per quarter-hour.
15-minute resolution
Four horizons – T-0, T-15, T-1h and D-1 – each value carrying its forecast time and lead time.
Scored on realized data
Every forecast is benchmarked against realized Swiss control-area outcomes; the best-scoring forecast is the one that serves.
Built for machines
Stable JSON and CSV, typed error codes, and a request_id on every response.
How it works
Authentication
Every request carries a scoped API key in the Authorization header. Keys are issued per customer, with optional IP allowlisting and per-dataset entitlements.
Each lead-specific forecast is frozen for its target interval. The current operating table may select a newly available shorter lead without changing an existing lead-specific forecast.
Polling and time ranges
T-0, T-15 and T-1h publish every quarter-hour, at about :05, :20, :35 and :50 past the hour. Poll the operating table once a minute for the live view, or pass from and to for a fixed UTC window of up to 31 days as JSON or CSV.
Endpoints
- GET/v1/datasetsJSON catalog
- GET/v1/datasets/{dataset_id}JSON metadata
- GET/v1/datasets/{dataset_id}/recordsJSON records
- GET/v1/forecasts/latestJSON latest
- GET/v1/status/freshnessJSON status
- GET/v1/forecast-tableJSON table
- GET/v1/forecast-table.csvCSV table
- GET/v1/forecast-history.csvCSV evaluation history
- GET/v1/datasets/{dataset_id}/exports.csvCSV records
curl -sS "https://api.orvio.ch/v1/forecast-table?from=2026-06-22T00:00:00Z&to=2026-06-22T01:00:00Z" \
-H "Authorization: Bearer $ORVIO_API_KEY"{
"items": [
{
"target_start": "2026-06-22T00:00:00Z",
"target_end": "2026-06-22T00:15:00Z",
"issued_at": "2026-06-21T23:50:19Z",
"system_imbalance_mw": -55.3804,
"ae_price_eur_per_mwh": 131.8746,
"currency": "EUR",
"quality_status": "valid",
"freshness_status": "fresh",
"source_horizons": {
"system_imbalance": "t15",
"ae_price": "t15"
},
"notice": null
}
]
}Built for AI agents
Point your assistant at the OpenAPI spec and the integration guide. Fields are only added under /v1; breaking changes ship under /v2 with notice. Authenticated customers can open API Access for the curated OpenAPI contract and the integration guide.
Get access to the feed
Tell us what you operate and we'll set you up with a key and the docs.