NESO Open Data Portal API
NESO Open Data Portal API
The National Energy System Operator exposes Great Britain electricity datasets and resource metadata through a keyless CKAN action API, with CSV and other resource downloads linked from dataset records. Catalog records include titles, descriptions, tags, creation and modification times, licence labels, resource formats and download URLs; no key is needed for reading public data.
Required Attribution:
Required for datasets under the NESO licence: "Supported by National Energy SO Open Data".
Coverage
The checked catalog search reported 131 datasets spanning forecasts, demand, generation, carbon intensity, balancing and system-operation topics for Great Britain. Update frequency and history are specified per dataset rather than for the portal as a whole.
Verdict
This is a broad operational and planning signal for Great Britain's electricity system, including demand, supply, forecasts, balancing and carbon conditions. The CKAN catalog makes resource discovery automatable, but agents must inspect each dataset's schema, cadence and rights field before ingestion. Dataset files can be revised or replaced independently of catalog metadata, so retain resource URLs and modification times. Follow the provider's request pacing because excessive use can be throttled or blocked.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Load the NESO dataset catalog into pandas and Parquet. Checked against the provider's documentation on Nov 1, 2026.
Access
- No account or key for public CKAN action endpoints.
- This example retrieves catalog metadata; follow each resource URL to ingest a selected dataset.
Request
curl 'https://api.neso.energy/api/3/action/package_search?rows=100'Format
CKAN JSON response containing total match count and dataset records with identifiers, titles, notes, tags, timestamps, licence labels and arrays of downloadable resources.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""NESO public dataset catalog metadata -> pandas -> Parquet."""
import requests
import pandas as pd
URL = "https://api.neso.energy/api/3/action/package_search"
response = requests.get(URL, params={"rows": 100}, timeout=60)
response.raise_for_status()
payload = response.json()["result"]
rows = []
for item in payload["results"]:
rows.append({
"name": item["name"],
"title": item["title"],
"metadata_created": item["metadata_created"],
"metadata_modified": item["metadata_modified"],
"license_title": item.get("license_title"),
"resource_count": len(item.get("resources", [])),
})
df = pd.DataFrame(rows)
df["metadata_created"] = pd.to_datetime(df["metadata_created"], utc=True)
df["metadata_modified"] = pd.to_datetime(df["metadata_modified"], utc=True)
df.to_parquet("neso_portal_catalog.parquet", index=False)
print(len(df), "datasets returned of", payload["count"], "matches;",
int(df["resource_count"].sum()), "resources in returned metadata")Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 100 datasets returned of 131 matches; 1040 resources in returned metadata
Limits
- CKAN API pacing: maximum one request per second is requested.
- Datastore API pacing: maximum two requests per minute is requested.
- package_search is paginated; use rows and start to traverse more than the returned page.
Quirks
- CKAN calls datasets packages and data files resources; portal labels use different terms.
- A dataset can contain many resources with different formats, periods and update times.
- The NESO licence applies only when the dataset explicitly associates itself with that licence.
Terms and attribution
- The NESO licence permits commercial and non-commercial reuse of associated datasets.
- Associated data must carry the statement Supported by National Energy SO Open Data.
Sources
- https://www.neso.energy/data-portal/api-guidance: “It is recommended to limit requests to a maximum one request per second”
- https://www.neso.energy/data-portal/neso-open-licence: “The Licensor grants you a worldwide, royalty-free, perpetual, non-exclusive licence to use the Information subject to the conditions below.”
- https://www.neso.energy/data-portal/neso-open-licence: “Supported by National Energy SO Open Data”
- https://www.neso.energy/data-portal/neso-open-licence: “each dataset on the NESO data portal is licenced on an individual basis”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer