Real-time and historical WTI crude oil futures data from the Intercontinental Exchange (ICE).
| Method | Endpoint | Description |
|---|
| GET | /v1/futures/ice-wti | Current contract prices |
| GET | /v1/futures/ice-wti/historical | Historical data |
| GET | /v1/futures/ice-wti/ohlc | Daily OHLC |
| GET | /v1/futures/ice-wti/intraday | 5-minute intervals |
| GET | /v1/futures/ice-wti/spreads | Calendar spreads |
| GET | /v1/futures/ice-wti/curve | Futures curve |
| GET | /v1/futures/ice-wti/spread-history | Spread history |
{
"commodity": "WTI_FUTURES",
"source": "ICE",
"updated_at": "2025-12-29T14:30:00.000Z",
"trading_hours": "01:00-23:00 GMT",
"contracts": [
{
"contract_month": "2026-02",
"last_price": 71.25,
"currency": "USD",
"open": 70.95,
"close": 71.20,
"high": 71.55,
"low": 70.80,
"volume": 98432,
"change_percent": 0.35,
"days_to_expiry": 18,
"contract_status": "front_month",
"is_front_month": true,
"expiry_date": "2026-01-28",
"open_interest": 198234
}
],
"metadata": {
"total_contracts": 12,
"data_source": "ice",
"front_month_contract": "2026-02"
}
}
| 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 WTI contracts expire on the last business day of the month, two months prior to the delivery month.
GET /v1/futures/ice-wti/historical
| Parameter | Type | Default | Description |
|---|
from | date | 30 days ago | Start date |
to | date | today | End date |
contracts | string | all | Contract months |
format | string | json | json or csv |
GET /v1/futures/ice-wti/ohlc
| Parameter | Type | Default | Description |
|---|
days | integer | 30 | Period (1-365) |
contract | string | front month | Contract month |
GET /v1/futures/ice-wti/intraday
| Parameter | Type | Default | Description |
|---|
date | date | today | Trading date |
contract | string | front month | Contract month |
GET /v1/futures/ice-wti/spreads
| Parameter | Type | Default | Description |
|---|
pairs | string | consecutive | Spread pairs |
days | integer | 30 | Analysis period |
GET /v1/futures/ice-wti/curve
| Parameter | Type | Default | Description |
|---|
date | date | today | Analysis date |
GET /v1/futures/ice-wti/spread-history
| Parameter | Type | Required | Description |
|---|
front_contract | string | Yes | Front contract |
back_contract | string | Yes | Back contract |
days | integer | No | History period |
import requests
response = requests.get(
"https://api.oilpriceapi.com/v1/futures/ice-wti",
headers={"Authorization": "Token YOUR_API_KEY"}
)
data = response.json()
print(f"WTI Front Month: ${data['contracts'][0]['last_price']}")