Documentation

Everything you need for a first delivery in about five minutes.

1. Authenticate

Create a key in the dashboard and send it as a bearer token. Keys are scoped to a single environment; the test environment never delivers to real endpoints.

Authorization: Bearer wsk_live_…

2. Create a subscription

A subscription binds a topic pattern to a destination URL and a signing secret.

POST /v1/subscriptions { "url": "https://api.acme.dev/hooks/wiresify", "topics": ["invoice.*", "customer.created"], "ordered_by": "customer" }

3. Publish an event

One call. We resolve matching subscriptions and queue a delivery for each.

POST /v1/events { "topic": "invoice.paid", "customer": "cus_41xQ", "payload": { "amount": 4900 } }

4. Verify the signature

Each delivery carries Wiresify-Signature and Wiresify-Timestamp. Compute an HMAC-SHA256 over timestamp + "." + rawBody using the subscription secret and compare in constant time. Reject anything with a timestamp older than five minutes.

Delivery headers

HeaderMeaning
Wiresify-Event-IdStable ID of the event; identical across retries
Wiresify-Delivery-IdUnique per attempt
Wiresify-Attempt1-based attempt counter
Wiresify-TopicTopic that matched the subscription
Wiresify-SignatureHex HMAC-SHA256, may list two values during rotation

Response handling

Any 2xx counts as delivered. 410 permanently disables the subscription. 429 respects your Retry-After. Everything else is retried on the standard schedule: 15s, 1m, 5m, 20m, 1h, 3h, 6h, then hourly to 24h.

Rate limits

EndpointLimit
POST /v1/events500 req/s per account, burst 2,000
Management endpoints20 req/s per account
Log search5 req/s per account

SDKs

Official clients for Node, Python, Go and Ruby wrap signing and verification. Everything else is plain HTTP — the API is small enough to use directly.