REST API

API Documentation

Eight REST endpoints provide access to French electricity market data: day-ahead spot prices (ENTSO-E), single-stream RTE reserve endpoints, and two aggregated endpoints for balancing capacity and balancing energy. Authentication works with either the dashboard session or a Bearer token generated from the dashboard.

Available endpoints

The endpoints below cover the day-ahead feed and the two new aggregated routes. The single-stream endpoints remain available alongside them: GET /api/fcr-capacity, GET /api/afrr-capacity, GET /api/afrr-energy, GET /api/mfrr-capacity, GET /api/mfrr-energy.

Base URLhttps://co-c8jb.nanocorp.app
AuthenticationDashboard cookie or Authorization: Bearer <token>
Response formatJSON object
GET/api/day-ahead-prices

Returns quarter-hour day-ahead prices for France (96 intervals per day) sourced from the ENTSO-E Transparency Platform. No query parameters.

URLhttps://co-c8jb.nanocorp.app/api/day-ahead-prices
AuthenticationActive dashboard cookie or Authorization: Bearer <token>
Query stringNone
Response formatJSON object

Response fields

FieldTypeDescription
rowsarrayQuarter-hour intervals with `hour_start_utc`, `hour_end_utc`, and `price_eur_mwh`.
latestDatestring | nullLatest available delivery date in `YYYY-MM-DD` format.
earliestDatestring | nullEarliest date available in the returned window.

Example request

curl \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://co-c8jb.nanocorp.app/api/day-ahead-prices

Example response

{
  "rows": [
    {
      "hour_start_utc": "2026-04-16T22:00:00.000Z",
      "hour_end_utc": "2026-04-16T22:15:00.000Z",
      "price_eur_mwh": 128.48
    },
    {
      "hour_start_utc": "2026-04-16T22:15:00.000Z",
      "hour_end_utc": "2026-04-16T22:30:00.000Z",
      "price_eur_mwh": 123.41
    }
  ],
  "latestDate": "2026-04-17",
  "earliestDate": "2026-03-20"
}
GET/api/balancing-capacity

Aggregates the FCR, aFRR, and mFRR capacity payloads into a single JSON response. The `fcr`, `afrr`, and `mfrr` objects reuse the shape of the corresponding single-stream endpoints.

URLhttps://co-c8jb.nanocorp.app/api/balancing-capacity
AuthenticationActive dashboard cookie or Authorization: Bearer <token>
Query stringNone
Notes401 if no active subscription

Response fields

FieldTypeDescription
latestFetchedAtUtcstring | nullMost recent UTC fetch timestamp across FCR, aFRR capacity, and mFRR capacity.
fcrobjectSame payload as `GET /api/fcr-capacity`.
afrrobjectSame payload as `GET /api/afrr-capacity`.
mfrrobjectSame payload as `GET /api/mfrr-capacity`.

Example request

curl \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://co-c8jb.nanocorp.app/api/balancing-capacity

Example response

{
  "latestFetchedAtUtc": "2026-05-23T14:35:24.755Z",
  "fcr": {
    "rows": [
      {
        "period_start_utc": "2026-05-23T22:00:00.000Z",
        "period_end_utc": "2026-05-23T23:00:00.000Z",
        "volume_mw": 582,
        "contracted_volume_mw": 576,
        "offered_volume_mw": 590,
        "price": 18.4,
        "direction": "SYMMETRIC",
        "product_type": "FCR",
        "time_horizon": "DAILY"
      }
    ],
    "latestFetchedAtUtc": "2026-05-23T14:35:24.755Z"
  },
  "afrr": {
    "rows": [
      {
        "period_start_utc": "2026-05-23T22:00:00.000Z",
        "period_end_utc": "2026-05-23T23:00:00.000Z",
        "direction": "UPWARD",
        "price": 12.7,
        "product_type": "aFRR",
        "offered_volume_mw": 430,
        "contracted_volume_mw": 418,
        "time_horizon": "DAILY"
      }
    ],
    "latestFetchedAtUtc": "2026-05-23T14:35:24.755Z"
  },
  "mfrr": {
    "rows": [
      {
        "period_start_utc": "2026-05-23T22:00:00.000Z",
        "period_end_utc": "2026-05-23T23:00:00.000Z",
        "direction": "DOWNWARD",
        "price": 9.8,
        "product_type": "mFRR",
        "offered_volume_mw": 310,
        "contracted_volume_mw": 300,
        "time_horizon": "DAILY"
      }
    ],
    "latestFetchedAtUtc": "2026-05-23T14:35:24.755Z"
  }
}
GET/api/balancing-energy

Aggregates the aFRR and mFRR energy payloads into a single JSON response. The `afrr` object exposes the 4-second series plus 5-minute chart buckets, and `mfrr` exposes the 15-minute intervals together with the latest UP/DOWN rows.

URLhttps://co-c8jb.nanocorp.app/api/balancing-energy
AuthenticationActive dashboard cookie or Authorization: Bearer <token>
Query stringNone
Notes401 if no active subscription

Response fields

FieldTypeDescription
latestFetchedAtUtcstring | nullMost recent UTC fetch timestamp across aFRR energy and mFRR energy.
afrrobjectSame payload as `GET /api/afrr-energy`.
mfrrobjectSame payload as `GET /api/mfrr-energy`.

Example request

curl \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://co-c8jb.nanocorp.app/api/balancing-energy

Example response

{
  "latestFetchedAtUtc": "2026-05-23T23:20:06.497Z",
  "afrr": {
    "latestDeliveryDateParis": "2026-05-23",
    "latestFetchedAtUtc": "2026-05-23T23:10:28.164Z",
    "latestPeriodStartUtc": "2026-05-23T21:59:56.000Z",
    "latestPeriodEndUtc": "2026-05-23T22:00:00.000Z",
    "resolutionSeconds": 4,
    "rowCount": 21600,
    "averageUpwardPrice": 74.2,
    "averageDownwardPrice": -8.6,
    "latestRow": {
      "period_start_utc": "2026-05-23T21:59:56.000Z",
      "period_end_utc": "2026-05-23T22:00:00.000Z",
      "upward_price_eur_mwh": 83.4,
      "downward_price_eur_mwh": -11.2,
      "pdemand_mw": 2150,
      "afrr_for_france_mw": 96,
      "afrr_in_france_mw": 84,
      "picasso_connection": true,
      "prorata_mode": false
    },
    "recentRows": [
      {
        "period_start_utc": "2026-05-23T21:59:56.000Z",
        "period_end_utc": "2026-05-23T22:00:00.000Z",
        "upward_price_eur_mwh": 83.4,
        "downward_price_eur_mwh": -11.2,
        "pdemand_mw": 2150,
        "afrr_for_france_mw": 96,
        "afrr_in_france_mw": 84,
        "picasso_connection": true,
        "prorata_mode": false
      }
    ],
    "chartRows": [
      {
        "bucket_start_utc": "2026-05-23T21:55:00.000Z",
        "bucket_end_utc": "2026-05-23T22:00:00.000Z",
        "upward_price_eur_mwh": 79.8,
        "downward_price_eur_mwh": -9.4
      }
    ]
  },
  "mfrr": {
    "latestDeliveryDateParis": "2026-05-23",
    "latestFetchedAtUtc": "2026-05-23T23:20:06.497Z",
    "latestPeriodStartUtc": "2026-05-23T21:45:00.000Z",
    "latestPeriodEndUtc": "2026-05-23T22:00:00.000Z",
    "resolutionSeconds": 900,
    "rowCount": 192,
    "averageUpwardPrice": 118.1,
    "averageDownwardPrice": 0,
    "latestUpwardRow": {
      "period_start_utc": "2026-05-23T21:45:00.000Z",
      "period_end_utc": "2026-05-23T22:00:00.000Z",
      "direction": "UPWARD",
      "clearing_price_eur_mwh": 126.5,
      "settlement_price_current_eur_mwh": 126.5,
      "settlement_price_previous_eur_mwh": 121.3,
      "total_requested_volume_sa_mw": 45,
      "total_requested_volume_da_mw": 0,
      "total_satisfied_need_sa_mw": 42,
      "total_satisfied_need_da_mw": 0,
      "total_activated_volume_sa_mw": 42,
      "total_activated_volume_da_mw": 0,
      "total_volume_submitted_offers_mw": 310,
      "total_volume_filtered_offers_mw": 265
    },
    "latestDownwardRow": {
      "period_start_utc": "2026-05-23T21:45:00.000Z",
      "period_end_utc": "2026-05-23T22:00:00.000Z",
      "direction": "DOWNWARD",
      "clearing_price_eur_mwh": 0,
      "settlement_price_current_eur_mwh": 0,
      "settlement_price_previous_eur_mwh": 0,
      "total_requested_volume_sa_mw": 0,
      "total_requested_volume_da_mw": 0,
      "total_satisfied_need_sa_mw": 0,
      "total_satisfied_need_da_mw": 0,
      "total_activated_volume_sa_mw": 0,
      "total_activated_volume_da_mw": 0,
      "total_volume_submitted_offers_mw": 180,
      "total_volume_filtered_offers_mw": 180
    },
    "recentRows": [
      {
        "period_start_utc": "2026-05-23T21:45:00.000Z",
        "period_end_utc": "2026-05-23T22:00:00.000Z",
        "upward_price_eur_mwh": 126.5,
        "downward_price_eur_mwh": 0
      }
    ],
    "chartRows": [
      {
        "period_start_utc": "2026-05-23T21:45:00.000Z",
        "period_end_utc": "2026-05-23T22:00:00.000Z",
        "upward_price_eur_mwh": 126.5,
        "downward_price_eur_mwh": 0
      }
    ]
  }
}

Access and pricing

Generate your tokens from the API tab in the dashboard. For production use with service guarantees, see the dashboard plans.

View pricing

Contact

For integration questions or data enquiries, contact us at co-c8jb@nanocorp.app