Inspecting requests
Every request captured by a Source URL appears in the request list, newest first, with the time it arrived and a preview of its body. Once a request has been forwarded, the list also shows the status your endpoint returned. A request that wasn't accepted shows Rejected.
The list updates as requests arrive. Select a row to open it.
The Request tab
The Request tab shows what the sender actually sent:
- Headers: the request's headers, as a key and value table. This is where you check signature headers, content types, and provider-specific metadata. Hookdeck drops a few transport headers when a request arrives, such as
acceptandcache-control. - Body: the payload. Pretty formats it for reading and Raw shows the exact text, and you can filter it or copy it.
A few bodies are shown differently:
- A form body (
application/x-www-form-urlencoded) is parsed into fields in Pretty, and shown exactly as sent in Raw. - A binary body, such as an image or a file, shows its type and size, with a Download button for the exact bytes and a preview for images.
- A body over 1 MB waits for you to choose Show anyway.
The request's method, path, and query string are included when you copy it as cURL, share it with an agent, or read it with the Inspect API.
Copying and sharing a request
- cURL copies the request as a
curlcommand, with its method, path, query string, headers, and body, so you can reproduce it from your terminal, edit it, or send it somewhere else. A binary body isn't included: use Download to get its exact bytes. - Copy request link copies a link that opens this request.
- Share with agent copies the request for your AI agent to read, with sensitive headers removed.
The Forward tab
The second tab forwards the request to your destination, and then shows what your endpoint returned. Its label says where things stand, such as Forward to localhost or HTTP before you've set a destination, Connect CLI to forward while the CLI isn't running, and Response once the request has been delivered.
The response shows the method and URL the request was delivered to, and the body your endpoint returned. Its status code is shown at the top of the request.
Without a destination there's nothing to show, because nothing was delivered anywhere. Inspect captured the request and stopped there.
Retrying a request
Once a Source URL has a destination, Retry delivers the open request to it again. Because the payload is the one you actually received, this turns a slow feedback loop, waiting for a provider to fire another event, into a single click while you iterate on handler code.
When forwarding to localhost, start the CLI before you retry: a retry made while it isn't connected fails.
Rejected requests
A request that reached Inspect but wasn't accepted is still captured, and marked Rejected. Hover the label to see why. The common causes are:
- An HTTP method the Source URL's Source Type doesn't accept, such as a
GETto a Stripe Source. - A failed signature check, on a Source URL with a saved signing secret.
A rejected request is never forwarded.