Carbon Intensity API

Carbon Intensity API Great Britain

Scroll down for code samples and responses.

Introduction
This is the Official Carbon Intensity API for Great Britain developed by National Energy System Operator (NESO). You can find out more about carbon intensity at carbonintensity.org.uk.

Summary
National Energy System Operator’s Carbon Intensity API provides an indicative trend of regional carbon intensity of the electricity system in Great Britain (GB) up to 2 days ahead of real-time. It provides programmatic and timely access to both forecast and estimated carbon intensity data. The Carbon Intensity forecast includes CO2 emissions related to electricity generation only. The includes emissions from all large metered power stations, interconnector imports, transmission and distribution losses, and accounts for national electricity demand, embedded wind and solar generation.

Base URL: api.carbonintensity.org.uk

Further Information
Methodology: National Forecast and Regional Forecast
Terms: API Terms of Use
Email: Lyndon Ruff
License: CC BY 4.0

Carbon Intensity - National

Carbon Intensity data

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for current half hour

Get Carbon Intensity data for current half hour. All times provided in UTC (+00:00).

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/date

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/date \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/date HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/date',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/date',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/date',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/date', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/date");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for today

Get Carbon Intensity data for today. All times provided in UTC (+00:00).

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/date/{date}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/date/{date} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/date/{date} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/date/{date}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/date/{date}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/date/{date}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/date/{date}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/date/{date}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for specific date

Get Carbon Intensity data for a specific date. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
date path string true Date in YYYY-MM-DD format e.g. 2017-08-25

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/date/{date}/{period}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/date/{date}/{period} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/date/{date}/{period} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/date/{date}/{period}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/date/{date}/{period}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/date/{date}/{period}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/date/{date}/{period}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/date/{date}/{period}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for specific date and period

Get Carbon Intensity data for a specific date and half hour settlement period. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
date path string true Date in YYYY-MM-DD format e.g. 2017-08-25
period path string true Half hour settlement period between 1-48 e.g. 42

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/factors

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/factors \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/factors HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/factors',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/factors',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/factors',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/factors', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/factors");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity factors for each fuel type

Get Carbon Intensity factors for each fuel type.

Example responses

{
  "data":[
  {
    "Biomass": 120,
    "Coal": 937,
    "Dutch Imports": 474,
    "French Imports": 53,
    "Gas (Combined Cycle)": 394,
    "Gas (Open Cycle)": 651,
    "Hydro": 0,
    "Irish Imports": 458,
    "Nuclear": 0,
    "Oil": 935,
    "Other": 300,
    "Pumped Storage": 0,
    "Solar": 0,
    "Wind": 0
  }]
}

Responses

Status Meaning Description Schema
200 OK 200 response Factors
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/{from}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/{from} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/{from} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/{from}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/{from}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/{from}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/{from}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/{from}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for specific half hour period

Get Carbon Intensity data for specific half hour period. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/{from}/fw24h

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/{from}/fw24h \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/{from}/fw24h HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/{from}/fw24h',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/{from}/fw24h',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/{from}/fw24h',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/{from}/fw24h', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/{from}/fw24h");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data 24hrs forwards from specific datetime

Get Carbon Intensity data between the {from} datetime specified and 24hrs before. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/{from}/fw48h

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/{from}/fw48h \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/{from}/fw48h HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/{from}/fw48h',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/{from}/fw48h',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/{from}/fw48h',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/{from}/fw48h', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/{from}/fw48h");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data 48hrs forwards from specific datetime

Get Carbon Intensity data between the {from} datetime specified and 48hrs after. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/{from}/pt24h

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/{from}/pt24h \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/{from}/pt24h HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/{from}/pt24h',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/{from}/pt24h',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/{from}/pt24h',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/{from}/pt24h', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/{from}/pt24h");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data 24hrs in the past of a specific datetime

Get Carbon Intensity data between the {from} datetime specified and 24hrs before. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/{from}/{to}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/{from}/{to} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/{from}/{to} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/{from}/{to}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/{from}/{to}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/{from}/{to}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/{from}/{to}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/{from}/{to}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data between from and to datetime

Get Carbon Intensity data between the {from} and {to} datetimes. The maximum date range is limited to 14 days. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
to path string true End datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses

{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Intensity
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

Statistics

Carbon Intensity statistics

GET /intensity/stats/{from}/{to}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/stats/{from}/{to} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/stats/{from}/{to} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity statistics between from and to datetime

Get Carbon Intensity statistics (average, max, mean) between from and to datetime. The maximum date range is limited to 30 days. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
to path string true End datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-26T17:00Z

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "max": 320,
      "average": 266,
      "min": 180,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Statistics
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /intensity/stats/{from}/{to}/{block}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}/{block} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}/{block} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}/{block}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}/{block}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}/{block}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}/{block}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/intensity/stats/{from}/{to}/{block}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get block average Carbon Intensity statistics between from and to datetime

Get block average Carbon Intensity statistics (average, max, mean) between from and to datetime. The maximum date range is limited to 30 days. The block length must be between 1 and 24 hours and should be an integer. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. '2017-08-25T12:35Z'
to path string true End datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. '2017-08-26T17:00Z'
block path string true Block length in hours i.e. a block length of 2 hrs over a 24 hr period returns 12 items with the average, max, min for each 2 hr block e.g. 2017-08-26T17:00Z/2017-08-27T17:00Z/2

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "max": 320,
      "average": 266,
      "min": 180,
      "index": "moderate"
    }
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Statistics
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

Generation Mixbeta

Generation Mix for the GB power system. Contains the following fuel types: gas, coal, nuclear, biomass, hydro, imports, solar, wind, other.

GET /generation

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/generation \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/generation HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/generation',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/generation',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/generation',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/generation', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/generation");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get generation mix for current half hour

Get generation mix for current half hour. All times provided in UTC (+00:00).

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "generationmix": [
      {
        "fuel": "gas",
        "perc": 43.6
      },
      {
        "fuel": "coal",
        "perc": 0.7
      },
      {
        "fuel": "biomass",
        "perc": 4.2
      },
      {
        "fuel": "nuclear",
        "perc": 17.6
      },
      {
        "fuel": "hydro",
        "perc": 1.1
      },
      {
        "fuel": "imports",
        "perc": 6.5
      },
      {
        "fuel": "other",
        "perc": 0.3
      },
      {
        "fuel": "wind",
        "perc": 6.8
      },
      {
        "fuel": "solar",
        "perc": 18.1
      }
    ]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Generation
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /generation/{from}/pt24h

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/generation/{from}/pt24h \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/generation/{from}/pt24h HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/generation/{from}/pt24h',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/generation/{from}/pt24h',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/generation/{from}/pt24h',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/generation/{from}/pt24h', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/generation/{from}/pt24h");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get generation mix for the past 24 hours

Get generation mix for the past 24 hours. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "generationmix": [
      {
        "fuel": "gas",
        "perc": 43.6
      },
      {
        "fuel": "coal",
        "perc": 0.7
      },
      {
        "fuel": "biomass",
        "perc": 4.2
      },
      {
        "fuel": "nuclear",
        "perc": 17.6
      },
      {
        "fuel": "hydro",
        "perc": 1.1
      },
      {
        "fuel": "imports",
        "perc": 6.5
      },
      {
        "fuel": "other",
        "perc": 0.3
      },
      {
        "fuel": "wind",
        "perc": 6.8
      },
      {
        "fuel": "solar",
        "perc": 18.1
      }
    ]
  }]
}

Responses

Status Meaning Description Schema
200 OK 200 response Generation
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /generation/{from}/{to}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/generation/{from}/{to} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/generation/{from}/{to} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/generation/{from}/{to}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/generation/{from}/{to}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/generation/{from}/{to},
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/generation/{from}/{to}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/generation/{from}/{to}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get generation mix between from and to datetimes

Get generation mix between from and to datetimes. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
to path string true End datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "generationmix": [
      {
        "fuel": "gas",
        "perc": 43.6
      },
      {
        "fuel": "coal",
        "perc": 0.7
      },
      {
        "fuel": "biomass",
        "perc": 4.2
      },
      {
        "fuel": "nuclear",
        "perc": 17.6
      },
      {
        "fuel": "hydro",
        "perc": 2.2
      },
      {
        "fuel": "imports",
        "perc": 6.5
      },
      {
        "fuel": "other",
        "perc": 0.3
      },
      {
        "fuel": "wind",
        "perc": 6.8
      },
      {
        "fuel": "solar",
        "perc": 18.1
      }
    ]
  }]
}

Responses

Status Meaning Description Schema
200 OK 200 response Generation
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

Carbon Intensity - Regionalbeta

Regional Carbon Intensity data

GET /regional

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for current half hour for GB regions

Get Regional Carbon Intensity data for current half hour. All times provided in UTC (+00:00).

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 3,
      "dnoregion": "Electricity North West",
      "shortname": "North West England",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional From-To
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/england

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/england \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/england',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/england',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/england',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/england', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/england");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for current half hour for England

Get Carbon Intensity data for current half hour for England. All times provided in UTC (+00:00).

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 15,
      "dnoregion": "England",
      "shortname": "England",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional From-To
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/scotland

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/scotland \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/scotland',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/scotland',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/scotland',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/scotland', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/scotland");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for current half hour for Scotland

Get Carbon Intensity data for current half hour for Scotland. All times provided in UTC (+00:00).

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 16,
      "dnoregion": "Scotland",
      "shortname": "Scotland",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional From-To
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/wales

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/wales \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/wales',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/wales',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/wales',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/wales', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/wales");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for current half hour for Wales

Get Carbon Intensity data for current half hour for Wales. All times provided in UTC (+00:00).

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 17,
      "dnoregion": "Wales",
      "shortname": "Wales",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional From-To
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/postcode/{postcode}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/postcode/{postcode} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/postcode/{postcode} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/postcode/{postcode}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/postcode/{postcode}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/postcode/{postcode}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/postcode/{postcode}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/postcode/{postcode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for current half hour for specified postcode

Get Regional Carbon Intensity data for current half hour for specified postcode. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
postcode path string true Outward postcode i.e. RG41 or SW1 or TF8. Do not include full postcode, outward postcode only.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "postcode": "RG10",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/regionid/{regionid}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/regionid/{regionid} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/regionid/{regionid} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/regionid/{regionid}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/regionid/{regionid}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/regionid/{regionid}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/regionid/{regionid}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/regionid/{regionid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for current half hour for specified region

Get Regional Carbon Intensity data for current half hour for specified region. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
regionid path string true Region ID of GB region. See list of Region IDs here.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/fw24h

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for next 24h for GB regions

Get Regional Carbon Intensity data for next 24h. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 3,
      "dnoregion": "Electricity North West",
      "shortname": "North West England",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional From-To
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/fw24h/postcode/{postcode}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/postcode/{postcode} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/postcode/{postcode} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/postcode/{postcode}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/postcode/{postcode}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/postcode/{postcode}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/postcode/{postcode}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/postcode/{postcode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for next 24h for specified postcode

Get Regional Carbon Intensity data for next 24h for specified postcode. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
postcode path string true Outward postcode i.e. RG41 or SW1 or TF8. Do not include full postcode, outward postcode only.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "postcode": "RG10",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/fw24h/regionid/{regionid}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/regionid/{regionid} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/regionid/{regionid} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/regionid/{regionid}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/regionid/{regionid}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/regionid/{regionid}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/regionid/{regionid}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/fw24h/regionid/{regionid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for next 24h for specified region

Get Regional Carbon Intensity data for next 24h for specified region. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
regionid path string true Region ID of GB region. See list of Region IDs here.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/fw48h

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for next 48h for GB regions

Get Regional Carbon Intensity data for next 48h. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 3,
      "dnoregion": "Electricity North West",
      "shortname": "North West England",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional From-To
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/fw48h/postcode/{postcode}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/postcode/{postcode} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/postcode/{postcode} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/postcode/{postcode}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/postcode/{postcode}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/postcode/{postcode}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/postcode/{postcode}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/postcode/{postcode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for next 48h for specified postcode

Get Regional Carbon Intensity data for next 48h for specified postcode. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
postcode path string true Outward postcode i.e. RG41 or SW1 or TF8. Do not include full postcode, outward postcode only.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "postcode": "RG10",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/fw48h/regionid/{regionid}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/regionid/{regionid} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/regionid/{regionid} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/regionid/{regionid}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/regionid/{regionid}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/regionid/{regionid}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/regionid/{regionid}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/fw48h/regionid/{regionid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for next 48h for specified region

Get Regional Carbon Intensity data for next 48h for specified region. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
regionid path string true Region ID of GB region. See list of Region IDs here.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/pt24h

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for past 24h for GB regions

Get Regional Carbon Intensity data for past 24h. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 3,
      "dnoregion": "Electricity North West",
      "shortname": "North West England",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional From-To
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/pt24h/postcode/{postcode}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/postcode/{postcode} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/postcode/{postcode} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/postcode/{postcode}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/postcode/{postcode}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/postcode/{postcode}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/postcode/{postcode}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/postcode/{postcode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for past 24h for specified postcode

Get Regional Carbon Intensity data for past 24h for specified postcode. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
postcode path string true Outward postcode i.e. RG41 or SW1 or TF8. Do not include full postcode, outward postcode only.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "postcode": "RG10",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/pt24h/regionid/{regionid}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/regionid/{regionid} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/regionid/{regionid} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/regionid/{regionid}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/regionid/{regionid}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/regionid/{regionid}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/regionid/{regionid}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/pt24h/regionid/{regionid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data for past 24h for specified region

Get Regional Carbon Intensity data for past 24h for specified region. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
regionid path string true Region ID of GB region. See list of Region IDs here.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/{to}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/{to} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/{to} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data between specified datetimes for GB regions

Get Regional Carbon Intensity data between specified datetimes. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
to path string true End datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z

Example responses


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 3,
      "dnoregion": "Electricity North West",
      "shortname": "North West England",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional From-To
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/{to}/postcode/{postcode}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/postcode/{postcode} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/postcode/{postcode} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/postcode/{postcode}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/postcode/{postcode}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/postcode/{postcode}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/postcode/{postcode}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/postcode/{postcode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data between specified datetimes for specified postcode

Get Regional Carbon Intensity data between specified datetimes for specified postcode. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
to path string true End datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
postcode path string true Outward postcode i.e. RG41 or SW1 or TF8. Do not include full postcode, outward postcode only.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "postcode": "RG10",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

GET /regional/intensity/{from}/{to}/regionid/{regionid}

Code samples

# You can also use wget
curl -X GET https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/regionid/{regionid} \
  -H 'Accept: application/json'
 
GET https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/regionid/{regionid} HTTP/1.1
Host: api.carbonintensity.org.uk
 
Accept: application/json
 
var headers = {
  'Accept':'application/json'
 
};
 
$.ajax({
  url: 'https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/regionid/{regionid}',
  method: 'get',
 
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');
 
const headers = {
  'Accept':'application/json'
 
};
 
fetch('https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/regionid/{regionid}',
{
  method: 'GET',
 
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'
 
headers = {
  'Accept' => 'application/json'
}
 
result = RestClient.get 'https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/regionid/{regionid}',
  params: {}, headers: headers
 
p JSON.parse(result)
import requests
headers = {
  'Accept': 'application/json'
}
 
r = requests.get('https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/regionid/{regionid}', params={}, headers = headers)
 
print r.json()
URL obj = new URL("https://api.carbonintensity.org.uk/regional/intensity/{from}/{to}/regionid/{regionid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Get Carbon Intensity data between specified datetimes for specified region

Get Regional Carbon Intensity data between specified datetimes for specified region. All times provided in UTC (+00:00).

Parameters

Parameter In Type Required Description
from path string true Start datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
to path string true End datetime in in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z
regionid path string true Region ID of GB region. See list of Region IDs here.

Example responses


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix": [
        {
          "fuel": "gas",
          "perc": 43.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 4.2
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 2.2
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.8
        },
        {
          "fuel": "solar",
          "perc": 18.1
        }
      ]
    }]
  }]
}
{
  "error":{
    "code": "400 Bad Request",
    "message": "string"
  }
}
{
  "error":{
    "code": "500 Internal Server Error",
    "message": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK 200 response Regional ID
400 Bad Request 400 response Error
500 Internal Server Error 500 response Error
Status Header Type Format Description
200 Access-Control-Allow-Origin string

Schemas

Intensity


{
  "data":[
    {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "forecast": 266,
      "actual": 263,
      "index": "moderate"
    }
  }]
}

Properties

Name Type Required Description
data object false Data object.
from string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:30Z. All times provided in UTC (+00:00).
to string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:30Z. All times provided in UTC (+00:00).
intensity object false Carbon Intensity data (forecast, actual, index).
»forecast number false The forecast Carbon Intensity for the half hour in units gCO2/kWh.
»actual number false The estimated actual Carbon Intensity for the half hour in units gCO2/kWh.
»index string false The index is a measure of the Carbon Intensity represented on a scale between 'very low', 'low', 'moderate', 'high', 'very high'.

Factors


{
  "data":[
  {
    "Biomass": 120,
    "Coal": 937,
    "Dutch Imports": 474,
    "French Imports": 53,
    "Gas (Combined Cycle)": 394,
    "Gas (Open Cycle)": 651,
    "Hydro": 0,
    "Irish Imports": 458,
    "Nuclear": 0,
    "Oil": 935,
    "Other": 300,
    "Pumped Storage": 0,
    "Solar": 0,
    "Wind": 0
  }]
}

Properties

Name Type Required Description
data object false Data object.
Biomass number false Carbon intensity factor of average biomass power plants in gCO2/kWh.
Coal number false Carbon intensity factor of average coal power plants in gCO2/kWh.
Dutch Imports number false Carbon intensity factor of average long-term Dutch imports in gCO2/kWh.
French Imports number false Carbon intensity factor of average long-term French imports in gCO2/kWh.
Gas (Combined Cycle) number false Carbon intensity factor of average CCGT power plants in gCO2/kWh.
Gas (Open Cycle) number false Carbon intensity factor of average OCGT power plants in gCO2/kWh.
Hydro number false Carbon intensity factor of hydro in gCO2/kWh.
Irish Imports number false Carbon intensity factor of average long-term Irish imports in gCO2/kWh.
Nuclear number false Carbon intensity factor of nuclear in gCO2/kWh.
Oil number false Carbon intensity factor of oil power plants in gCO2/kWh.
Other number false Carbon intensity factor of power plants categorised as other in gCO2/kWh.
Pumped Storage number false Carbon intensity factor of pumped hydro-electric storage in gCO2/kWh.
Solar number false Carbon intensity factor of solar in gCO2/kWh.
Wind number false Carbon intensity factor of wind in gCO2/kWh.

Error


{
  "error":{
    "code": "string",
    "message": "string"
  }
}

Properties

Name Type Required Description
error object false Error object.
code string false The HTTP error code produced.
message string false The error message produced.

Statistics


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "intensity": {
      "max": 320,
      "average": 266,
      "min": 180,
      "index": "moderate"
    }
  }]
}

Properties

Name Type Required Description
data object false Data object.
from string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z. All times provided in UTC (+00:00).
to string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2017-08-25T12:35Z. All times provided in UTC (+00:00).
intensity object false Carbon Intensity statistics (max, average, min, index).
»max number false The maximum Carbon Intensity for the datetime range in units gCO2/kWh. Future periods use forecast data. Past data uses actual data.
»average number false The average Carbon Intensity for the datetime range in units gCO2/kWh. Future periods use forecast data. Past data uses actual data.
»min number false The maximum Carbon Intensity for the datetime range in units gCO2/kWh. Future periods use forecast data. Past data uses actual data.
»index string false The index is a measure of the Carbon Intensity represented on a scale between 'very low', 'low', 'moderate', 'high', 'very high'.

Regional From-To


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "regions":[
    {
      "regionid": 3,
      "dnoregion": "Electricity North West",
      "shortname": "North West England",
      "postcode": "RG10",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix":[
        {
          "fuel": "gas",
          "perc": 41.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 3.4
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 1.2
        },
        {
          "fuel": "storage",
          "perc": 0.8
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.9
        },
        {
          "fuel": "solar",
          "perc": 20.9
        }
      ]
    }]
  }]
}

Properties

Name Type Required Description
data object false Data object.
from string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2018-01-20T12:00Z. All times provided in UTC (+00:00).
to string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2018-01-20T12:30Z. All times provided in UTC (+00:00).
regions object false GB regions (regionid, dnoregion, shortname, intensity).
»regionid number false Region ID 1-17.
»dnoregion string false Name of Distribution Network Operator (DNO) in region.
»shortname string false Name of region.
»postcode string false Outward postcode i.e. RG10.
»intensity object false Carbon Intensity data (forecast, actual, index).
»»forecast number false The forecast Carbon Intensity for the half hour in units gCO2/kWh.
»»index string false The index is a measure of the Carbon Intensity represented on a scale between 'very low', 'low', 'moderate', 'high', 'very high'.
»generationmix object false Fuel types.
»»fuel string false Name of fuel type.
»»perc number false Generation output of fuel type as a percentage of total generation.

Regional ID


{
  "data":[
  {
    "regionid": 3,
    "dnoregion": "Electricity North West",
    "shortname": "North West England",
    "postcode": "RG10",
    "data":[
    {
      "from": "2018-01-20T12:00Z",
      "to": "2018-01-20T12:30Z",
      "intensity": {
        "forecast": 266,
        "index": "moderate"
      }
      "generationmix":[
        {
          "fuel": "gas",
          "perc": 41.6
        },
        {
          "fuel": "coal",
          "perc": 0.7
        },
        {
          "fuel": "biomass",
          "perc": 3.4
        },
        {
          "fuel": "nuclear",
          "perc": 17.6
        },
        {
          "fuel": "hydro",
          "perc": 1.2
        },
        {
          "fuel": "storage",
          "perc": 0.8
        },
        {
          "fuel": "imports",
          "perc": 6.5
        },
        {
          "fuel": "other",
          "perc": 0.3
        },
        {
          "fuel": "wind",
          "perc": 6.9
        },
        {
          "fuel": "solar",
          "perc": 20.9
        }
      ]
    }]
  }]
}

Properties

Name Type Required Description
data object false Data object.
regionid number false Region ID 1-17.
dnoregion string false Name of Distribution Network Operator (DNO) in region.
shortname string false Name of region.
postcode string false Outward postcode i.e. RG10.
data object false GB regions (regionid, dnoregion, shortname, intensity).
»from string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2018-01-20T12:00Z. All times provided in UTC (+00:00).
»to string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2018-01-20T12:30Z. All times provided in UTC (+00:00).
»intensity object false Carbon Intensity data (forecast, actual, index).
»»forecast number false The forecast Carbon Intensity for the half hour in units gCO2/kWh.
»»index string false The index is a measure of the Carbon Intensity represented on a scale between 'very low', 'low', 'moderate', 'high', 'very high'.
»generationmix object false Fuel types.
»»fuel string false Name of fuel type.
»»perc number false Generation output of fuel type as a percentage of total generation.

Generation


{
  "data":[
  {
    "from": "2018-01-20T12:00Z",
    "to": "2018-01-20T12:30Z",
    "generationmix":[
      {
        "fuel": "gas",
        "perc": 41.6
      },
      {
        "fuel": "coal",
        "perc": 0.7
      },
      {
        "fuel": "biomass",
        "perc": 3.4
      },
      {
        "fuel": "nuclear",
        "perc": 17.6
      },
      {
        "fuel": "hydro",
        "perc": 2.0
      },
      {
        "fuel": "imports",
        "perc": 6.5
      },
      {
        "fuel": "other",
        "perc": 0.3
      },
      {
        "fuel": "wind",
        "perc": 6.9
      },
      {
        "fuel": "solar",
        "perc": 20.9
      }
    ]
  }]
}

Properties

Name Type Required Description
data object false Data object.
from string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2018-01-20T12:00Z. All times provided in UTC (+00:00).
to string false Datetime in ISO8601 format YYYY-MM-DDThh:mmZ e.g. 2018-01-20T12:30Z. All times provided in UTC (+00:00).
generationmix object false Fuel types.
»fuel string false Name of fuel type.
»perc number false Generation output of fuel type as a percentage of total generation.

Regions

List of GB Regions

Region ID Shortname
1 North Scotland
2 South Scotland
3 North West England
4 North East England
5 Yorkshire
6 North Wales
7 South Wales
8 West Midlands
9 East Midlands
10 East England
11 South West England
12 South England
13 London
14 South East England
15 England
16 Scotland
17 Wales