Skip to main content
Webhook inboxes give you a stable, publicly reachable URL that captures every incoming HTTP request — method, headers, body, and query string — without you running any server. You can inspect captured requests through the API or subscribe to a WebSocket channel to see them arrive in real time. Each webhook inbox is reachable at:
For example, if your team referenceId is aB3cD4eF and your project slug is payments-api, a webhook with referenceId wbhkXyZ123abcABC is reachable at:
Captured requests are stored for 12 hours, with a maximum of 50 per inbox. The inbox URL is public — no auth needed for external services to send requests to it. All management endpoints require session authentication. See Authentication for details.

List Webhooks

GET /api/projects/:projectId/webhooks Returns all webhook inboxes for the specified project. Path Parameters
string
required
The UUID of the project.
Request
Response

Create Webhook

POST /api/projects/:projectId/webhooks Creates a new webhook inbox. Path Parameters
string
required
The UUID of the project.
Request Body
string
required
A human-readable name for the webhook inbox.
string
An optional description of what this inbox captures.
Request
Response201 Created

Get Webhook

GET /api/projects/:projectId/webhooks/:webhookId Returns a single webhook inbox by its ID. Path Parameters
string
required
The UUID of the project.
string
required
The UUID of the webhook inbox.
Request
Response

Update Webhook

PUT /api/projects/:projectId/webhooks/:webhookId Updates the name or description of a webhook inbox. Path Parameters
string
required
The UUID of the project.
string
required
The UUID of the webhook inbox to update.
Request Body
string
Updated display name.
string
Updated description.
Request
Response

Delete Webhook

DELETE /api/projects/:projectId/webhooks/:webhookId Permanently deletes the webhook inbox and all captured requests stored for it. Path Parameters
string
required
The UUID of the project.
string
required
The UUID of the webhook inbox to delete.
Request
Response

Get Captured Requests

GET /api/projects/:projectId/webhooks/:webhookId/requests Returns the captured HTTP requests received by this webhook inbox, most recent first. Requests are stored for 12 hours with a maximum of 50 entries. Path Parameters
string
required
The UUID of the project.
string
required
The UUID of the webhook inbox.
Request
Response

Real-Time WebSocket Stream

Connect to the WebSocket endpoint to receive captured requests the moment they arrive, without polling. WebSocket URL:
Replace :webhookId with the UUID of the inbox. Connecting:
Each WebSocket message is a JSON string with the same shape as a captured request object (see above). Messages are broadcast to all connected clients subscribed to the same webhook channel.

Webhook Object

string
UUID that uniquely identifies the webhook inbox.
string
A 16-character alphanumeric identifier used in the public inbox URL path.
string
UUID of the project that owns this inbox.
string
Display name of the webhook inbox.
string
Optional description of what this inbox captures.
string
ISO 8601 timestamp at which the inbox will expire, or null if it has no expiry.
string
ISO 8601 timestamp of creation.
string
ISO 8601 timestamp of the last update.

Captured Request Object

string
Unique identifier for the captured request.
string
UUID of the webhook inbox that captured this request.
string
HTTP method of the incoming request (e.g., POST, GET).
object
Key-value map of all HTTP headers sent with the incoming request.
string
The raw request body as a string.
object
Key-value map of URL query parameters from the incoming request.
string
ISO 8601 timestamp of when the request was captured.