REST API
Everything the dashboard does, scriptable
Endpoints, events, search, replay. The console is a client of this API, not a privileged wrapper around it.
Search what you captured
Search runs server side across the event type and the payload body, so you can find the delivery that mentioned a particular order.
curl "https://app.commercehook.app/api/events?endpointId=$ENDPOINT&q=order/created" \ -H "Authorization: Bearer $CH_KEY"
Replay a delivery
Re-send any captured event to a destination you choose, with the original payload, method, and headers. The response reports what your handler did with it.
curl -X POST "https://app.commercehook.app/api/events/$EVENT_ID/replay" \
-H "Authorization: Bearer $CH_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://staging.example.com/webhooks"}'
What people build with it
Assert on real payloads in CI
Fire a webhook in a test store, then assert on what actually arrived rather than a fixture.
Replay production traffic at staging
Pull yesterdayโs deliveries and replay them at a staging handler before a change ships.
Provision endpoints per branch
Create an endpoint when a preview environment spins up, delete it on merge. One call each.
Keys and limits
- Keys are shown once and stored only as a hash. Revoking takes effect on the next request.
- 120 requests a minute per key, with a Retry-After header.
- The OpenAPI spec imports straight into Postman, Insomnia, or Bruno.
API access is on every plan, including Free. No separate tier, no per-call pricing.