Test fire a webhook
POST
https://api.tickerbot.io/ v2/ webhooks/ {id}/ testSend a real-shape test POST to your endpoint, instantly.
Body parameters
stringrequiredWebhook id.
Status codes
202The 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.400The 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.404Webhook not found.
Notes
- Fires synchronously with the payload the webhook will actually receive:
webhook.firedfor condition triggers,events.firedwith aneventsarray for event triggers. For URL targets the body has the same field set and the sameX-Tickerbot-SignatureHMAC 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: trueHTTP 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.firedshape (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 theevents.firedshape instead —eventsarray with one synthetic event,event_count,kinds— mirroring their real deliveries; receivers handling both types should branch on theeventfield. Notestfield on the body — the marker is in theX-Tickerbot-Test: trueheader. - Test fires are ONE-SHOT: failed deliveries are recorded as
permanent_failureand never retried. They also never trigger auto-disable on the parent webhook (only real-firepermanent_failuredoes that). - Test deliveries are persisted with
test: trueon the delivery row and appear in /v2/webhooks/{id}/deliveries alongside real ones.