Signal catalog
https://api.tickerbot.io/ v2/ signalsEvery signal you can name in a query — the built-in signals and your own custom signals, in one catalog.
Query parameters
enumFilter by kind (expression accepted as a legacy alias for custom). Omit to return both.
builtin | A built-in column on the live schema. |
integerdefault 50Page size for the custom-signal slice. Max 200.
stringOpaque cursor from a prior response.
Returns
as_ofstringServer time this response was assembled (ISO 8601).
countnumberRows in this page — the canonical count, equal to count_builtin + count_custom.
count_builtinnumberBuilt-in signals in the catalog.
count_customnumberYour custom signals.
next_cursorstringOpaque token for the next page; null on the last page. Pass it back as cursor.
taxonomyobjectAbsent when the page holds no built-ins (kind=custom). The signal taxonomy tree, once per response: groups[] in derivation-ladder order (record → behavior → indicator → company side), each with slug, label, derivation, description, and its categories[] (slug, label, description). Definitions live here and only here — rows carry pointers, never the descriptions. Omitted on kind=custom.
signalsarrayThe catalog, your custom signals first, then built-ins. Built-ins carry kind: builtin plus their taxonomy membership — category/category_label/group/group_label (slugs are stable, switch on those; labels are display strings) — yours carry kind: custom with the expr.
Status codes
200400bad_request — invalid kind value or malformed cursor.Notes
- Built-ins are tagged
kind: 'builtin'and carryname,type,source; your own are taggedkind: 'custom'and carryname,description,expr,created_at,updated_at. (Rows carriedkind: 'expression'until 2026-08-15; that spelling is still accepted as akindfilter value.) - Pagination applies only to the custom-signal slice. Built-ins are a small fixed set and come back in their entirety on every page.
- Built-in rows are enriched from the live signal spec:
description,category/category_label/group/group_label(taxonomy membership),cadence,ticker_scope,history,history_since,resolutions,asset_classes,asof(whether the signal is historized, i.e. readable via?asof=), plusflag_kind/firing/definition(the boolean's firing rule, where authored) on booleans andunitwhere defined. If the spec is briefly unreachable the catalog degrades to barename+type+sourcerows rather than erroring. - Custom signals are private and keyed on
(user_id, name). Different users may use the same name for different signals. - The taxonomy (9 groups → 33 categories, with each level's definition) rides in the response's
taxonomyblock and is rendered with full definitions on the Signal catalog and its group pages. Slugs are stable identifiers; labels are display strings.