API v2 Reference webhook.sdnbros.app
The Webhook API v2 provides programmatic access to your webhook projects, events, and delivery data.
All endpoints require authentication via an API key and return consistent JSON envelopes.
Download OpenAPI 3.0 Spec (JSON) — use with Swagger UI, Postman, or code generators.
Authentication
Pass your API key in the X-API-Key header.
Generate keys from the Settings page.
Your API Key (stored in browser only)
Response Envelope
All responses follow a consistent format:
{
"data": { ... },
"meta": {
"request_id": "abc-123",
"timestamp": "2026-03-13T10:00:00Z"
}
}
Paginated endpoints include a pagination field:
{
"data": [ ... ],
"meta": { ... },
"pagination": { "total": 142, "limit": 50, "offset": 0 }
}
Errors use this format:
{
"error": { "code": "not_found", "message": "event not found" },
"meta": { ... }
}
Rate Limits
API v2 is rate limited to 100 requests/second per API key, with burst up to 200.
If exceeded, you'll receive a 429 Too Many Requests response.
Projects
Returns all projects you own or are a team member of.
Headers
Name Description
X-API-Keyrequired Your API key
Example Request
curl -H "X-API-Key: YOUR_KEY" \
https://webhook.sdnbros.app/api/v2/projectsCopy Try it
Response
{
"data": [
{
"id": "proj_abc123",
"name": "My Stripe Hooks",
"provider_type": "stripe",
"destination_url": "https://api.example.com/webhooks",
"paused": false,
"created_at": "2026-01-15T09:30:00Z"
}
],
"meta": { "request_id": "...", "timestamp": "..." }
}
Returns full details for a single project.
Path Parameters
Name Description
idrequired Project ID
Example Request
curl -H "X-API-Key: YOUR_KEY" \
https://webhook.sdnbros.app/api/v2/projects/PROJECT_IDCopy
Response
{
"data": {
"id": "proj_abc123",
"name": "My Stripe Hooks",
"provider_type": "stripe",
"destination_url": "https://api.example.com/webhooks",
"rate_limit_rpm": 600,
"max_retry_attempts": 5,
"delivery_timeout_ms": 30000,
"retention_days": 30,
"paused": false,
"created_at": "2026-01-15T09:30:00Z"
},
"meta": { "request_id": "...", "timestamp": "..." }
}
Statistics
Returns aggregated delivery statistics including success rate and latency percentiles (p50/p95/p99).
Path Parameters
Name Description
idrequired Project ID
Example Request
curl -H "X-API-Key: YOUR_KEY" \
https://webhook.sdnbros.app/api/v2/projects/PROJECT_ID/statsCopy Try it
Response
{
"data": {
"total_events": 12847,
"delivered": 12501,
"failed": 142,
"retrying": 3,
"success_rate": 98.87,
"avg_latency_ms": 234.5,
"p50_latency_ms": 180.2,
"p95_latency_ms": 520.8,
"p99_latency_ms": 1250.3
},
"meta": { "request_id": "...", "timestamp": "..." }
}
Events
Returns paginated events for a project. Supports filtering by state, provider, event type, and date range.
Path Parameters
Name Description
idrequired Project ID
Query Parameters
Name Type Description
limitoptional integer Results per page (1-200, default 50)
offsetoptional integer Number of results to skip (default 0)
stateoptional string Filter by state: received, delivering, delivered, retrying, exhausted
provideroptional string Filter by provider (e.g. stripe, github)
event_typeoptional string Filter by event type (partial match)
fromoptional RFC3339 Start date filter
tooptional RFC3339 End date filter
Example Request
curl -H "X-API-Key: YOUR_KEY" \
"https://webhook.sdnbros.app/api/v2/projects/PROJECT_ID/events?limit=10&state=exhausted"Copy
Response
{
"data": [
{
"id": "evt_xyz789",
"project_id": "proj_abc123",
"provider_type": "stripe",
"provider_event_id": "evt_1234",
"received_at": "2026-03-13T08:15:00Z",
"method": "POST",
"content_type": "application/json",
"source_ip": "54.187.174.169",
"state": "exhausted",
"latest_error_summary": "HTTP 500",
"classification": { "provider": "stripe", "event_type": "invoice.payment_failed" }
}
],
"meta": { "request_id": "...", "timestamp": "..." },
"pagination": { "total": 142, "limit": 10, "offset": 0 }
}
Returns full details for a single event including headers and delivery metadata.
Path Parameters
Name Description
idrequired Project ID
eventIdrequired Event ID
Example Request
curl -H "X-API-Key: YOUR_KEY" \
https://webhook.sdnbros.app/api/v2/projects/PROJECT_ID/events/EVENT_IDCopy
Response
{
"data": {
"id": "evt_xyz789",
"project_id": "proj_abc123",
"provider_type": "stripe",
"provider_event_id": "evt_1234",
"received_at": "2026-03-13T08:15:00Z",
"method": "POST",
"path": "/",
"content_type": "application/json",
"content_length": 1842,
"source_ip": "54.187.174.169",
"state": "delivered",
"signature_verified": true,
"latest_error_summary": null,
"classification": { "provider": "stripe", "event_type": "invoice.payment_succeeded" }
},
"meta": { "request_id": "...", "timestamp": "..." }
}
Replay
Re-delivers the event to the project's configured destination URL. Requires Pro or Business plan.
Returns immediately with a delivery run ID; delivery happens asynchronously.
Path Parameters
Name Description
idrequired Project ID
eventIdrequired Event ID
Example Request
curl -X POST -H "X-API-Key: YOUR_KEY" \
https://webhook.sdnbros.app/api/v2/projects/PROJECT_ID/events/EVENT_ID/replayCopy
Response (202 Accepted)
{
"data": {
"delivery_run_id": "run_abc123",
"status": "queued"
},
"meta": { "request_id": "...", "timestamp": "..." }
}