Documentation
Documentation
https://developer.data.elexon.co.uk/
Documentation
https://bmrs.elexon.co.uk/api-documentation/guidance
openapi: 3.0.4
info:
title: Insights.Api Balancing Mechanism Dynamic API
version: '1.0'
description: Dynamic data.
servers:
- url: https://data.elexon.co.uk/bmrs/api/v1
tags:
- name: Balancing Mechanism Dynamic
description: Dynamic data.
paths:
/balancing/dynamic:
get:
tags:
- Balancing Mechanism Dynamic
summary: Dynamic data per BMU (SEL, SIL, MZT, MNZT, MDV, MDP, NTB, NTO, NDZ)
description: "This endpoint provides the dynamic data for a requested BMU, excluding physical rate data.\nIt returns a \"snapshot\" of data valid at a given time, and optionally a time series of changes over a requested interval.\n \nBy default, all of the relevant datasets are returned: SIL, SEL, NDZ, NTB, NTO, MZT, MNZT, MDV, MDP.\nThe results from each dataset are transformed to a common response model, with the common integer field *Value*\nmapped from the fields *Level*, *Period*, *Volume* or *Notice* in the original dataset, as relevant."
parameters:
- name: bmUnit
in: query
description: The BM Unit to query.
required: true
schema:
type: string
example: 2__HFLEX001
example: 2__HFLEX001
- name: snapshotAt
in: query
description: 'When to retrieve a snapshot of data at.
That is, the latest datapoint before this time will be returned for each dataset.'
required: true
schema:
type: string
format: date-time
example: 2022-08-23T00:00Z
example: 2022-08-23T00:00Z
- name: until
in: query
description: 'When to retrieve data until.
Data from the snapshot until this time will be returned.'
schema:
type: string
format: date-time
example: 2022-08-24T00:00Z
example: 2022-08-24T00:00Z
- name: snapshotAtSettlementPeriod
in: query
description: 'The settlement period to retrieve a snapshot of data at.
If provided, the time part of SnapshotAt will be ignored.'
schema:
type: integer
format: int32
example: 2
example: 2
- name: untilSettlementPeriod
in: query
description: 'The settlement period to retrieve data until.
If provided, the time part of Until will be ignored.'
schema:
type: integer
format: int32
example: 2
example: 2
- name: dataset
in: query
description: Datasets to filter. If omitted, all datasets will be returned.
schema:
type: array
items:
type: string
example:
- SEL
- MNZT
- MDP
example:
- SEL
- MNZT
- MDP
- name: format
in: query
description: Response data format. Use json/xml to include metadata.
schema:
enum:
- json
- xml
- csv
type: string
responses:
'200':
description: Data retrieved
content:
text/plain:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
application/json:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
text/json:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
application/xml:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
text/xml:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
text/csv:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
'429':
description: Too many requests
'400':
description: Error with query parameters - see response for details
'500':
description: Server error - please try again later
/balancing/dynamic/all:
get:
tags:
- Balancing Mechanism Dynamic
summary: Market-wide dynamic data (SEL, SIL, MZT, MNZT, MDV, MDP, NTB, NTO, NDZ)
description: "This endpoint provides the dynamic data for multiple requested BMUs or all BMUs, excluding dynamic rate data.\nIt returns the data valid for a single settlement period. This includes a snapshot of data valid at the start\nof the settlement period, and any changes published during that settlement period.\n \nBy default, all of the relevant datasets are returned: SIL, SEL, NDZ, NTB, NTO, MZT, MNZT, MDV & MDP.\nThe results from each dataset are transformed to a common response model, with the common integer field *Value*\nmapped from the fields *Level*, *Period*, *Volume* or *Notice* in the original dataset, as relevant.\n \nThe settlement period must be specified as a date and settlement period. The date parameter must be provided in the exact format yyyy-MM-dd."
parameters:
- name: settlementDate
in: query
description: The settlement date or datetime to filter.
required: true
schema:
type: string
format: date
example: '2023-01-18'
example: '2023-01-18'
- name: settlementPeriod
in: query
description: The settlement period to filter. This should be an integer from 1-50 inclusive.
required: true
schema:
type: integer
format: int32
example: 3
example: 3
- name: bmUnit
in: query
description: The BM Units to query. Elexon or NGC BMU IDs can be used. If omitted, results for all BM units will be returned.
schema:
type: array
items:
type: string
example:
- 2__HFLEX001
- HUMR-1
example:
- 2__HFLEX001
- HUMR-1
- name: dataset
in: query
description: Datasets to filter. If omitted, all datasets will be returned.
schema:
type: array
items:
type: string
example:
- SEL
- MNZT
- MDP
example:
- SEL
- MNZT
- MDP
- name: format
in: query
description: Response data format. Use json/xml to include metadata.
schema:
enum:
- json
- xml
- csv
type: string
responses:
'200':
description: Data retrieved
content:
text/plain:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
application/json:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
text/json:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
application/xml:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
text/xml:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
text/csv:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
'429':
description: Too many requests
'400':
description: Error with query parameters - see response for details
'500':
description: Server error - please try again later
/balancing/dynamic/rates:
get:
tags:
- Balancing Mechanism Dynamic
summary: Rate data per BMU (RDRE, RURE, RDRI, RURI)
description: "This endpoint provides the physical rate data for a requested BMU.\nIt returns a \"snapshot\" of data valid at a given time, and optionally a time series of changes over a requested interval.\n \nBy default, all of the relevant datasets are returned: RDRE, RURE, RDRI, RURI."
parameters:
- name: bmUnit
in: query
description: The BM Unit to query.
required: true
schema:
type: string
example: DRAXX-1
example: DRAXX-1
- name: snapshotAt
in: query
description: 'When to retrieve a snapshot of data at.
That is, the latest datapoint before this time will be returned for each dataset.'
required: true
schema:
type: string
format: date-time
example: 2022-09-01T00:00Z
example: 2022-09-01T00:00Z
- name: until
in: query
description: 'When to retrieve data until.
Data from the snapshot until this time will be returned.'
schema:
type: string
format: date-time
example: 2022-09-30T00:00Z
example: 2022-09-30T00:00Z
- name: snapshotAtSettlementPeriod
in: query
description: 'The settlement period to retrieve a snapshot of data at.
If provided, the time part of SnapshotAt will be ignored.'
schema:
type: integer
format: int32
example: 2
example: 2
- name: untilSettlementPeriod
in: query
description: 'The settlement period to retrieve data until.
If provided, the time part of Until will be ignored.'
schema:
type: integer
format: int32
example: 2
example: 2
- name: dataset
in: query
description: Datasets to filter. If empty, all datasets will be returned.
schema:
type: array
items:
type: string
example:
- RURE
- RDRE
- RDRI
example:
- RURE
- RDRE
- RDRI
- name: format
in: query
description: Response data format. Use json/xml to include metadata.
schema:
enum:
- json
- xml
- csv
type: string
responses:
'200':
description: Data retrieved
content:
text/plain:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
application/json:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
text/json:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
application/xml:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
text/xml:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
text/csv:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
'429':
description: Too many requests
'400':
description: Error with query parameters - see response for details
'500':
description: Server error - please try again later
/balancing/dynamic/rates/all:
get:
tags:
- Balancing Mechanism Dynamic
summary: Market-wide rate data (RDRE, RURE, RDRI, RURI)
description: "This endpoint provides market-wide physical rate data, for all BMUs or a requested set of multiple BMUs.\nIt returns the data valid for a given settlement period. This includes a snapshot of data valid at the start\nof the settlement period, and any changes published during that settlement period.\n \nThe settlement period to query can be specified as a date and settlement period. The settlement date must be provided in the format yyyy-MM-dd.\n\nBy default, all of the relevant datasets are returned: RDRE, RURE, RDRI, RURI.\n \nThis endpoint is quota limited.\nFor individual rate datasets, use the relevant /datasets/ endpoints.\nFor real-time updates as each data point is published, use the Insights IRIS service. You can register for free at https://bmrs.elexon.co.uk/iris .\nFor historical data, check out the IRIS archive, which keeps a record of all published datasets."
parameters:
- name: settlementDate
in: query
description: The settlement date to filter.
required: true
schema:
type: string
format: date
example: '2022-09-01'
example: '2022-09-01'
- name: settlementPeriod
in: query
description: The settlement period to filter. This should be an integer from 1-50 inclusive.
required: true
schema:
type: integer
format: int32
example: 2
example: 2
- name: bmUnit
in: query
description: The BM Units to query. Elexon or NGC BMU IDs can be used. If omitted, results for all BM units will be returned.
schema:
type: array
items:
type: string
example:
- 2__HFLEX001
- HUMR-1
example:
- 2__HFLEX001
- HUMR-1
- name: dataset
in: query
description: Datasets to return. If omitted, all datasets will be returned.
schema:
type: array
items:
type: string
example:
- RURE
- RDRE
- RDRI
example:
- RURE
- RDRE
- RDRI
- name: format
in: query
description: Response data format. Use json/xml to include metadata.
schema:
enum:
- json
- xml
- csv
type: string
responses:
'200':
description: Data retrieved
content:
text/plain:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
application/json:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
text/json:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
application/xml:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
text/xml:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
text/csv:
schema:
$ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
'429':
description: Too many requests
'400':
description: Error with query parameters - see response for details
'500':
description: Server error - please try again later
components:
schemas:
Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData'
nullable: true
metadata:
$ref: '#/components/schemas/Insights.Api.Models.Metadata.ApiResponseSourceMetadata'
additionalProperties: false
Insights.Api.Models.Metadata.ApiResponseSourceMetadata:
type: object
properties:
datasets:
type: array
items:
type: string
nullable: true
example:
- DATASET
additionalProperties: false
Insights.Api.Models.Responses.Balancing.Dynamic.RateData:
type: object
properties:
dataset:
type: string
nullable: true
example: RURE
settlementDate:
type: string
format: date
example: '2022-07-01'
settlementPeriod:
type: integer
format: int32
example: 3
time:
type: string
format: date-time
example: '2022-07-01T13:34:00Z'
rate1:
type: number
format: double
example: 0.4
elbow2:
type: number
format: double
nullable: true
example: 5
rate2:
type: number
format: double
nullable: true
example: 300.2
elbow3:
type: number
format: double
nullable: true
example: null
rate3:
type: number
format: double
nullable: true
example: null
nationalGridBmUnit:
type: string
nullable: true
example: ABRBO-1
bmUnit:
type: string
nullable: true
example: T_ABRBO-1
additionalProperties: false
Insights.Api.Models.Responses.Balancing.Dynamic.DynamicData:
type: object
properties:
dataset:
type: string
nullable: true
example: SEL
bmUnit:
type: string
nullable: true
example: T_ABRBO-1
nationalGridBmUnit:
type: string
nullable: true
example: ABRBO-1
time:
type: string
format: date-time
example: '2022-07-01T13:34:00Z'
value:
type: integer
format: int64
example: 5
settlementDate:
type: string
format: date
example: '2022-07-01'
settlementPeriod:
type: integer
format: int32
example: 3
additionalProperties: false
Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Balancing.Dynamic.RateData:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Insights.Api.Models.Responses.Balancing.Dynamic.RateData'
nullable: true
metadata:
$ref: '#/components/schemas/Insights.Api.Models.Metadata.ApiResponseSourceMetadata'
additionalProperties: false