curl https://api.gammaflip.io/api/v1/expirations/all/BTC \
-H "X-API-Key: gex_sk_your_key_here"
import requests
resp = requests.get(
"https://api.gammaflip.io/api/v1/expirations/all/BTC",
headers={"X-API-Key": "gex_sk_your_key_here"},
)
for exp in resp.json()["data"]["expirations"]:
print(exp)
{
"data": {
"expirations": [
"18APR26",
"25APR26",
"02MAY26",
"09MAY26",
"27JUN26",
"26SEP26"
],
"expirations_detail": [
{ "code": "18APR26", "iso": "2026-04-18", "dte": 3.92, "cutoff_utc": "2026-04-18T08:00:00Z", "is_0dte": false },
{ "code": "25APR26", "iso": "2026-04-25", "dte": 10.92, "cutoff_utc": "2026-04-25T08:00:00Z", "is_0dte": false }
]
},
"meta": {
"timestamp": "2026-04-14T10:00:00+00:00",
"exchange": "all",
"coin": "BTC",
"exchange_resolved": "combined",
"market": "crypto"
}
}
{
"error": "invalid_exchange",
"message": "Exchange 'kraken' is not available.",
"valid_exchanges": ["deribit", "bybit", "okx", "derive", "binance", "combined"]
}
Endpoints
List Expirations
Returns sorted, non-expired option expirations with ISO date, DTE and cutoff. Free: not counted against the quota
GET
/
expirations
/
{exchange}
/
{coin}
curl https://api.gammaflip.io/api/v1/expirations/all/BTC \
-H "X-API-Key: gex_sk_your_key_here"
import requests
resp = requests.get(
"https://api.gammaflip.io/api/v1/expirations/all/BTC",
headers={"X-API-Key": "gex_sk_your_key_here"},
)
for exp in resp.json()["data"]["expirations"]:
print(exp)
{
"data": {
"expirations": [
"18APR26",
"25APR26",
"02MAY26",
"09MAY26",
"27JUN26",
"26SEP26"
],
"expirations_detail": [
{ "code": "18APR26", "iso": "2026-04-18", "dte": 3.92, "cutoff_utc": "2026-04-18T08:00:00Z", "is_0dte": false },
{ "code": "25APR26", "iso": "2026-04-25", "dte": 10.92, "cutoff_utc": "2026-04-25T08:00:00Z", "is_0dte": false }
]
},
"meta": {
"timestamp": "2026-04-14T10:00:00+00:00",
"exchange": "all",
"coin": "BTC",
"exchange_resolved": "combined",
"market": "crypto"
}
}
{
"error": "invalid_exchange",
"message": "Exchange 'kraken' is not available.",
"valid_exchanges": ["deribit", "bybit", "okx", "derive", "binance", "combined"]
}
Path parameters
string
required
Crypto:
bybit, deribit, okx, derive, binance, all / combined, or a subset
such as deribit+derive. TradFi tickers: tradfi (all and combined are
aliases). See Markets and exchanges.string
required
Symbol, for example
BTC or QQQ. Case-insensitive. Use /coins to see what’s available.Response
array
Array of expiration date strings in
DDMMMYY format (e.g., 25APR26),
sorted chronologically. Already-expired dates are filtered out. The cutoff is
08:00 UTC for crypto and 16:00 US Eastern for TradFi, each with a 1-hour grace
period.array
One object per entry of
expirations, in the same order:code: theDDMMMYYcodeiso: the expiration date asYYYY-MM-DDdte: days to the cutoff, as a decimal (two places)cutoff_utc: the cutoff instant, ISO 8601 UTC withZis_0dte:truewhen the expiration is today (in the market’s own time zone)
string
The exchange you queried (echoed back).
string
The coin you queried (echoed back).
string
The canonical venue after aliasing, for example
tradfi for all/QQQ or
deribit+derive for a subset.string
crypto or tradfi.Errors
error
Exchange name isn’t recognized, or it does not match the coin’s market. The
body includes
valid_exchanges.error
TradFi data is temporarily unavailable. Retry after a short delay.
error
The coin belongs to a market your plan doesn’t cover. See
market_not_in_plan.
curl https://api.gammaflip.io/api/v1/expirations/all/BTC \
-H "X-API-Key: gex_sk_your_key_here"
import requests
resp = requests.get(
"https://api.gammaflip.io/api/v1/expirations/all/BTC",
headers={"X-API-Key": "gex_sk_your_key_here"},
)
for exp in resp.json()["data"]["expirations"]:
print(exp)
{
"data": {
"expirations": [
"18APR26",
"25APR26",
"02MAY26",
"09MAY26",
"27JUN26",
"26SEP26"
],
"expirations_detail": [
{ "code": "18APR26", "iso": "2026-04-18", "dte": 3.92, "cutoff_utc": "2026-04-18T08:00:00Z", "is_0dte": false },
{ "code": "25APR26", "iso": "2026-04-25", "dte": 10.92, "cutoff_utc": "2026-04-25T08:00:00Z", "is_0dte": false }
]
},
"meta": {
"timestamp": "2026-04-14T10:00:00+00:00",
"exchange": "all",
"coin": "BTC",
"exchange_resolved": "combined",
"market": "crypto"
}
}
{
"error": "invalid_exchange",
"message": "Exchange 'kraken' is not available.",
"valid_exchanges": ["deribit", "bybit", "okx", "derive", "binance", "combined"]
}