← tickerbot.io
View as markdown

Signal catalog

GEThttps://api.tickerbot.io/v2/signals

Every signal you can name in a query — the built-in signals and your own custom signals, in one catalog.

enum

Filter by kind (expression accepted as a legacy alias for custom). Omit to return both.

builtinA built-in column on the live schema.
integerdefault 50

Page size for the custom-signal slice. Max 200.

string

Opaque cursor from a prior response.

as_ofstring

Server time this response was assembled (ISO 8601).

countnumber

Rows in this page — the canonical count, equal to count_builtin + count_custom.

count_builtinnumber

Built-in signals in the catalog.

count_customnumber

Your custom signals.

next_cursorstring

Opaque token for the next page; null on the last page. Pass it back as cursor.

taxonomyobject

Absent 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.

signalsarray

The 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.

200
Success — the response shape is documented under Returns above.
400
bad_request — invalid kind value or malformed cursor.
  • Built-ins are tagged kind: 'builtin' and carry name, type, source; your own are tagged kind: 'custom' and carry name, description, expr, created_at, updated_at. (Rows carried kind: 'expression' until 2026-08-15; that spelling is still accepted as a kind filter 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=), plus flag_kind/firing/definition (the boolean's firing rule, where authored) on booleans and unit where defined. If the spec is briefly unreachable the catalog degrades to bare name + type + source rows 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 taxonomy block and is rendered with full definitions on the Signal catalog and its group pages. Slugs are stable identifiers; labels are display strings.