ICE EUA Carbon Futures
Real-time and historical EU Allowance (EUA) carbon futures data from the Intercontinental Exchange (ICE).
Overview
EU Emission Allowances (EUAs) are carbon credits under the European Union Emissions Trading System (EU ETS). Each EUA represents the right to emit one tonne of CO2 equivalent.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/futures/eua-carbon | Current contract prices |
| GET | /v1/futures/eua-carbon/historical | Historical data |
| GET | /v1/futures/eua-carbon/ohlc | Daily OHLC |
| GET | /v1/futures/eua-carbon/intraday | 5-minute intervals |
| GET | /v1/futures/eua-carbon/spreads | Calendar spreads |
| GET | /v1/futures/eua-carbon/curve | Futures curve |
| GET | /v1/futures/eua-carbon/spread-history | Spread history |
Current Prices
Get current futures prices for all EUA carbon contracts.
GET /v1/futures/eua-carbon
Response
{
"commodity": "EU_CARBON_FUTURES",
"source": "ICE",
"updated_at": "2026-01-10T14:30:00.000Z",
"trading_hours": "07:00-17:00 CET",
"contracts": [
{
"contract_month": "2026-02",
"last_price": 86.50,
"currency": "EUR",
"open": 86.15,
"close": 86.45,
"high": 87.25,
"low": 85.80,
"volume": 45230,
"change_percent": 0.52,
"days_to_expiry": 16,
"contract_status": "front_month",
"is_front_month": true,
"expiry_date": "2026-01-26",
"open_interest": 125678,
"updated_at": "2026-01-10T14:30:00.000Z"
}
],
"metadata": {
"total_contracts": 12,
"data_source": "ice",
"front_month_contract": "2026-02",
"retention_period": "30_days"
}
}
Enhanced Contract Fields
| Field | Type | Description |
|---|---|---|
days_to_expiry | integer | Days until contract expires |
contract_status | string | front_month, near_expiry, active, or expired |
is_front_month | boolean | Whether this is the primary trading contract |
expiry_date | date | Calculated expiry date (ISO 8601) |
open_interest | integer | Open interest (when available) |
ICE EUA Carbon contracts expire on the last Monday of the delivery month.
Historical Data
Query historical futures data for a date range.
GET /v1/futures/eua-carbon/historical
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
from | date | No | 30 days ago | Start date (ISO 8601) |
to | date | No | today | End date (ISO 8601) |
contracts | string | No | all | Comma-separated contracts (e.g., 2026-02,2026-03) |
format | string | No | json | Response format: json or csv |
Example
curl "https://api.oilpriceapi.com/v1/futures/eua-carbon/historical?from=2025-12-01&to=2026-01-10&contracts=2026-02" \
-H "Authorization: Token YOUR_API_KEY"
Response
{
"commodity": "EU_CARBON_FUTURES",
"date_range": {
"from": "2025-12-01",
"to": "2026-01-10"
},
"total_records": 28,
"contracts": [
{
"contract_month": "2026-02",
"contract_code": "EU_CARBON_FUTURES_2026_02",
"total_days": 28,
"daily_data": [
{
"trading_date": "2026-01-10",
"open": 86.15,
"close": 86.45,
"high": 87.25,
"low": 85.80,
"volume": 45230,
"change_percent": 0.52,
"settlement": 86.42
}
]
}
]
}
OHLC Data
Get daily OHLC (Open, High, Low, Close) summaries.
GET /v1/futures/eua-carbon/ohlc
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
days | integer | No | 30 | Number of days (1-365) |
contract | string | No | front month | Contract month (e.g., 2026-02) |
Response
{
"period": "30d",
"date_range": {
"from": "2025-12-11",
"to": "2026-01-10"
},
"contracts": [
{
"contract_month": "2026-02",
"contract_code": "EU_CARBON_FUTURES_2026_02",
"total_days": 20,
"daily_data": [
{
"trading_date": "2026-01-10",
"open": 86.15,
"high": 87.25,
"low": 85.80,
"close": 86.45,
"volume": 45230,
"change_percent": 0.52
}
]
}
]
}
Intraday Data
Get 5-minute interval data for a specific trading day.
GET /v1/futures/eua-carbon/intraday
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
date | date | No | today | Trading date (ISO 8601) |
contract | string | No | front month | Contract month |
Response
{
"commodity": "EU_CARBON_FUTURES",
"trading_date": "2026-01-10",
"contract_month": "2026-02",
"interval": "5min",
"data_points": [
{
"timestamp": "2026-01-10T07:00:00.000Z",
"price": 86.15,
"volume": 234
},
{
"timestamp": "2026-01-10T07:05:00.000Z",
"price": 86.22,
"volume": 187
}
]
}
Calendar Spreads
Analyze price differences between contract months.
GET /v1/futures/eua-carbon/spreads
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pairs | string | No | consecutive | Spread pairs (e.g., 2026-02,2026-03;2026-03,2026-04) |
days | integer | No | 30 | Analysis period (1-365) |
date | date | No | today | Specific date for snapshot |
Response
{
"analysis_period": "30d",
"date_range": {
"from": "2025-12-11",
"to": "2026-01-10"
},
"total_pairs": 2,
"spreads": [
{
"front_contract": "2026-02",
"back_contract": "2026-03",
"spread_type": "calendar_spread_1m",
"data_points": 20,
"current_spread": 0.45,
"statistics": {
"mean": 0.42,
"median": 0.44,
"min": 0.30,
"max": 0.55,
"standard_deviation": 0.08,
"range": 0.25
}
}
]
}
Futures Curve
Analyze the term structure across all contracts.
GET /v1/futures/eua-carbon/curve
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
date | date | No | today | Analysis date |
Response
{
"analysis_date": "2026-01-10",
"curve_type": "contango",
"total_contracts": 12,
"front_month": {
"contract_month": "2026-02",
"settlement_price": 86.45,
"months_to_expiry": 1
},
"back_month": {
"contract_month": "2027-01",
"settlement_price": 92.15,
"months_to_expiry": 12
},
"contracts": [
{
"contract_month": "2026-02",
"settlement_price": 86.45,
"months_to_expiry": 1,
"days_to_expiry": 16,
"is_front_month": true
}
],
"curve_metrics": {
"front_month_price": 86.45,
"back_month_price": 92.15,
"total_slope": 5.70,
"slope_percentage": 6.59,
"average_price": 89.30,
"price_range": 5.70,
"steepness": 0.52
}
}
Curve Types:
contango- Front month lower than back (positive slope, typical for carbon)backwardation- Front month higher than back (negative slope)flat- Minimal price difference
Spread History
Get historical spread data between two specific contracts.
GET /v1/futures/eua-carbon/spread-history
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
front_contract | string | Yes | - | Front contract (e.g., 2026-02) |
back_contract | string | Yes | - | Back contract (e.g., 2026-03) |
days | integer | No | 30 | History period (1-365) |
Example
curl "https://api.oilpriceapi.com/v1/futures/eua-carbon/spread-history?front_contract=2026-02&back_contract=2026-03&days=30" \
-H "Authorization: Token YOUR_API_KEY"
Response
{
"front_contract": "2026-02",
"back_contract": "2026-03",
"period_days": 30,
"data_points": 20,
"spread_data": [
{
"trading_date": "2026-01-10",
"front_contract": {
"contract_month": "2026-02",
"price": 86.45
},
"back_contract": {
"contract_month": "2026-03",
"price": 86.90
},
"spread_value": 0.45,
"spread_percentage": 0.52
}
],
"spread_statistics": {
"mean": 0.42,
"median": 0.44,
"min": 0.30,
"max": 0.55,
"standard_deviation": 0.08
}
}
Error Responses
| Status | Error | Description |
|---|---|---|
| 400 | Invalid contract format | Use YYYY-MM format |
| 400 | Date range exceeds maximum | Max 730 days |
| 401 | Authentication required | Missing or invalid API key |
| 503 | No data available | Data being refreshed, retry shortly |
Code Examples
Python
import requests
api_key = "YOUR_API_KEY"
headers = {"Authorization": f"Token {api_key}"}
# Get current EUA carbon prices
response = requests.get(
"https://api.oilpriceapi.com/v1/futures/eua-carbon",
headers=headers
)
data = response.json()
for contract in data["contracts"]:
print(f"{contract['contract_month']}: EUR {contract['last_price']}")
print(f" Days to expiry: {contract['days_to_expiry']}")
print(f" Status: {contract['contract_status']}")
JavaScript
const response = await fetch(
"https://api.oilpriceapi.com/v1/futures/eua-carbon",
{
headers: { "Authorization": "Token YOUR_API_KEY" }
}
);
const data = await response.json();
data.contracts.forEach(contract => {
console.log(`${contract.contract_month}: EUR ${contract.last_price}`);
console.log(` Days to expiry: ${contract.days_to_expiry}`);
console.log(` Status: ${contract.contract_status}`);
});
Market Information
About EU ETS
The EU Emissions Trading System is the world's largest carbon market, covering approximately 40% of EU greenhouse gas emissions. Key features:
- Participants: Power plants, industrial facilities, airlines
- Cap: Total emissions are capped and reduced over time
- Compliance: Emitters must surrender allowances equal to their emissions
- Price drivers: Energy prices, weather, policy changes, economic activity
Trading Calendar
- Trading hours: 07:00-17:00 CET
- Contract expiry: Last Monday of the delivery month
- Settlement: Physical delivery of EUA certificates