Skip to main content

Integration Guide

This guide covers the three-step API integration process. All steps must be completed before the day-ahead market closes (typically 12:00 CET).

Step 1: Upload Price Forecasts

Timing: ~09:00 Send your price forecasts to Podero to trigger the optimization calculation.

Endpoint

POST /api/partners/v2.0/organizations/trading/dayahead/prices View API documentation →

Requirements

  • 15-minute intervals (96 intervals per day)
  • EUR/MWh pricing
  • No gaps in data
  • Future dates only

Example

curl -X POST \
  'https://app.podero.com/api/partners/v2.0/organizations/trading/dayahead/prices' \
  -H 'Authorization: Bearer {auth_token}' \
  -H 'Content-Type: application/json' \
  -d '{
    "date": "2024-02-17",
    "prices": [
      {"timestamp": "2024-02-17T00:00:00Z", "price_eur_mwh": 45.50},
      {"timestamp": "2024-02-17T00:15:00Z", "price_eur_mwh": 43.20}
      // ... 94 more intervals
    ]
  }'

Response

{
  "state": "accepted",
  "next_calculation_ready_at": "2024-02-16T10:30:00Z"
}
Wait until next_calculation_ready_at before fetching load curves in Step 2.

Step 2: Fetch Load Curves

Timing: After next_calculation_ready_at (~10:30) Fetch the optimized and unoptimized load curves to inform your market bids.

Endpoints

Single Price Zone

GET /organizations/trading/dayahead/load-curvesAPI docs →

Multiple Price Zones

GET /organizations/trading/dayahead/load-curves/by-price-zoneAPI docs →

Example

curl -X GET \
  'https://app.podero.com/api/partners/v2.0/organizations/trading/dayahead/load-curves?date=2024-02-17' \
  -H 'Authorization: Bearer {auth_token}'

Response

{
  "trade_id": "550e8400-e29b-41d4-a716-446655440000",
  "date": "2024-02-17",
  "expiration": "2024-02-16T23:59:59Z",
  "curves": {
    "optimized": [
      {"timestamp": "2024-02-17T00:00:00Z", "energy_wh": 125000}
      // ... 95 more intervals
    ],
    "unoptimized": [
      {"timestamp": "2024-02-17T00:00:00Z", "energy_wh": 150000}
      // ... 95 more intervals
    ]
  }
}
Store the trade_id - you’ll need it for Step 3 confirmation.

Step 3: Confirm Trade

Timing: Before 14:30 (if trading intraday) or before 23:30 (if not trading intraday) Confirm to Podero that you have purchased the optimized volume to activate the optimization. The confirmation deadline depends on your trading strategy:
  • Trading intraday: Confirm by 14:30 (30-minute buffer before intraday trading starts at 15:00)
  • Not trading intraday: Confirm by 23:30 (30-minute buffer before optimization schedule starts at midnight)

Endpoint

POST /api/partners/v2.0/organizations/trading/dayahead/load-curve-confirmation View API documentation →

Example

curl -X POST \
  'https://app.podero.com/api/partners/v2.0/organizations/trading/dayahead/load-curve-confirmation' \
  -H 'Authorization: Bearer {auth_token}' \
  -H 'Content-Type: application/json' \
  -d '{
    "trade_id": "550e8400-e29b-41d4-a716-446655440000",
    "accepted": true
  }'
Confirm that you purchased the optimized volume. Devices will be steered according to the optimized curve on Day 2.
Confirmation must be submitted before intraday trading starts (15:00) or before optimization begins (midnight). Recommended deadlines: 14:30 for intraday traders, 23:30 for non-intraday traders. These buffers allow for contingencies and system processing time.

Common Issues

Issue: Missing intervals or invalid timestampsSolution: Ensure exactly 96 intervals with no gaps, aligned to :00, :15, :30, :45
Issue: Calling Step 2 too earlySolution: Wait until the next_calculation_ready_at timestamp from Step 1
Issue: Trade confirmation submitted after deadlineSolution: Submit confirmation with sufficient buffer:
  • Intraday traders: Complete by 14:30 (before intraday trading at 15:00)
  • Non-intraday traders: Complete by 23:30 (before optimization starts at midnight)
These 30-minute buffers allow for contingencies and system processing time.

Next Steps

Data Reference

View detailed data specifications

Overview

Back to overview