Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.swisstools.dev/llms.txt

Use this file to discover all available pages before exploring further.

When you click on a webhook inbox in the dashboard, you open the real-time request viewer. This page connects to a live WebSocket stream and updates automatically as requests arrive — there is no need to reload the page or poll for changes. Every team member who has the page open sees the same requests at the same time.

What each request shows

Each captured request displays the following information:
FieldDetails
MethodThe HTTP verb: POST, GET, PUT, DELETE, etc.
Full URLThe complete request URL, including any query parameters
HeadersAll headers sent by the caller, formatted as a list
BodyThe raw request body; JSON is pretty-printed automatically
TimestampThe exact date and time the request was received
Click on any request in the list to expand and read its full details.

How real-time updates work

The viewer maintains a WebSocket connection to Swisstools for as long as the page is open. When an external service sends a request to your inbox URL, the server immediately pushes it to all connected viewers. No refresh is needed, and multiple team members can watch the same inbox simultaneously. If you want to connect to the stream programmatically, use the WebSocket endpoint directly:
// Connect to the real-time webhook stream
const ws = new WebSocket('wss://swisstools.dev/ws/webhook/<webhook_id>');

ws.onmessage = (event) => {
  const request = JSON.parse(event.data);
  console.log('New webhook received:', request);
};
Replace <webhook_id> with the ID shown in your inbox URL. Each message is a JSON object containing the method, headers, body, query parameters, and timestamp of the incoming request.
Use the webhook inbox to capture exactly what a third-party service sends before writing any handler code. Trigger an event in Stripe, GitHub, or another service, then inspect the payload in the viewer — you’ll know the exact field names, types, and structure before you write a single line of logic.
The viewer shows the 50 most recent requests per inbox, retained for 12 hours. Requests are dropped oldest-first once the limit is reached, and all requests expire automatically after 12 hours.