Concepts › Signals › Profile › Identifiers & reference
ticker_root
Root symbol — the base ticker without class or suffix modifiers.
Watch this signal live on real tickers: Open in Explore →
At a glance
| Type | text |
| Group | Profile |
| Category | Identifiers & reference |
| Update cadence | post-close daily |
| Universe | all tickers |
| History | none — live row only, not historized (no as-of reads) |
| Nullable | yes — NULL where not applicable |
Which company this is: name, IDs (CIK, FIGI), listing status, contact, branding, employees.
Query it
Every applicable form factor, grouped by endpoint family. Swap YOUR_KEY for the value from /dashboard/keys. Response payloads are real captures, sampled 2026-08-18 and trimmed — your run's values and dates will differ.
Use scan /v2/scan
The whole market through a WHERE clause — this signal composed freely with any other column. Docs →
Live — the whole market, ranked by this column
curl -G "https://api.tickerbot.io/v2/scan" \
--data-urlencode "q=ticker_root IS NOT NULL" \
-d "order=ticker_root" -d "columns=ticker_root" \
-H "Authorization: Bearer YOUR_KEY"Response (sampled 2026-08-18, trimmed)
{
"as_of": "2026-08-18T00:25:59.802Z",
"query": {
"q": "ticker_root IS NOT NULL",
"limit": 2,
"order": "ticker_root",
"dir": "desc",
"fields": [
"ticker_root"
],
"full": false,
"universe": null,
"asset_class": null
},
"count": 2,
"results": [
{
"ticker": "ZYME",
"name": "Zymeworks Inc.",
"asset_class": "stocks",
"asset_type": "CS",
"price": 25.27,
"day_change_pct": 0.006,
"gap_pct": -0.0044,
"relative_volume": 0.6695,
"market_cap": 1782496133,
"ticker_root": "ZYME"
},
{
"ticker": "ZYBT",
"name": "Zhengye Biotechnology Holding Limited Class A Ordinary Shares",
"asset_class": "stocks",
"asset_type": "CS",
"price": 1.52,
"day_change_pct": -0.0256,
"gap_pct": 0.0064,
"relative_volume": 0.0106,
"market_cap": 73930546,
"ticker_root": "ZYBT"
}
]
}Same grammar on scan and webhooks. This column is live-tense only — it isn't historized, so ?asof= reads and series pulls don't carry it.