CanHook
Features Pricing Docs FAQ Blog Log in Get started free

Capturing webhooks

Quick answer

A CanHook catch URL accepts any HTTP method and records the full request — method, headers, raw body, parsed JSON, query string, content-type, size, and source IP — with millisecond timestamps, so you see exactly what was sent.

What gets captured?

  • HTTP method (GET, POST, PUT, PATCH, DELETE, and others)
  • All request headers
  • Raw body and, when JSON, a pretty-printed view
  • Query string and path
  • Content-Type, byte size, and source IP

Source IPs behind a proxy

CanHook runs behind OpenLiteSpeed and resolves the real client IP from X-Forwarded-For only when the connecting peer is a trusted proxy, so recorded IPs can't be trivially forged.

Mock responses

By default a captured request returns 200 {"ok":true,"captured":true}. On a paid plan you can configure a custom status, body, and content-type to mimic your real endpoint.

Retention

Requests are pruned oldest-first once you exceed your plan's per-endpoint count or retention window (24h free, 7d Pro, 30d Business).