Overview
By default HookDeploy returns {"request_id":"<uuid>"} with a 200 status to every captured webhook. Custom responses let you override the status code, content type, and body returned to the sender. This is useful for simulating real API behaviour during development, testing retry logic, or satisfying platforms that require a specific response shape.
Plan availability
Custom responses are available on Starter, Team, and Enterprise plans. The Free plan receives the default response only.
Configuring a custom response
Found on the Response tab of any endpoint. Three fields:
- Status code — searchable dropdown of all standard HTTP codes grouped by class
- Content type —
application/json,text/plain,text/html,application/xml - Response body — code editor with line numbers and live JSON validation when content type is
application/json
Template variables
The response body supports dynamic variables substituted at capture time:
| Variable | Description |
|---|---|
{{request_id}} | UUID of the captured request |
{{endpoint_id}} | UUID of the endpoint |
{{endpoint_slug}} | 16-character endpoint slug (e.g. k3p9xabc7m2q8r4t) |
{{timestamp}} | ISO 8601 capture timestamp |
{{method}} | HTTP method (POST, GET, etc.) |
{{source_ip}} | Caller’s IP address |
{{body_size_bytes}} | Size of the captured payload in bytes |
Example body using variables:
{
"received": true,
"id": "{{request_id}}",
"endpoint": "{{endpoint_slug}}",
"captured_at": "{{timestamp}}"
}
JSON validation
When content type is application/json, the editor validates the body in real time and prevents saving invalid JSON.
Resetting to default
The delete/reset button removes the custom response config and restores the default {"request_id":"<uuid>"} behaviour.