API Reference

Calculated Metrics API

Crack spreads, basis differentials, refinery margins, curve structure, physical premiums, fuel switching indicators, storage analytics, market annotations, and CFTC positioning data. All computed from real-time price data.

Starter plan+REST APIJSON responsesHistorical time series

Quick Start

# Get 3-2-1 crack spread

curl -H "Authorization: Token YOUR_API_KEY" \
  "https://api.oilpriceapi.com/v1/spreads/crack?type=3-2-1"

# Python

import requests

resp = requests.get(
    "https://api.oilpriceapi.com/v1/spreads/crack",
    headers={"Authorization": "Token YOUR_API_KEY"},
    params={"type": "3-2-1"}
)
result = resp.json()["data"]
print("3-2-1 Crack: $" + str(result["value"]) + "/bbl")

Spreads & Margins

GET/v1/spreads/crack

Crack Spreads

Refinery crack spreads: 3-2-1 composite, jet fuel, diesel, gasoline. Measures the margin between crude oil input and refined product output.

Parameters

NameTypeRequiredDescription
typestringNoSpread type: 3-2-1, jet, diesel, gasoline (default: 3-2-1)
crudestringNoCrude benchmark code (default: BRENT_CRUDE_USD)
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/spreads/crack/historical, /v1/spreads/crack/all
GET/v1/spreads/basis

Basis Spreads

Hub-to-hub price differentials. Signals pipeline bottlenecks, regional supply/demand, and arbitrage windows.

Parameters

NameTypeRequiredDescription
pairstringYesPair: WAHA_HH, BRENT_WTI, BRENT_DUBAI, TTF_HH, BRENT_OMAN
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/spreads/basis/historical, /v1/spreads/basis/all
GET/v1/spreads/margin

Refinery Margin Indices

Composite yield-weighted refinery margins for three global regions.

Parameters

NameTypeRequiredDescription
indexstringNoIndex: usgc, singapore, nwe (default: usgc)
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/spreads/margin/historical, /v1/spreads/margin/all
GET/v1/spreads/physical-premium

Physical vs Futures Premium

Spot price premium over front-month futures — the "molecule contagion" signal of physical scarcity.

Parameters

NameTypeRequiredDescription
commoditystringNoCommodity: BRENT, WTI (default: BRENT)
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/spreads/physical-premium/historical, /v1/spreads/physical-premium/all
GET/v1/spreads/curve-structure

Curve Structure Analysis

Futures curve structure: backwardation/contango detection, term slope, severity classification, and human-readable signal.

Parameters

NameTypeRequiredDescription
commoditystringYesICE_BRENT, ICE_WTI, ICE_GASOIL, NYMEX_NG, ICE_TTF
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/spreads/curve-structure/all

Intelligence Indicators

GET/v1/indicators/fuel-switching

Fuel Switching / Oil-Parity

Calculates the oil-parity ratio (17.2% rule). When gas exceeds 17.2% of crude on an energy-equivalent basis, utilities switch from gas to oil.

Parameters

NameTypeRequiredDescription
gasstringNoGas benchmark (default: NATURAL_GAS_USD)
crudestringNoCrude benchmark (default: BRENT_CRUDE_USD)
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/indicators/fuel-switching/historical
GET/v1/indicators/price-context

Enriched Price Context

Wraps any commodity price with change metrics, percentile rankings, 52-week range, anomaly detection, and optionally related cross-commodity spreads.

Parameters

NameTypeRequiredDescription
codestringYesAny commodity code (e.g., BRENT_CRUDE_USD)
spreadsstringNoSet to "related" to include cross-commodity spreads
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
GET/v1/indicators/storage-analytics

Storage Analytics

Enhanced Cushing/SPR storage: utilization %, draw/build rates, days to depletion, 5-year seasonal comparison, anomaly flags.

Parameters

NameTypeRequiredDescription
locationstringNoCUSHING or SPR (default: CUSHING)
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/indicators/storage-analytics/all
GET/v1/indicators/annotations

Market Annotations

Automatic detection of market events: price anomalies (z-score), 52-week records, velocity surges, and consecutive streaks.

Parameters

NameTypeRequiredDescription
codestringYesCommodity code to annotate
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/indicators/annotations/batch?codes=CODE1,CODE2
GET/v1/indicators/cftc-positioning

CFTC COT Positioning

Speculative vs commercial positioning from CFTC Commitments of Traders reports. Weekly data for WTI, Brent, Natural Gas, Heating Oil, Gasoline.

Parameters

NameTypeRequiredDescription
commoditystringNoWTI, BRENT, NATURAL_GAS, HEATING_OIL, GASOLINE (default: WTI)
start_datestringNoFor /historical: YYYY-MM-DD format
end_datestringNoFor /historical: YYYY-MM-DD format
Also available: /v1/indicators/cftc-positioning/historical, /v1/indicators/cftc-positioning/all

Authentication & Access

All calculated metrics endpoints require authentication via API key header:

Authorization: Token YOUR_API_KEY

These endpoints are available on Starter plans and above. Free plans receive a 403 error with an upgrade prompt.

Ready to get started?

Crack spreads, basis differentials, and market intelligence via REST API.