Grid

API

What data can I get from Grid, and how?

Grid's API returns the figures shown on the dashboard as JSON. It is free, needs no account and allows 60 requests a minute per IP address. Data refreshes on the same schedule as the dashboard: hourly for electricity and physical gas, every 6 hours for oil and gas prices. Older endpoints keep working. New endpoints are under /api/v1.

Conventions

  • Times are UTC, ISO 8601 (2026-10-14T09:30:00Z). Convert to UK local time (Europe/London) yourself.
  • Every value carries its unit, interval, source, publication time and the time Grid fetched it.
  • Missing data is null, never 0. A reported zero is 0.
  • Forecasts carry forecast_issued_at. Revised values carry their revision.
  • Results are paged with a cursor. Follow next_cursor until it is empty.
  • An unsupported filter returns an error. It is never ignored.
  • Scope is GB unless the endpoint says otherwise. Northern Ireland data is never mixed into GB results.

Endpoints

/api/v1/gas/overview

GET /api/v1/gas/overview

Summary for one gas day, with freshness and coverage for each part.

Query: gas_day, optional. A missing value reads the latest release.

Swipe for more columns

curl -s "https://grid.vahaah.com/api/v1/gas/overview?gas_day=2026-10-14"

/api/v1/gas/series

GET /api/v1/gas/series

History of one gas metric between two times.

Query: metric, from, to. All three are required. An unknown metric is rejected.

Swipe for more columns

curl -s "https://grid.vahaah.com/api/v1/gas/series?metric=gas.gb_nts.demand.actual_volume&from=2026-10-14T05:00:00Z&to=2026-10-15T05:00:00Z"

/api/v1/map/layers

GET /api/v1/map/layers

The map layers, with source, edition, coverage and attribution for each.

No query parameters.

Swipe for more columns

curl -s "https://grid.vahaah.com/api/v1/map/layers"

/api/v1/projects

GET /api/v1/projects

Projects matching the filters.

Query: display_stage, limit, offset. limit defaults to 100 and cannot exceed 500. offset defaults to 0.

Swipe for more columns

curl -s "https://grid.vahaah.com/api/v1/projects?limit=100&offset=0"

/api/v1/constraints

GET /api/v1/constraints

Published constraint activity. Only the breakdowns the source publishes.

Query: from, to, boundary. from and to are required inclusive settlement dates. boundary is optional.

Swipe for more columns

curl -s "https://grid.vahaah.com/api/v1/constraints?from=2026-10-01&to=2026-10-08"

/api/v1/identifiers

GET /api/v1/identifiers

Which organisation held a code on a given date.

Query: scheme, code, effective_on. Or search by name (2 to 80 characters).

Swipe for more columns

curl -s "https://grid.vahaah.com/api/v1/identifiers?scheme=MPID&code=ABCD&effective_on=2026-10-14"

/api/v1/identifiers/resolve

POST /api/v1/identifiers/resolve

Look up a batch of codes. Limited in size; submitted codes are not logged by default.

JSON body: effective_on and queries, each with scheme and code. At most 20 codes.

Swipe for more columns

curl -s -X POST "https://grid.vahaah.com/api/v1/identifiers/resolve" -H "content-type: application/json" -d '{"effective_on":"2026-10-14","queries":[{"scheme":"MPID","code":"ABCD"}]}'

/api/v1/changes

GET /api/v1/changes

Changes found in published data, with evidence.

Query: entity_id, cursor. Follow next_cursor until it is empty. Only scope=GB is supported.

Swipe for more columns

curl -s "https://grid.vahaah.com/api/v1/changes"

/api/v1/data-health

GET /api/v1/data-health

When each source last published and when Grid last fetched it.

No required parameters. Readings are GB electricity and GB gas. Northern Ireland and other geographies are left out.

Swipe for more columns

curl -s "https://grid.vahaah.com/api/v1/data-health"

Errors

  • 404 Unknown ID.
  • 404 No results for these filters.
  • 400 This scope is not supported.
  • 503 The source is unavailable. The last published data is still returned where Grid holds it.

Licence

Data in API responses is subject to each source's licence, listed in sources on every response and on the Data sources page. Data sources