View as markdown
Endpoints · Webhooks

Get a webhook

GEThttps://api.tickerbot.io/v2/webhooks/{id}

The current state of one webhook subscription.

stringrequired

Webhook id returned by a subscribe endpoint (POST /v2/tickers/{T}/subscribe, etc.).

as_ofstring

Server time this response was assembled (ISO 8601).

idstring

The webhook id — `wh_…`, the handle for every other call on this record.

namestring

Your label for the subscription.

qstring

The stored predicate. Custom signals appear expanded: the SQL is frozen at creation.

rule_idstring

Legacy link to a v1 alert rule; `null` on everything created through v2.

fieldsstring

Extra columns carried on each fired match row; `null` means the standard set.

orderstring

Sort column for the payload row list; `null` means the evaluator default (`market_cap`).

dirstring

Sort direction for that list; `null` means the default (`desc`).

universe_idstring

Universe the trigger is scoped to, or `null` for the whole market.

cadencestring

How often the trigger is evaluated — `realtime`, `hourly`, or `nyse_open`.

channelstring

Where deliveries go: `webhook`, `discord`, `in_app`, or `mobile_push`.

target_urlstring

Your HTTPS endpoint; `null` on every channel except `webhook`.

deliverystring

Legacy alias of `channel`, kept aligned for older readers.

statusstring

`active` or `disabled`. Auto-disable follows repeated delivery failure.

sourcestring

Which API version created the record; `v2` for anything you create today.

subscription_originobject

Which door created it — `type` (`ticker`/`signal`/`scan`/`event`), its `ref`, and the `condition` in display form.

last_predicate_valuestring

The trigger's value at the last evaluation; `null` until it has run.

created_atnumber

Creation timestamp.

updated_atnumber

Last modification timestamp.

last_firednumber

When a delivery last went out; `null` if it never has.

last_match_setarray

Tickers matching at the last evaluation — the set the next run is diffed against, which is what makes firing edge-triggered.

last_eval_error_atnumber

When the last evaluation error happened; `null` on a healthy hook.

last_errorstring

The last evaluation error; `null` on a healthy hook. The answer to "why is my webhook not firing?".

next_eval_atnumber

When the evaluator will next consider this subscription.

last_evaluated_atnumber

When it was last evaluated; `null` until the first run.

200
The full webhook record (signing_secret stripped).
400
Invalid webhook id format.
404
Webhook not found, or owned by another account.
  • Visibility is account-scoped, not key-scoped: every API key on this account can fetch every webhook on it. A webhook owned by a different account returns 404.
  • order/dir/fields are null when you didn't choose one — the evaluator's defaults apply (market_cap desc, standard columns). last_error and consecutive_failures update on every evaluation; a webhook auto-disabled by delivery failures additionally carries disabled_reason, disabled_last_status_code, and disabled_last_error. Discord/mobile-push webhooks carry channel_config_present: true (and mobile-push a channel_config.device_id). Event-trigger webhooks add trigger_kind: "event", event_kinds, event_tickers, and event_q.