Skip to content
HookDeploy
On this page

Requests

What HookDeploy captures for each webhook — headers, body, query, IP — plus retention and payload limits.

Every accepted HTTP call to your endpoint becomes a request record with captured metadata. Its body is stored when payload and storage limits allow.

What gets captured

FieldDescription
methodHTTP verb — GET, POST, PUT, PATCH, DELETE, etc.
headersAll request headers as a JSON object
queryParsed query string parameters
content_typeValue of the Content-Type header, if present
body_size_bytesSize of the raw body in bytes
source_ipSender’s IP address
created_atUTC timestamp when the request arrived

Request content is encrypted at rest and isolated to your organization.

What doesn’t get captured

  • Response bodies from your forward target (only status code and timing)
  • Requests to paused endpoints (rejected before capture)
  • Bodies exceeding your plan’s payload limit (rejected with 413)

Viewing requests

Dashboard

The endpoint detail page shows a live stream of incoming requests, newest first. Click any row to open the full inspector with headers, query, and body panels.

New requests appear automatically, usually within about a second, without refreshing.

API

List requests for an endpoint:

curl -s "https://api.hookdeploy.dev/v1/endpoints/ENDPOINT_ID/requests?limit=10" \
  -H "Authorization: Bearer hd_live_YOUR_KEY"

Get a single request:

curl -s "https://api.hookdeploy.dev/v1/endpoints/ENDPOINT_ID/requests/REQUEST_ID" \
  -H "Authorization: Bearer hd_live_YOUR_KEY"

The detail endpoint returns the body when it was stored and the caller is authorized. List responses omit bodies; use the single-request route for full captured content.

Retention

Requests are automatically deleted after the retention period for your plan. Retention is measured from created_at.

PlanRetention
Free7 days
Starter30 days
Team90 days
Enterprise365 days

There is no manual “archive” — plan your replays and exports before retention expires. Enterprise retains request history for 365 days.

Payload limits

Each plan caps the maximum request body size at ingestion time. Bodies larger than the limit are rejected before storage:

HTTP/1.1 413 Payload Too Large
Content-Type: application/json

{"error":"payload too large"}

The sender receives 413. Nothing is stored.

PlanMax payload
Free256 KB
Starter1 MB
Team25 MB
Enterprise100 MB

Monthly request usage

Each organization has monthly request capacity metered across all endpoints:

PlanRequests/month
Free5,000
Starter15,000
Team100,000
Enterprise1,000,000

The monthly counter is metering information, not itself a hard ingestion gate. Protective ingestion controls can return 429 Too Many Requests when necessary. Check current usage in the dashboard under Billing or via GET /v1/usage; monthly usage resets at the start of the next calendar month (UTC).

Forward metadata

If auto-forwarding is enabled, each request record includes forward attempt details:

FieldDescription
forward_urlURL the request was forwarded to
forward_attempted_atWhen the forward was attempted
forward_status_codeHTTP status from your server
forward_response_time_msRound-trip time in milliseconds
forward_errorError message if the forward failed (timeout, DNS, etc.)

Forward failure does not affect the 200 response to the original sender.

Deleting requests

Individual request deletion requires the requests.delete permission (admin and super admin only). Deleting an endpoint cascades and removes all its requests.

Next steps

  • Forwarding — Auto-proxy behavior and latency
  • Replay — Re-send captured requests on demand
  • Requests API — List and paginate via the REST API