Search Inside Your Webhook Payloads
Find any webhook by what it contains, not just its metadata. Full-text and field-level search across your event payloads — a feature no other webhook platform offers.
The Problem
A webhook delivery fails. Your support team says "the order for customer [email protected] didn't go through." You open your webhook dashboard and see 10,000 events. You know the data is in there somewhere — but all you can search is event type, source name, and event ID.
You can't search by what's actually inside the payload.
Until now.
Payload Search
Hookbase now lets you search across the content of your webhook payloads. Two modes:
Free-Text Search
Type any string and find every event whose payload contains it. Looking for a customer email? An order ID? A specific error message? Just type it.
- Search
[email protected]→ finds every event mentioning that email, regardless of which field it's in - Search
ord_12345→ finds the exact order across any provider - Search
insufficient_funds→ finds every failed payment event
This works across the entire JSON payload — keys, values, nested objects, arrays. If it's in the payload, you'll find it.
Field-Level Search
Need precision? Search by exact field path and value:
customer.email=[email protected]data.object.id=sub_1234order.status=refunded
Field-level search uses a GIN index under the hood — results come back in milliseconds, even with hundreds of thousands of events.
How It Works
When a webhook arrives, Hookbase stores the parsed JSON payload alongside the event metadata. A PostgreSQL GIN index makes it searchable:
- Free-text search scans the serialized JSON for your search term, scoped to your organization
- Field-level search uses JSONB containment queries (
@>) which hit the GIN index directly — this is the fast path
Both modes respect all your existing filters. Combine payload search with source, date range, and status filters to narrow results further.
What's Searchable
| Payload Type | Searchable | |-------------|-----------| | Standard payloads (< 32KB) | Yes | | Large payloads (> 32KB, stored in R2) | Not yet | | Encrypted field payloads | No (by design) | | Transient mode payloads | No (not stored) |
The vast majority of webhooks are under 32KB — Stripe events average 2-4KB, GitHub events 1-8KB, Shopify events 3-10KB. So in practice, nearly all your events are searchable.
Encrypted payloads are excluded intentionally. If you configured field encryption for compliance, those fields stay hidden from search too.
Using It
Toggle the search mode from Events to Payloads on the events page. The search bar switches to payload mode with a 2-second debounce to avoid hammering your database while you type.
For field-level search, expand the filters panel — you'll see "Field path" and "Value" inputs that appear in payload mode.
From the API
Payload search is available via query parameters on the events endpoint:
# Free-text search
curl https://api.hookbase.app/api/events?payloadSearch=acme
# Field-level search
curl https://api.hookbase.app/api/events?payloadField=customer.email&[email protected]
Both work with all existing filters (sourceId, fromDate, toDate, status).
Why This Matters
Debugging webhook integrations is detective work. The payload is the evidence — but until now, you couldn't search it. You had to scroll through events, open each one, and manually scan the JSON.
With payload search, you go from "somewhere in these 10,000 events" to "here's the exact event" in seconds.
No other webhook platform offers this. Most store payloads as opaque blobs. Hookbase indexes them as structured, searchable JSON.
What's Next
- R2 payload indexing — large payloads (> 32KB) will get a searchable summary extracted on ingest
- Saved searches — bookmark common payload queries for quick access
- Search in transforms — test how a search result would look after your transform is applied
Payload search is available now on all plans. Try it out.