Elexon System API

Transmission System data.

Operations 4

GET /system/frequency System frequency (FREQ)
GET /system/frequency/stream System frequency (FREQ) stream
GET /system/warnings System warnings (SYSWARN)
GET /system/demand-control-instructions Demand control instructions (DCI)

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/elexon-system-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

elexon-system-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Insights.Api Balancing Mechanism Dynamic System API
  version: '1.0'
  description: Dynamic data.
servers:
- url: https://data.elexon.co.uk/bmrs/api/v1
tags:
- name: System
  description: Transmission System data.
paths:
  /system/frequency:
    get:
      tags:
      - System
      summary: System frequency (FREQ)
      description: 'This endpoint allows for retrieving a collection of recent system frequency data from National Grid ESO. Results

        can be filtered by a range of DateTime parameters. This endpoint is useful for ad-hoc querying frequency data.'
      parameters:
      - name: from
        in: query
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        schema:
          type: string
          format: date-time
      - name: format
        in: query
        description: Response data format. Use json/xml to include metadata.
        schema:
          enum:
          - json
          - xml
          - csv
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemFrequency'
            application/json:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemFrequency'
            text/json:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemFrequency'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemFrequency'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemFrequency'
            text/csv:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemFrequency'
  /system/frequency/stream:
    get:
      tags:
      - System
      summary: System frequency (FREQ) stream
      description: 'This endpoint allows for retrieving a stream of recent system frequency data from National Grid ESO. Results can

        be filtered by a range of DateTime parameters. This endpoint has an optimised JSON payload and aimed at frequent

        request for the frequency data.'
      parameters:
      - name: from
        in: query
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Insights.Api.Models.Responses.Misc.SystemFrequency'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Insights.Api.Models.Responses.Misc.SystemFrequency'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Insights.Api.Models.Responses.Misc.SystemFrequency'
  /system/warnings:
    get:
      tags:
      - System
      summary: System warnings (SYSWARN)
      description: 'This endpoint provides system warnings data. Results can be filtered by warning type and a range of DateTime parameters.

        - If no parameters are specified then the latest message is returned

        - If just a warning type is specified then the latest message of that type is returned

        - If just publish times are specified then all messages within that range are returned'
      parameters:
      - name: warningType
        in: query
        schema:
          type: string
          example: IT SYSTEMS OUTAGE
        example: IT SYSTEMS OUTAGE
      - name: publishDateTimeFrom
        in: query
        schema:
          type: string
          format: date-time
          example: 2023/06/01 07:00
        example: 2023/06/01 07:00
      - name: publishDateTimeTo
        in: query
        schema:
          type: string
          format: date-time
          example: 2023/06/30 10:00
        example: 2023/06/30 10:00
      - name: format
        in: query
        description: Response data format. Use json/xml to include metadata.
        schema:
          enum:
          - json
          - xml
          - csv
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemWarningsData'
            application/json:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemWarningsData'
            text/json:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemWarningsData'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemWarningsData'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemWarningsData'
            text/csv:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemWarningsData'
  /system/demand-control-instructions:
    get:
      tags:
      - System
      summary: Demand control instructions (DCI)
      description: 'This endpoint provides demand control instruction data, filtered by the time range of the instruction.

        There is no date range limit on parameters.

        If no query parameters are supplied all data is returned.'
      parameters:
      - name: from
        in: query
        schema:
          type: string
          format: date-time
          example: 2021-04-30T00:00Z
        example: 2021-04-30T00:00Z
      - name: to
        in: query
        schema:
          type: string
          format: date-time
          example: 2021-04-30T20:00Z
        example: 2021-04-30T20:00Z
      - name: format
        in: query
        description: Response data format. Use json/xml to include metadata.
        schema:
          enum:
          - json
          - xml
          - csv
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.DemandControlInstructionData'
            application/json:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.DemandControlInstructionData'
            text/json:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.DemandControlInstructionData'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.DemandControlInstructionData'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.DemandControlInstructionData'
            text/csv:
              schema:
                $ref: '#/components/schemas/Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.DemandControlInstructionData'
components:
  schemas:
    Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemFrequency:
      type: object
      properties:
        data:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Insights.Api.Models.Responses.Misc.SystemFrequency'
        metadata:
          $ref: '#/components/schemas/Insights.Api.Models.Metadata.ApiResponseSourceMetadata'
      additionalProperties: false
    Insights.Api.Models.Responses.Misc.DemandControlInstructionData:
      type: object
      properties:
        mRID:
          type:
          - string
          - 'null'
          example: DCI_202104300853_00000030
        revisionNumber:
          type: integer
          format: int32
          example: 1
        publishTime:
          type:
          - string
          - 'null'
          format: date-time
          example: '2021-04-30T08:53:39Z'
        publishingPeriodCommencingTime:
          type: string
          format: date-time
          example: '2021-04-30T08:53:39Z'
        affectedDso:
          type:
          - string
          - 'null'
          example: SP(D)
        demandControlId:
          type:
          - string
          - 'null'
          example: '00135'
        instructionSequence:
          type: integer
          format: int32
          example: 1
        demandControlEventFlag:
          type: string
          example: I
        timeFrom:
          type: string
          format: date-time
          example: '2021-04-30T12:45:00Z'
        timeTo:
          type:
          - string
          - 'null'
          format: date-time
          example: '2021-04-30T13:09:00Z'
        volume:
          type: number
          format: double
          example: 68
        systemManagementActionFlag:
          type:
          - string
          - 'null'
          example: T
        amendmentFlag:
          type:
          - string
          - 'null'
          example: ORI
      additionalProperties: false
    Insights.Api.Models.Metadata.ApiResponseSourceMetadata:
      type: object
      properties:
        datasets:
          type:
          - array
          - 'null'
          items:
            type: string
          example:
          - DATASET
      additionalProperties: false
    Insights.Api.Models.Responses.Misc.SystemFrequency:
      type: object
      properties:
        measurementTime:
          type: string
          format: date-time
        frequency:
          type: number
          format: double
      additionalProperties: false
    Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.SystemWarningsData:
      type: object
      properties:
        data:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Insights.Api.Models.Responses.Misc.SystemWarningsData'
        metadata:
          $ref: '#/components/schemas/Insights.Api.Models.Metadata.ApiResponseSourceMetadata'
      additionalProperties: false
    Insights.Api.Models.Responses.ResponseWithMetadata-1_Insights.Api.Models.Responses.Misc.DemandControlInstructionData:
      type: object
      properties:
        data:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Insights.Api.Models.Responses.Misc.DemandControlInstructionData'
        metadata:
          $ref: '#/components/schemas/Insights.Api.Models.Metadata.ApiResponseSourceMetadata'
      additionalProperties: false
    Insights.Api.Models.Responses.Misc.SystemWarningsData:
      type: object
      properties:
        publishTime:
          type:
          - string
          - 'null'
          format: date-time
          example: 2022-09-20T00:00Z
        warningType:
          type:
          - string
          - 'null'
          example: IT SYSTEMS OUTAGE
        warningText:
          type:
          - string
          - 'null'
          example: NATIONAL GRID NOTIFICATION of excess energy prices used for settlement outside of BALIT for SO to SO Transactions
      additionalProperties: false