View as markdown

Test fire a webhook

POSThttps://api.tickerbot.io/v2/webhooks/{id}/test

Send a real-shape test POST to your endpoint, instantly.

stringrequired

Webhook id.

202
The inline delivery outcome — delivered true/false, http_status from your endpoint, elapsed_ms for the round trip, and error (if any). One-shot: a failed test fire is recorded as permanent_failure and is NOT retried (test fires never enter the standard retry ladder, and never trigger auto-disable on the parent webhook). Call /test again to re-test after fixing your receiver.
400
The webhook has nothing to fire over the wire — no target_url (in-app deliveries), a Discord webhook with no URL configured, or a mobile-push webhook with no device registered.
404
Webhook not found.
  • Fires synchronously with the payload the webhook will actually receive: webhook.fired for condition triggers, events.fired with an events array for event triggers. For URL targets the body has the same field set and the same X-Tickerbot-Signature HMAC as a real fire, so tools that introspect payload shape (n8n, Zapier, custom field mappers) lock the right schema the first time.
  • Discord and mobile-push targets are testable too but are never HMAC-signed — for those channels the URL or device token is itself the credential, and Discord receives its own embed format rather than the raw JSON.
  • The test marker rides in an X-Tickerbot-Test: true HTTP header, not the body, so receivers that do not care get a payload indistinguishable from production and those that do can filter on the header.
  • Condition-trigger webhooks get the canonical webhook.fired shape (event, webhook_id, name, q, as_of, matches, current_matches, matched_count, current_match_count) with one synthetic match (TBOT) populated for every column the rule references. Event-trigger webhooks get the events.fired shape instead — events array with one synthetic event, event_count, kinds — mirroring their real deliveries; receivers handling both types should branch on the event field. No test field on the body — the marker is in the X-Tickerbot-Test: true header.
  • Test fires are ONE-SHOT: failed deliveries are recorded as permanent_failure and never retried. They also never trigger auto-disable on the parent webhook (only real-fire permanent_failure does that).
  • Test deliveries are persisted with test: true on the delivery row and appear in /v2/webhooks/{id}/deliveries alongside real ones.