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 URL | https://co-c8jb.nanocorp.app |
| Authentication | Dashboard cookie or Authorization: Bearer <token> |
| Response format | JSON object |
/api/day-ahead-pricesReturns quarter-hour day-ahead prices for France (96 intervals per day) sourced from the ENTSO-E Transparency Platform. No query parameters.
| URL | https://co-c8jb.nanocorp.app/api/day-ahead-prices |
| Authentication | Active dashboard cookie or Authorization: Bearer <token> |
| Query string | None |
| Response format | JSON object |
Response fields
| Field | Type | Description |
|---|---|---|
| rows | array | Quarter-hour intervals with `hour_start_utc`, `hour_end_utc`, and `price_eur_mwh`. |
| latestDate | string | null | Latest available delivery date in `YYYY-MM-DD` format. |
| earliestDate | string | null | Earliest 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"
}/api/balancing-capacityAggregates 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.
| URL | https://co-c8jb.nanocorp.app/api/balancing-capacity |
| Authentication | Active dashboard cookie or Authorization: Bearer <token> |
| Query string | None |
| Notes | 401 if no active subscription |
Response fields
| Field | Type | Description |
|---|---|---|
| latestFetchedAtUtc | string | null | Most recent UTC fetch timestamp across FCR, aFRR capacity, and mFRR capacity. |
| fcr | object | Same payload as `GET /api/fcr-capacity`. |
| afrr | object | Same payload as `GET /api/afrr-capacity`. |
| mfrr | object | Same 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"
}
}/api/balancing-energyAggregates 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.
| URL | https://co-c8jb.nanocorp.app/api/balancing-energy |
| Authentication | Active dashboard cookie or Authorization: Bearer <token> |
| Query string | None |
| Notes | 401 if no active subscription |
Response fields
| Field | Type | Description |
|---|---|---|
| latestFetchedAtUtc | string | null | Most recent UTC fetch timestamp across aFRR energy and mFRR energy. |
| afrr | object | Same payload as `GET /api/afrr-energy`. |
| mfrr | object | Same 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 pricingContact
For integration questions or data enquiries, contact us at co-c8jb@nanocorp.app