Complete, or honestly not
Every capture stores the full record: method, path, query, all headers, the body byte-for-byte (binary included), sender IP, size, timing. When something can't be stored in full, a payload over your plan's cap, the vault stores an honest trace with its true size and says so, everywhere that request appears.
- 3 to 365-day windows, chosen by plan
- The window is visible on every endpoint: what expires, when
- Storage caps evict oldest-first, the newest webhook is always kept

every field, kept, and lit for reading
Search that respects your time
Filter by method, delivery state, and time window on every plan. Search text across paths and query strings, and on Pro, straight into payload bodies: find the event by the order ID inside it. The same filters drive the API, so anything you can find in the explorer, your scripts can find too.
- Event-aware rows: invoice.paid, not POST /hook/9f3a…
- Keyboard-first explorer: j/k to walk, / to search
- Copy any request as a ready-to-run curl

the shelf: every endpoint, its light, its last arrival
The fine print
Retention honesty, in writing
Retention products love fine print. Ours is short and it's the actual behavior: nothing is ever silently dropped. Rate-limited senders get a retry hint and you see the count. Evictions are oldest-first and the math is on your Usage page. Expiry is a visible date on every endpoint, not a surprise. A request you delete waits in the recycle bin for up to 7 days, where you can restore it, and is then purged; it ages out of backups within 14 days after that.
Point a webhook at the vault.
A capture URL in a few minutes, free and without a card.
Sign up with GitHub, Google or email. Two-factor authentication is required on every account, Free included, for account security.