Skip to main content
The Portfolio Forecasts API accepts portfolio production and consumption forecasts for one delivery day, and lets you read back what it holds. This is an alpha API. It may change or be removed without notice.

Submitting a forecast

Submit one or more production or consumption series with POST /portfolio-forecasts/v1alpha1/submissions. Tag each series by either a German TSO control area or an eleven-digit MaLo. MaLo-tagged series require a MaLo-to-control-area mapping. Each series contains one value per quarter-hour, from local (Europe/Berlin) midnight to midnight: 96 values on a normal day, 92 on the spring-forward day, 100 on the fall-back day. Specify values in MW or MWh. A successful acknowledgment includes the received series and interval counts, daily production and consumption totals in MWh, a content hash, and a received status (or validated when validating without submitting, see below). Re-submitting a forecast for the same delivery day replaces the previous submission. Submitting an identical payload changes nothing, so retries are safe.

Validating without submitting

Set validate_only to true to run the full validation without storing the forecast. The acknowledgment carries status: "validated", and its input_hash matches the one a stored submission of the same payload gets.

Reading back stored forecasts

GET /portfolio-forecasts/v1alpha1/submissions lists every stored delivery day, newest first. Each entry carries the input_hash of its submission and a processed flag that turns true once the schedules for exactly that input were submitted downstream and accepted. Compare the hash with the one from your acknowledgment to confirm which submission is in place. GET /portfolio-forecasts/v1alpha1/submissions/{delivery_day} returns the stored forecast for one day: exactly the series the last accepted submission carried, plus the derived totals, the input_hash, and the processing state. What you read back is what a re-submission would replace. A day with no stored forecast returns 404. Submissions made with validate_only store nothing, so they never appear in either response.