Skip to main content
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 and Hobby plans receive a 403 error with an upgrade prompt.

Ready to get started?

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