Universe API
Curated tier-1 and tier-2 symbol directory - the symbols the screener background loop keeps pre-warmed in MarketDataStore. Public, no auth required.
Endpoint
Parameters
| Name | In | Required | Default | Description |
|---|---|---|---|---|
sort |
query | no | tier | tier (tier-1 first, then tier-2; curator order preserved within each) or symbol (alphabetical). |
limit |
query | no | 200 | Clamped to [1, 1000]. |
curl "https://lab.flashalpha.com/v1/universe?sort=symbol&limit=20"
import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/universe",
params={"sort": "symbol", "limit": 20}
)
data = resp.json()
print(f"Universe size: {data['count']}")
const resp = await fetch(
"https://lab.flashalpha.com/v1/universe?sort=symbol&limit=20"
);
const data = await resp.json();
console.log("Universe size: " + data.count);
Response
{
"as_of": "2026-05-30T15:30:00Z",
"count": 252,
"returned": 20,
"limit": 20,
"sort": "symbol",
"symbols": [
{ "symbol": "AAPL", "tier": 1, "is_pre_warmed": true },
{ "symbol": "AMD", "tier": 1, "is_pre_warmed": true }
]
}
Key Response Fields
| Field | Description |
|---|---|
count | Total universe size (tier-1 ∪ tier-2, deduplicated). |
returned | min(count, limit). |
sort | Echoes the effective sort (unknown values fall back to tier). |
symbols[].tier | 1 = high-traffic loop (fast refresh); 2 = remaining curated symbols. |
symbols[].is_pre_warmed | Currently always true - the screener loop keeps every universe member populated. |
Errors
| Status | Description |
|---|---|
200 | Public endpoint - returns the universe directory; no auth-related errors. |
About
Universe returns the curated tier-1 and tier-2 symbol directory the screener background loop keeps pre-warmed in MarketDataStore. It is public with no auth required, so retail evaluators can introspect coverage before subscribing. Tier-1 symbols sit on the high-traffic fast-refresh loop; tier-2 covers the remaining curated set.
Symbols outside the universe still work on any authenticated endpoint - they fetch on-demand - so the universe is "guaranteed warm," not "exhaustive." On the Free tier, requests for off-universe symbols return 403 symbol_not_in_free_universe, and this endpoint lets evaluators see exactly which symbols are reachable on Free.
Common Use Cases
- Inspect coverage before subscribing - read
countto size the guaranteed-warm universe with no API key - Populate a symbol picker - iterate
symbols[].symbolto seed a dropdown or autocomplete from the warm set - Scope free-tier access - cross-check candidate tickers against the list to avoid
403 symbol_not_in_free_universeon Starter - Prioritize fast-refresh names - filter on
symbols[].tier == 1to poll high-traffic symbols more aggressively - Confirm pre-warm status - check
symbols[].is_pre_warmedbefore assuming a symbol returns instantly rather than fetching on-demand - Detect universe drift - diff
symbols[]across days, keyed onas_of, to catch curator additions and removals - Page large pulls - set
sort=symboland walklimit(clamped to 1000) to retrieve the full directory deterministically
Related
Related reading
- Build a screener: high IV and unusual activity - turn the warm universe into a scan loop
Complementary endpoints
- Screener - rank and filter the universe by IV, flow, and exposure metrics
- Exposure Basket - aggregate dealer positioning across a chosen list of universe symbols
- API Reference - full endpoint catalog to act on the symbols you discover here
Ready to build?
Get your free API key and start pulling live options data in 30 seconds.