Market data and fundamentals
Options flow, chains and implied volatility
Recorded option flow, gamma positioning, volatility surfaces and delayed expiry chains
5 endpointsFrom 4 credits
Try it
curl "https://api.gloom.sh/v1/options/SPY/surface?date=2026-10-08" \
-H "Authorization: Bearer $GLOOM_DATASETS_KEY"import os
import requests
response = requests.get(
"https://api.gloom.sh/v1/options/SPY/surface?date=2026-10-08",
headers={"Authorization": f"Bearer {os.environ['GLOOM_DATASETS_KEY']}"},
)
response.raise_for_status()
print(response.json())const response = await fetch(
"https://api.gloom.sh/v1/options/SPY/surface?date=2026-10-08",
{ headers: { Authorization: `Bearer ${process.env.GLOOM_DATASETS_KEY}` } },
)
if (!response.ok) throw new Error(await response.text())
console.log(await response.json())Response
{
"data": {
"symbol": "SPY",
"sessionDate": "2026-10-08",
"capturedAt": "2026-10-08T16:55:20.000Z",
"spot": 774.95,
"payload": {
"version": 1,
"symbol": "SPY",
"spot": 774.95,
"spotAsOf": "2026-10-08T16:46:00.000Z",
"capturedAt": "2026-10-08T16:55:20.000Z",
"source": "gloom",
"expiries": [
{
"expiration": 1793923200,
"years": 0.07991755,
"rate": 0.0406,
"rateMethod": "treasury-boundary",
"rateAsOf": [
"2026-10-06"
],
"forward": 775.6269,
"dividendYield": 0.029675,
"atmIV": 0.126587,
"termSlope": null,
"skew": {
"atm": 0.126587000116,
"put25": 0.141791148747,
"call25": 0.118896006031,
"putCallSkew": 0.0228951427152,
"riskReversal": -0.0228951427152,
"butterfly": 0.00375657727322,
"moneynessSkew": 0.0839814407755
},
"expectedMove": {
"straddle": 22.64,
"straddlePercent": 2.92147880508,
"sigma": 27.7321719066,
"sigmaPercent": 3.57857563799,
"strike": 775
},
"fit": {
"method": "svi",
"years": 0.0799175545408,
"residual": 0.00657595737329,
"points": [
{
"logMoneyness": -0.439063494066,
"volatility": 0.5312546875
},
{
"logMoneyness": -0.41926086677,
"volatility": 0.516606396484
},
// … 147 more items
],
"droppedPoints": 0,
"parameters": {
"a": -0.00725848103029,
"b": 0.0506111737499,
"rho": -0.3735715516,
"m": -0.0348805814207,
"sigma": 0.178208106518
},
"slopes": [
-0.0692962279997,
-0.0518973261897,
// … 147 more items
],
"fallbackReason": null
},
"filterCounts": {
"invalid-contract": 0,
"expiry-mismatch": 0,
"zero-bid": 3,
"crossed": 0,
"wide-spread": 7,
"no-interest": 3,
"stale-duplicate": 0,
"duplicate": 0,
"itm": 82,
"iv-unavailable": 0
},
"warnings": [],
"asOf": "2026-10-08T16:55:20.000Z",
"points": [
[
500,
0,
// … 6 more items
],
[
510,
0,
// … 6 more items
],
// … 147 more items
]
}
],
"failures": []
}
},
"meta": {
"dataset": "options",
"requestId": "sample-request",
"asOf": null,
"dataThrough": "2026-10-08",
"historyStart": null,
"updatedAt": "2026-10-08T16:55:20.000Z",
"page": null,
"next": null,
"coverage": null,
"source": [
{
"attribution": "Exchange and market data providers"
},
{
"attribution": "Exchange and market data providers"
},
// … 1 more items
]
}
}Trimmed · 2026-10-08
Run it without a key:GET /v1 /datasets /options /sampleEndpoints
GET /v1 /options /flow4 creditsStored options trade flow
Parameters
limitinteger- 1 to 200.
beforestringsymbolstring- Company symbol; normalized to uppercase.
GET /v1 /options /{symbol} /iv4 creditsHistorical implied volatility for an underlying symbol
Parameters
symbolstringrequired- Company symbol; normalized to uppercase.
fromstring- Calendar date:
YYYY-MM-DD. tostring- Calendar date:
YYYY-MM-DD.
from must be on or before to.
GET /v1 /options /{symbol} /surface50 creditsImplied volatility across strikes and expiries
Parameters
symbolstringrequired- Company symbol; normalized to uppercase.
datestring- Calendar date:
YYYY-MM-DD.
GET /v1 /options /{symbol} /chain50 creditsOption calls and puts for a specified expiry
Parameters
symbolstringrequired- Company symbol; normalized to uppercase.
expirystringrequired- Calendar date:
YYYY-MM-DD.
GET /v1 /options /{symbol} /gamma50 creditsRetained dealer gamma positioning for one expiry
Parameters
symbolstringrequired- Company symbol; normalized to uppercase.
expirystringrequired- Calendar date:
YYYY-MM-DD.