Every request that hits your webhook URL is captured automatically — no configuration required beyond generating your endpoints. The full request envelope is stored and made available through theDocumentation Index
Fetch the complete documentation index at: https://supahooks.ar27111994.dev/llms.txt
Use this file to discover all available pages before exploring further.
/logs API immediately after capture, so you can inspect exactly what your webhook provider sent.
What gets captured
Each captured event includes:| Field | Description |
|---|---|
method | HTTP method (POST, GET, etc.) |
headers | All request headers (sensitive headers are redacted when maskSensitiveData is enabled) |
query | Parsed query string parameters |
body | Request body, parsed as a structured object when enableJSONParsing is on |
responseBody | The response body sent back to the caller |
responseHeaders | The response headers returned to the caller |
size | Body size in bytes |
processingTime | Server-side processing time in milliseconds (excludes any configured responseDelayMs delay) |
remoteIp | Source IP address |
signatureValid / signatureProvider | Signature verification result, when configured |
timestamp | ISO 8601 capture time |
statusCode | HTTP status code returned to the caller |
Sending requests to your webhook URL
Use any HTTP method. The path is::id with your active webhook ID (for example, wh_demo123).
Overriding the response status per request
Add__status as a query parameter to force a specific HTTP status code for that request only. This is useful for testing how your client handles error responses without changing the global defaultResponseCode setting.
Querying captured events
List events: GET /logs
Use /logs to search and filter captured events. All parameters are optional.
field[gte], field[lte], field[gt], field[lt]. Body, header, and query filters support both free-text substring search and keyed access like body[data.id]=evt_123.
Response:
Get a single event: GET /logs/:logId
Get the raw payload: GET /logs/:logId/payload
Content-Type. If the payload was offloaded to storage due to its size, it is hydrated on demand.
JSON parsing
WhenenableJSONParsing is enabled (the default), application/json request bodies are automatically parsed into structured objects before storage. This lets you use keyed filters like body[event]=payment.success in /logs queries. Without this setting, the body is stored as a raw string and only substring search is available.
Large payload handling
ThemaxPayloadSize setting controls the maximum accepted body size in bytes. Requests that exceed this limit are rejected with 413 Payload Too Large.
For payloads that are within the accepted limit but still large, the runtime offloads the payload content to Key-Value Store rather than keeping it inline. The event remains fully queryable through /logs, and the payload is hydrated when you call GET /logs/:logId/payload.
Capture settings reference
Number of unique webhook endpoints to generate for this run. Accepted range: 1–50.
How long generated webhook URLs stay active, in hours. Accepted range: 1–168. After expiry, the webhook stops accepting traffic and its logs are removed from
/logs during the next cleanup cycle (up to 10 minutes later). Logs already pushed to the dataset are retained independently.Maximum request body size in bytes. Requests exceeding this are rejected with
413. Values above 100 MB are clamped. Default is 10 MB.When enabled,
application/json bodies are parsed into structured objects for keyed search in /logs. When disabled, the body is stored as a raw string.