View as markdown
Endpoints · Signals

Update a custom signal

PATCHhttps://api.tickerbot.io/v2/signals/{signal}

Partial update — supply expr, description, name, or any combination. Providing expr recompiles against the live column whitelist (same validator as create). Built-in signals are read-only — only custom signals you own can be patched.

The name IS the signal's API handle. Renaming via name changes what you reference in q and the CRUD path itself — old-name references in your code will stop compiling. Rename is refused with 409 rename_blocked while other custom signals of yours reference the current name (edit those first), and with 409 name_collision / already_exists if the new name hits a built-in column or an existing signal.

Existing subscriptions do not change. Scan/signal/ticker subscribe endpoints freeze a custom signal's SQL into the webhook at creation time, so editing (or renaming) the signal here updates ad-hoc reads and *new* subscriptions but leaves already-created webhooks firing on the old definition. Re-subscribe to apply the change.

stringrequired

Custom signal slug (the signal name).

string

New SQL expression. Re-validated and re-inlined against your other custom signals.

string

New description.

string

New slug — renames the signal and changes its API handle everywhere (same validation as create). Refused while other custom signals reference the current name.

200
{ as_of, signal: {...} } — the updated signal.
400
compile_failed on bad expression, bad_request on shape failure.
404
not_found — no custom signal with that name on this account (built-ins are not patchable).
409
rename_blocked (other custom signals reference the current name — listed in references.signals), name_collision (new name is a built-in column), or already_exists (you already have a signal with the new name).