EBXv1

API reference

Asset reports

The daily report for one UTC day: aFRR activations, dispatch overrides, unavailabilities, alarms and settled aFRR capacity revenue. The performance timeline buckets activation metrics and settled capacity revenue over a window of up to 90 days.

2 endpoints
GET/v1/assets/{asset_id}/reports/daily

Daily operational report for an asset

report.read

Required scopes: report.read

Return everything this asset did on one UTC calendar day.

  • activations: every aFRR dispatch event with fill rate and totals.
  • dispatch_overrides: limit and immediate-dispatch changes recorded that day.
  • unavailabilities and alarms: what was declared and what fired.
  • earnings.afrr.capacity_revenue_eur: settled aFRR capacity revenue for the day, read from the latest settlement blocks (preliminary or final). null means no settlement result exists yet, not zero. Energy revenue is null pending the settlement contract; per-activation capacity revenue is never attributed.

date defaults to today (UTC). Today's report is partial by definition.

Path parameters

asset_idREQUIRED
stringThe ID of the asset

Query parameters

date
string<date>
Example value
curl "https://api.ebx.energy/v1/assets/DE_BESS_01/reports/daily" \
  -H "Authorization: Bearer $EBX_TOKEN"
Example response200
{
  "asset_id": "<string>",
  "date": "<string>",
  "activations": {
    "count": 0,
    "fill_rate_pct": 0,
    "total_requested": 0,
    "total_dispatched": 0,
    "filtered_count": 0,
    "events": [
      {
        "activation_id": "<string>",
        "dispatch_slot_utc": "2026-10-22T20:30:00Z",
        "dispatch_category": "<string>",
        "planned_set_power": 0,
        "set_power": 0,
        "accepted": 0,
        "outcome": "<string>",
        "filter_reason": "<string>"
      }
    ]
  },
  "dispatch_overrides": [
    {
      "event_type": "<string>",
      "event_id": "<string>",
      "created_at_utc": "2026-10-22T20:30:00Z",
      "action": "<string>",
      "outcome": "<string>",
      "details": "<string>"
    }
  ],
  "unavailabilities": [
    {
      "event_id": "<string>",
      "start_at_utc": "2026-10-22T20:30:00Z",
      "end_at_utc": "2026-10-22T20:30:00Z",
      "action": "<string>",
      "outcome": "<string>"
    }
  ],
  "alarms": {
    "count": 0,
    "events": [
      {
        "event_id": "<string>",
        "alarm_id": "<string>",
        "severity": "<string>",
        "action": "<string>",
        "opened_at_utc": "2026-10-22T20:30:00Z",
        "resolved_at_utc": "2026-10-22T20:30:00Z"
      }
    ]
  },
  "earnings": {
    "total_revenue_eur": 0,
    "afrr": {
      "capacity_revenue_eur": 0,
      "energy_revenue_eur": 0,
      "by_activation": [
        {
          "activation_id": "<string>",
          "dispatch_slot_utc": "2026-10-22T20:30:00Z",
          "dispatch_category": "<string>",
          "accepted": 0,
          "capacity_price": 0,
          "capacity_revenue_eur": 0,
          "energy_price": 0,
          "energy_revenue_eur": 0
        }
      ]
    },
    "fcr": null
  }
}
Can raise
  • 401no valid token
  • 403scope missing
  • 404unknown or not visible
  • 422validation failed
  • 429rate limited
ALL CODES →
GET/v1/assets/{asset_id}/reports/performance

Performance timeline with settled capacity revenue for an asset

report.read

Required scopes: report.read

Return activation performance bucketed by granularity for [start_time, end_time).

Each period carries activation counts, planned vs dispatched power, fill rate and the settled aFRR capacity revenue of the settlement blocks starting in that period. Periods with settled revenue but no activations are included, so idle awarded blocks are not hidden. Revenue is null where no settlement result exists.

Defaults to the last 24 hours; maximum window is 90 days.

Path parameters

asset_idREQUIRED
stringThe ID of the asset

Query parameters

start_time
string<date-time>Start time for filtering results
end_time
string<date-time>End time for filtering results
granularity
enumfifteen_minuteshourlydaily
Example value
curl "https://api.ebx.energy/v1/assets/DE_BESS_01/reports/performance" \
  -H "Authorization: Bearer $EBX_TOKEN"
Example response200
{
  "asset_id": "<string>",
  "granularity": "fifteen_minutes",
  "periods": [
    {
      "period_start": "2026-10-22T20:30:00Z",
      "granularity": "fifteen_minutes",
      "activation_count": 0,
      "total_planned": 0,
      "total_dispatched": 0,
      "avg_accepted": 0,
      "fill_rate_pct": 0,
      "filtered_count": 0,
      "afrr_capacity_revenue_eur": 0,
      "afrr_energy_revenue_eur": 0,
      "fcr_pos_capacity_revenue_eur": 0,
      "fcr_neg_capacity_revenue_eur": 0
    }
  ]
}
Can raise
  • 401no valid token
  • 403scope missing
  • 404unknown or not visible
  • 422validation failed
  • 429rate limited
ALL CODES →

Send feedback

This goes straight to the docs team on Slack, with the page you are on. It is not attributed to you, so say who you are if you would like an answer.

0/2000