# UK Carbon Intensity and Low-Carbon Windows

> UK carbon intensity in gCO2/kWh for Great Britain, regions and postcodes, every half hour. Find the greenest time windows for EV charging.

URL: https://cliqtomedia.com/actors/uk-carbon-intensity/

Category: Government & open data · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto

See how clean the electricity grid is, half hour by half hour. Get data for Great Britain, a region or a postcode. The tool also picks the greenest time windows for you.

## How to use it: 3 steps

1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `13` in Grid regions. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Get the half-hourly carbon intensity of electricity (gCO2/kWh) for Great Britain, its grid regions and UK postcodes from the Carbon Intensity API of the National Energy System Operator (NESO). Each half-hour has a forecast, an actual value (national only), an index and the generation mix. The Actor also finds the **lowest-carbon time windows** for EV charging, heat pumps, batch jobs and other flexible loads.

- It gets every half-hour in your time range for each area you choose: Great Britain, any of the 17 NESO regions, and up to 5 postcodes.
- It turns each half-hour into one clean row with UTC times, forecast and actual intensity, the index and the fuel mix.
- It finds the best non-overlapping windows of the length you choose (for example 3 windows of 2 hours), ranked by the average forecast intensity.

### Good for

- You plan EV charging, heat pumps, batteries or batch jobs and need the greenest hours in the next day or two.
- You report on grid carbon intensity for a past day or week (ESG, energy dashboards).
- You compare regions or sites by postcode for the same time range.

### Not a good fit

- It does not calculate the carbon footprint of your business and does not issue certificates or guarantees of origin.
- Great Britain only. Northern Ireland is not covered by the source.
- Regions and postcodes have forecasts only. The source has no regional actual values.
- Forecasts reach about 48 hours ahead. History starts in 2017–2018.

## Price

Prices will be shown after release.

## Questions

### Does it cover Northern Ireland?

No. The source covers Great Britain only.

### Why is the actual value empty?

Actual values exist only for Great Britain as a whole. They exist only for past half hours.

### Does it calculate my company's footprint?

No. It shows grid carbon intensity. It does not issue certificates.

### Do I need an API key?

No. The NESO Carbon Intensity API is free and public.

### Why is `actualIntensity` null?

The source publishes actual values only for Great Britain as a whole and only for half-hours that have passed. Regions and postcodes have forecasts only. A null means "no value", never 0.

### How fresh is the data?

Each run requests the source live. `fetchedAt` shows when. Forecasts change during the day, so a later run can show different forecasts for the same half-hour.

### Why are times in UTC?

The source uses UTC. A UK calendar day (`today`, `2026-10-25`) is converted for you, so clock-change days have 46 or 50 half-hours.

## Data fields

- `recordType` (string): period = one half-hour of one area; window = a ranked low-carbon window; area_status = an area with no rows (not_found, no_data or error).
- `area` (string): Area label: GB (national), region name or postcode.
- `areaType` (string)
- `regionId` (integer): NESO region ID 1–17; null for national.
- `regionName` (string)
- `dnoRegion` (string): Distribution network operator region name from the source.
- `postcode` (string): Outward postcode used for the lookup.
- `from` (string): Start of the half-hour or window, UTC ISO 8601.
- `to` (string): End, UTC ISO 8601.
- `forecastIntensity` (number): Forecast carbon intensity, gCO2/kWh.
- `actualIntensity` (number): Actual (estimated from metered generation) intensity, gCO2/kWh. National only; null for future periods and regions — null is not zero.
- `intensityIndex` (string)
- `unit` (string)
- `generationMix` (object): Percent of generation by fuel.
- `windowRank` (integer): 1 = lowest average forecast intensity.
- `windowDurationHours` (number)
- `averageForecastIntensity` (number): Mean forecast over the window's half-hours, rounded to 0.1 gCO2/kWh.
- `minForecastIntensity` (number)
- `maxForecastIntensity` (number)
- `isUpcoming` (boolean): true if the window starts after the run started; false if it is already in progress.
- `status` (string)
- `message` (string)
- `provider` (string)
- `sourceUrl` (string): Exact API request behind the row.
- `fetchedAt` (string): When the source was requested, UTC.

## Input settings

- `includeNational` (boolean): Include the national (GB) series. Only the national series has actual (measured) intensity; regional series are forecast only.
- `regions` (array): Region IDs: 1–14 are the distribution network (DNO) regions, 15 England, 16 Scotland, 17 Wales. Unknown values stop the run with an error.
- `postcodes` (array): Up to 5 UK postcodes. Only the outward part is used ("SW1A 1AA" → SW1A). A postcode the source does not know is reported as not_found, not as an error.
- `startTime` (string): now (current half-hour), today, yesterday, tomorrow, a UK calendar day YYYY-MM-DD, or an ISO date-time (without an offset it is UTC). Times are rounded down to the half-hour.
- `endTime` (string): Empty = 24 hours after the start (or the end of the UK day when the start is a day). Also accepts +Nh (for example +48h), a UK day YYYY-MM-DD (to its end) or an ISO date-time. Maximum range 7 days; forecasts reach about 48 hours ahead.
- `includeHalfHourPeriods` (boolean): Output one row per area and half-hour. Turn off to get only the low-carbon windows.
- `includeGenerationMix` (boolean): Add the fuel mix (percent of generation: wind, solar, gas, nuclear, imports and others) to each half-hour row. For the national series this is one extra source request.
- `findLowCarbonWindows` (boolean): Find the time windows with the lowest average forecast intensity, per area. Windows do not overlap.
- `windowDurationHours` (number): Length of each window, 0.5–24 hours, in steps of 0.5.
- `windowCount` (integer): How many best windows per area (1–10). Fewer are returned when the range does not have room.
- `windowsFromNowOnly` (boolean): Search windows only from the current half-hour onward, so they can still be scheduled. Turn off to rank past windows too.

## Step by step on Apify

1. Open the Input tab.
2. Keep the prefilled input: Great Britain, regions 13 (London) and 16 (Scotland), from `now` to `+24h`.
3. Optionally add a postcode such as `M1` or `EH1 1YZ`.
4. Click Start.
5. In the Output tab, open Low-carbon windows only for the ranked windows, or All rows for every half-hour (the `recordType` column says `period`, `window` or `area_status`).

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Schedule EV charging or a heat pump | `postcodes`, `windowDurationHours`, `windowCount` | window | `from`, `to`, `averageForecastIntensity`, `windowRank` | Your scheduler reads the rank 1 window |
| Daily ESG or energy report | `startTime: "yesterday"`, `includeNational` | period | `actualIntensity`, `forecastIntensity`, `generationMix` | Export CSV/Excel or Google Sheets |
| Compare regions | `regions` | period | `regionName`, `forecastIntensity`, `intensityIndex` | Dashboard or BI tool |

## Tips

- Ask for a few windows of a fixed length, like 3 windows of 2 hours.
- Times are in UTC. A UK clock-change day has 46 or 50 half hours.
- Run again later in the day. Forecasts change during the day.

## Sample result

```json
{
  "recordType": "period",
  "area": "GB (national)",
  "areaType": "national",
  "from": "2026-10-12T13:30:00Z",
  "to": "2026-10-12T14:00:00Z",
  "forecastIntensity": 73,
  "actualIntensity": null,
  "intensityIndex": "low",
  "unit": "gCO2/kWh",
  "generationMix": { "wind": 49.5, "gas": 13, "nuclear": 11.5, "imports": 10.7, "biomass": 8.7, "solar": 6.6, "hydro": 0, "coal": 0, "other": 0 },
  "status": "ok",
  "provider": "Carbon Intensity API (National Energy System Operator)",
  "sourceUrl": "https://api.carbonintensity.org.uk/intensity/2026-10-12T13:30Z/2026-10-13T13:30Z",
  "fetchedAt": "2026-10-12T13:52:42Z"
}
```

## Similar tools

- [EU TED Tenders Scraper & Monitor](https://cliqtomedia.com/actors/eu-ted-tenders-scraper/)
- [UK Bank Holidays & Business Day Calculator](https://cliqtomedia.com/actors/uk-bank-holidays-business-days/)
- [UK Postcode Lookup](https://cliqtomedia.com/actors/gb-postcode-lookup/)
- [USAspending Federal Awards & Recipient Monitor](https://cliqtomedia.com/actors/usaspending-federal-awards-monitor/)
- [VIN Decoder & Vehicle Recalls](https://cliqtomedia.com/actors/vin-decoder-vehicle-recalls/)
- [FDA Recalls & Enforcement Monitor](https://cliqtomedia.com/actors/fda-recalls-enforcement-monitor/)
