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. When you delete something, it's gone immediately, and out of backups within 14 days.
Point a webhook at the vault.
Free tier, no card, a capture URL in under a minute.