A webhook arrives. Somewhere inside is the status, id, or nested error that explains the failure. Expanding every object by hand is optional - and usually unnecessary.
This workflow uses Pretty Payload’s tree, search, and copy controls to locate the field, confirm the value, and export a smaller example. Search finds text; it does not diagnose your integration or validate an API contract.
Open a fictional payload
Paste into the web demo (or open from the clipboard in the extension):
{
"event_id": "demo_1042",
"event": "order.updated",
"received_at": "2026-09-15T19:45:00-07:00",
"data": {
"order_id": "ord_9001",
"status": "failed",
"customer": {
"name": "Example Company",
"email": "[email protected]"
},
"items": [
{ "sku": "DEMO-01", "quantity": 1 },
{ "sku": "DEMO-02", "quantity": 3 }
],
"error": {
"code": "PAYMENT_DECLINED",
"message": "Card issuer declined sample_token_not_real",
"retryable": false
}
},
"debug_note": "Sample data only"
}
You already know the interesting region is under data.error - the exercise is finding it quickly when the real payload is larger.
Orient using the tree
Collapse branches you do not need. Expand data, then error. The collapsible tree turns a single-line webhook body into something you can scan. More on nested envelopes: nested JSON viewer.
Search a key and a value
Use the search box labeled Search keys and values… (placeholder notes that Enter jumps to the next match).
Try these verified queries on the sample:
| Query | What you should hit |
|---|---|
PAYMENT_DECLINED |
error.code value |
failed |
data.status |
ord_9001 |
order_id |
demo_1042 |
event_id |
Search finds matching keys and values anywhere in the JSON, including nested objects and arrays. Matches highlight in the tree. Press Enter to move to the next hit when several rows match.
Navigate matches and expand the branch
When a hit sits inside a collapsed parent, expand that branch so the surrounding fields stay visible. Confirm neighboring context: is retryable false? Which order_id failed? That context is what you paste into the ticket - not a lone string with no path.
Search locates text. It will not tell you whether the webhook signature was valid, whether your endpoint timed out, or whether the producer violated a schema. Use it to find, then apply your own integration judgment.
Copy a smaller example
Once you have the failing field:
- Optionally remove
debug_noteor unused items with ✕ (trim workflow). - Click Copy JSON for a readable snippet, or Copy Minified for a one-liner.
- Keep values fictional when the example leaves your machine.
The free local viewer guide covers tree, format, and copy in more detail.
Extension note for recurring webhooks
If you inspect webhook JSON several times a day, the Chrome extension can open JSON from the clipboard or use Search Page on the current tab. Page scanning has browser restrictions and may ask you to choose among results - it is a helper, not a guarantee that every page exposes its payloads the same way.
Compare workflows in Chrome extension vs paste sites.
The ID is in there somewhere. Scrolling the entire envelope is optional.
Try it
- Open prettypayload.com/try/ and paste the sample above.
- Search
PAYMENT_DECLINED, confirmdata.error, then searchfailed. - Copy JSON for the trimmed mental model you need in the ticket.
For recurring clipboard work, get Pretty Payload for Chrome or start from the homepage.