NESO Data Portal API

The public CKAN 2.8.7 API behind the NESO Data Portal, serving 128 open datasets covering GB electricity demand, generation, balancing, ancillary services, constraints, interconnectors, connection registers, network charges, the Demand Flexibility Service, and Future Energy Scenarios. Anonymous and unauthenticated - package_list, package_search, package_show, resource_search, resource_show, datastore_search and datastore_search_sql (PostgreSQL) all answer 200 with no key. All 128 datasets carry the NESO Open Data Licence. NESO asks for a maximum of one request per second against the CKAN API and two requests per minute against the datastore.

Operations 2

GET /datastore_search Query tabular data #
GET /datastore_search_sql Query datastore via SQL #

Documentation

Specifications

Other Resources

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/neso-data-portal-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

neso-data-portal-datastore-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NESO Data Portal Datastore API
  description: 'The National Energy System Operator (NESO) Data Portal API is a CKAN v3 API providing programmatic access to NESO datasets including wind forecasts, demand predictions, balancing services, transmission constraints, and other UK energy system data. Rate limits: maximum 1 request per second for the CKAN API and 2 requests per minute for the Datastore API.'
  version: '3'
  contact:
    name: NESO Data Portal
    url: https://www.neso.energy/data-portal
  termsOfService: https://www.neso.energy/data-portal/api-guidance
servers:
- url: https://api.neso.energy/api/3/action
  description: NESO CKAN API production endpoint
tags:
- name: Datastore
  description: Query tabular data with filters or PostgreSQL-style SQL.
paths:
  /datastore_search:
    get:
      tags:
      - Datastore
      summary: Query tabular data
      description: Queries the datastore for tabular records with optional filters and pagination.
      operationId: datastoreSearch
      parameters:
      - name: resource_id
        in: query
        required: true
        description: Resource identifier whose datastore is being queried.
        schema:
          type: string
      - name: limit
        in: query
        required: false
        description: Maximum number of records to return.
        schema:
          type: integer
          default: 100
      - name: offset
        in: query
        required: false
        description: Offset into the result set.
        schema:
          type: integer
          default: 0
      - name: q
        in: query
        required: false
        description: Free-text query against indexed fields.
        schema:
          type: string
      responses:
        '200':
          description: Datastore records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CkanResponse'
  /datastore_search_sql:
    get:
      tags:
      - Datastore
      summary: Query datastore via SQL
      description: Queries the datastore using PostgreSQL syntax. Field IDs and Resource IDs must be enclosed in double quotes.
      operationId: datastoreSearchSql
      parameters:
      - name: sql
        in: query
        required: true
        description: PostgreSQL-syntax SQL query.
        schema:
          type: string
      responses:
        '200':
          description: SQL query results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CkanResponse'
components:
  schemas:
    CkanResponse:
      type: object
      description: Standard CKAN API response envelope.
      properties:
        help:
          type: string
          description: URL to the help endpoint for the action.
        success:
          type: boolean
          description: Whether the request was successful.
        result:
          description: Action-specific payload.