/v1/curve
One commodity's full dated futures curve, roll yield and shape
Try it live
10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.
It works. Grab an API key and use it in your project.
Get an API keyCode snippets
curl "https://api.oanor.com/commoditycurve-api/v1/curve" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/commoditycurve-api/v1/curve", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/commoditycurve-api/v1/curve");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
"https://api.oanor.com/commoditycurve-api/v1/curve",
headers={"x-oanor-key": "oanor_test_..."}
)
Example response
A real response from this endpoint, captured by the latest health check.
{
"data": {
"name": "Crude Oil (WTI)",
"note": "The dated futures curve for Crude Oil (WTI). roll_yield_annualized_pct is the front-vs-second-month difference annualised: positive = backwardation (a long roll earns it), negative = contango (a long roll pays it away). front_vs_back_pct compares the front to the most-deferred contract. Read fresh per call, lightly cached.",
"read": "backwardation — front richer than deferred; a long futures roll EARNS 22.5%/yr (tight market)",
"unit": "$/bbl",
"curve": [
{
"price": 84.34,
"expiry": "2026-07",
"contract": "CLN26.NYM"
},
{
"price": 82.79,
"expiry": "2026-08",
"contract": "CLQ26.NYM"
},
{
"price": 81.35,
"expiry": "2026-09",
"contract": "CLU26.NYM"
},
{
"price": 79.81,
"expiry": "2026-10",
"contract": "CLV26.NYM"
},
{
"price": 78.5,
"expiry": "2026-11",
"contract": "CLX26.NYM"
},
{
"price": 77.3,
"expiry": "2026-12",
"contract": "CLZ26.NYM"
},
{
"price": 76.32,
"expiry": "2027-01",
"contract": "CLF27.NYM"
},
{
"price": 75.24,
"expiry": "2027-02",
"contract": "CLG27.NYM"
},
{
"price": 74.93,
"expiry": "2027-03",
"contract": "CLH27.NYM"
},
{
"price": 74.24,
"expiry": "2027-04",
"contract": "CLJ27.NYM"
},
{
"price": 73.77,
"expiry": "2027-05",
"contract": "CLK27.NYM"
}
],
"shape": "backwardation",
"source": "Yahoo Finance (dated CL futures)",
"commodity": "oil",
"contracts": 11,
"front_month": {
"price": 84.34,
"expiry": "2026-07",
"contract": "CLN26.NYM"
},
"second_month": {
"price": 82.79,
"expiry": "2026-08",
"contract": "CLQ26.NYM"
},
"front_vs_back_pct": 14.33,
"roll_yield_annualized_pct": 22.47
},
"meta": {
"timestamp": "2026-06-12T10:34:34.013Z",
"request_id": "f76fac22-167d-4859-869c-620da9df8115"
},
"status": "ok",
"message": "Commodity futures curve retrieved successfully",
"success": true
}