Quickstart
This guide gets you from a new key to your first options analytics request.
1. Generate an API Key
- Sign in to Perspicium.
- Open your account page at
https://perspicium.com/auth/account. - Use the API key control to generate a key.
- Store the key immediately. Perspicium shows the plaintext token once.
API keys are stored hashed. Regenerating a key replaces the previous key for your account.
2. Store the Key Locally
Use an environment variable so the key is not committed to source control.
export PERSPICIUM_API_KEY="your_api_key"
3. Test Connectivity
curl "https://perspicium.com/api/v0/ping" \
-H "Authorization: ApiKey $PERSPICIUM_API_KEY"
Response:
{
"success": true,
"data": {
"status": "ok"
}
}
4. Request Expected Move Data
curl "https://perspicium.com/api/v0/options/expected-move?ticker=SPY&range_pct=1.0" \
-H "Authorization: ApiKey $PERSPICIUM_API_KEY"
The response includes the current spot price, expected move term structure, and table rows suitable for display.
{
"success": true,
"data": {
"ticker": "SPY",
"spot": 522.41,
"range_pct": 1.0,
"term": [
{
"expiry": "2026-05-15",
"expected_move": 5.42
}
],
"table": []
}
}
Field names inside analytics arrays are generated from the analytics engine and may expand over time. Treat unknown fields as additive.
5. Use a Client
Python
import os
import requests
api_key = os.environ["PERSPICIUM_API_KEY"]
response = requests.get(
"https://perspicium.com/api/v0/quant/risk",
headers={"Authorization": f"ApiKey {api_key}"},
params={"ticker": "NVDA", "benchmark": "SPY", "period": "5y", "window": 60},
timeout=30,
)
response.raise_for_status()
payload = response.json()
print(payload["data"]["summary"])
JavaScript
const apiKey = process.env.PERSPICIUM_API_KEY;
const url = new URL("https://perspicium.com/api/v0/options/uoa");
url.search = new URLSearchParams({
ticker: "TSLA",
include_0dte: "false",
limit: "50",
});
const response = await fetch(url, {
headers: { Authorization: `ApiKey ${apiKey}` },
});
if (!response.ok) {
throw new Error(await response.text());
}
const payload = await response.json();
console.log(payload.data.trades);
Next Steps
- Use authentication to understand supported headers and key rotation.
- Use endpoint reference for every route, parameter, and response family.
- Use language examples for reusable client patterns.