The call list is the highest-volatility page filtered to call contracts, after volatility is parsed from its percent string.
The documented example is that highest page. Calls and puts are mixed on it, and volatility includes a percent sign.
To access this endpoint, you must obtain an API key: Get your API key
Open the highest-volatility page
The docs example sends sort HIGHEST and a page value. In the example file, page is a string. The excerpt is the first contract, limited to the fields the call list uses, and the file continues after it.
Method: GET
Endpoint: https://api.mboum.com/v1/markets/options/highest-iv
Documentation: highest implied volatility
{
"meta": {
"count": 20,
"total": 1018,
"page": "1"
},
"body": [
{
"baseSymbol": "WULF",
"symbolType": "Call",
"strikePrice": "1.50",
"expirationDate": "01/17/25",
"volatility": "420.81%"
}
]
}
Keep the calls and parse volatility
The helper strips the percent sign and any commas, then keeps the call rows.
import requests
url = "https://api.mboum.com/v1/markets/options/highest-iv"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {"sort": "HIGHEST", "page": 1}
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
payload = response.json()
def num(value):
return float(str(value).replace(",", "").replace("%", "").replace("+", ""))
for row in payload.get("body", []):
if row["symbolType"] != "Call":
continue
print(row["baseSymbol"], row["strikePrice"], row["expirationDate"], num(row["volatility"]))
Filter the page that comes back
symbolType splits calls from puts. The handler loads descending volatility and stores page on meta. sort accepts HIGHEST or LOWEST, and the upstream order stays descending. The upstream URL includes no page argument, so the body stays that page. count is the page size and total is the larger set.
Learn more or explore other endpoints: Mboum highest IV