Skip to content
GridCapacityAPI.com

Grid hosting capacity · Europe

European grid capacity.
One API.

What transmission and distribution operators publish about available, reserved and contracted capacity — per substation, direction, technology and horizon — in one schema, with the methodology, freshness, provenance and rights status of every value.

250 requests a month on the Free plan, no card. See what is covered →

Request

GET /v1/capacity/nearby

curl "https://api.gridcapacityapi.com/v1/capacity/nearby?lat=51.5074&lng=-0.1278&radius_km=25&include_withheld=false&limit=1" \  -H "Authorization: Bearer gc_live_..."

Response

Live answer from the API · req_01a0dc821e6b72db9e88cbb83da2bb11

{
  "data": [
    {
      "id": "cap_06gdq75tehr5db5fphs82j9awr",
      "series_id": "cs_06gdq75tehr5db5fphrvdegedr",
      "asset": {
        "id": "sub_06gdq75qqntah1g4c8djerdpj4",
        "type": "substation",
        "name": "Leicester Sq 11kV",
        "slug": "leicester-sq-11kv-11-kv",
        "country": "GB",
        "operator": {
          "id": "op_p6edvgpjrs8dd9ajcbmy9cksh0",
          "slug": "ukpn",
          "name": "UK Power Networks",
          "type": "DSO"
        },
        "network_level": "primary",
        "voltage_kv": 11,
        "location": {
          "type": "Point",
          "coordinates": [
            -0.1299737742045787,
            51.51012721325993
          ],
          "precision": "exact"
        },
        "distance_km": 0.339
      },
      "direction": "offtake",
      "technology": "generic_load",
      "capacity": {
        "type": "available",
        "value": 50.4,
        "unit": "MVA",
        "value_mw": null,
        "qualifier": null,
        "status": null,
        "status_label": null
      },
      "firmness": "firm",
      "curtailment": null,
      "horizon": {
        "type": "snapshot",
        "year": null,
        "label": null
      },
      "scenario": null,
      "season": null,
      "variant": null,
      "details": {
        "limiting_factor": "Thermal",
        "rag": "GREEN",
        "rag_colour": "green",
        "source_field": "demandAvailableCapacity"
      },
      "methodology": {
        "id": "gb_ukpn_ltds_heatmap_2026",
        "title": "UKPN LTDS Capacity Heatmap: headroom from the Network Scenario Headroom Report",
        "capacity_basis": "operator_calculated",
        "network_state": "n_minus_1",
        "binding": false,
        "non_additive": true,
        "includes_reserved": null,
        "includes_allocated": null,
        "includes_pre_reserved": null,
        "includes_pending_requests": null,
        "comparability_class": "gb_ukpn_ltds_heatmap"
      },
      "freshness": {
        "source_effective_at": "2025-03-01T00:00:00Z",
        "retrieved_at": "2026-09-26T02:47:40.838120Z",
        "last_confirmed_at": "2026-09-26T02:47:56.090133Z",
        "source_health": "healthy"
      },
      "provenance": {
        "source_id": "gb_ukpn_ltds_heatmap",
        "source_record_id": "0d001646-cac4-5fc3-b8e8-0613ad9201b8",
        "source_url": "https://ukpowernetworks.opendatasoft.com/explore/dataset/ukpn-capacity-heatmap/",
        "payload_sha256": "befc45cdd6bd85b5f31e3e31b04397e6706084b57ffc5f910f51b6b68396f516",
        "license": "CC BY 4.0",
        "rights_mode": "commercial_use_with_attribution"
      },
      "access": {
        "status": "granted",
        "attribution": "UK Power Networks, Long Term Development Statement (LTDS) Capacity Heatmap, https://ukpowernetworks.opendatasoft.com/explore/dataset/ukpn-capacity-heatmap/ (last updated 2025-03-01)"
      },
      "decision_context": {
        "binding": false,
        "formal_connection_study_required": true,
        "source_indicative": true,
        "statement": "The operator's latest published dataset reports 50.4 MVA under methodology gb_ukpn_ltds_heatmap_2026."
      }
    }
  ],
  "pagination": {
    "has_more": true,
    "next_cursor": "eyJzIjoiZGlzdGFuY2UiLCJrIjoiMzM4Ljg4NDczNDIzIiwiaSI6IjAxYTBkYjljLWJhNzQtNzA1Ni1hY2FmLWI0NzI4MTQ5MmFlNiJ9",
    "limit": 1
  },
  "meta": {
    "request_id": "req_01a0dc821e6b72db9e88cbb83da2bb11",
    "comparability": "best_effort",
    "warnings": []
  }
}

Read it as the record says: the operator's latest published dataset reports this figure under the named methodology. It is not a connection offer.

The semantics are the product

No number leaves without its meaning

There is no bare available_mw. Every value travels with the eight things you need to know before you rely on it.

direction

Which way

Injection is power into the grid, offtake is power drawn from it. A battery site needs both, and operators publish them separately.

injectionofftake

capacity.type

What the number counts

Available, reserved, allocated, contracted, waitlisted, total. Kept apart exactly as the operator keeps them: one operator's “reserved” is never folded into another's “allocated”.

availablereservedtotal

firmness · curtailment

On what terms

Firm, flexible with a stated maximum curtailment, or conditional. A flexible figure with up to 5 % curtailment a year is a different offer from a firm one.

firmflexible ≤ 5 %

horizon

For when

The situation as last published, or a target year such as Y+2. Forecast scenarios and seasons are dimensions of their own, never averaged away.

snapshot2028 (Y+2)

capacity.unit · value_mw

In what unit

As published. MVA stays MVA: converting it needs a power factor the operator did not give, so value_mw is null and an MW filter never matches it.

MWMVAstatus

methodology

Computed how

Which network state, what is already subtracted, whether figures add up across assets, and the comparability class that decides what may be compared side by side.

includes_reservednon_additive

freshness · provenance

Seen when, and where

The operator's own effective date and the moment we retrieved it: two clocks, both shown. The source URL, record id and payload hash trace every value to its file.

source_effective_atretrieved_at

access · decision_context

Allowed for what

Values are served only where the operator's licence allows it; anything else is listed with the value withheld and a link. Nothing here is binding or a connection offer.

grantedwithheld

Every field and every enum, with what it means: the capacity model.

Coverage

What the API serves today

Counted by the API itself, from the sources it has imported. A country is listed once an operator's publication is imported, never ahead of the data.

Coverage, sources and map

Countries served

10

Operators

154

Sources

86

Grid assets

30,960

Capacity series

325,095

Coverage by country
CountryStatusOperatorsSources served / withheldAssetsNewest operator date
United KingdomPartial814 / 44,92014 Aug 2026
NetherlandsPartial83 / 51,24513 Sep 2026
BelgiumLive83 / 71,13924 Sep 2026
FranceLive33 / 45,23725 Aug 2026
SpainPartial630 / 1116,4679 Sep 2026
PortugalPartial30 / 446111 Jul 2026
AustriaPartial220 / 844329 Jul 2026
DenmarkLive11 / 01601 Feb 2026
ItalyPartial50 / 71101 Sep 2026
SwitzerlandLive231 / 1778—

As reported by /v1/coverage on 2026-09-26 06:53 UTC.

Who it is for

For the people who have to know before they apply

BESS developers

Screen substations for injection and offtake headroom together, per horizon and firmness, before paying for a connection study.

Data-centre developers

Find where operators publish offtake capacity at transmission and sub-transmission voltage, and follow it as each dataset is republished.

Grid consultants

Cite a figure with its methodology, its operator's date and the file it came from, and reproduce what the dataset said on the day you advised.

GIS and energy software

One schema across operators, cursor pagination, a change feed and webhooks, so a product integrates once instead of once per operator.

Pricing

Start free, pay when it matters

Every plan reads the same data. The plan decides how much, how fast, and whether you get history, the change feed, exports and webhooks.

Free

€0/month

250 requests a month

Developer

€99/month

10,000 requests a month

Pro

History

€399/month

100,000 requests a month

Business

History

€999/month

500,000 requests a month

Enterprise, with redistribution rights: from €2,500 a month.

Compare every plan

Questions

Is this an operator's official data service?
No. Independent service. Not affiliated with, endorsed by, or operated by any transmission or distribution system operator. Every figure is one an operator published; this service reads it, normalises it and tells you exactly where it came from.
Does a figure mean capacity is available for my project?
No. A record says what the operator's latest published dataset reports, under which methodology. Hosting-capacity figures are indicative and reflect what operators publish. They are not a connection offer; only the operator can confirm capacity for a specific request.
Why are some values withheld?
Rights fail closed. Where an operator's terms do not clearly allow redistribution, the record is still listed — so you know the operator publishes something there, and where — but the value is null and it never satisfies a numeric filter.
Why is there no MW figure for some records?
Because the operator published MVA, amperes or a traffic-light status. Converting MVA to MW needs a power factor the operator did not give, so the value stays in its own unit and value_mw is null.
How fresh is the data?
Each source is read on its own cadence, from daily to twice a year, and conditionally, so an unchanged file is confirmed rather than re-imported. Every record carries the operator's effective date, our retrieval time and its source's health.
Can I try it without paying?
Yes. The Free plan is a real plan: 250 requests a month, one key, no card. The documentation, the coverage pages and the OpenAPI document are open to everyone.

Build on the data, not on a scraper

A key in under a minute, on the Free plan.

Get API access