Skip to main content
History search filters the current bucket or forwarder history view. You write a query using field clauses, range expressions, and boolean operators, and Repost narrows the event list to only the rows that match. The same query language works in both bucket event history and forwarder history — learn it once and apply it everywhere.

How the query works

The page supplies the scope. Bucket history searches one bucket; forwarder history searches one forwarder inside that bucket. Your query narrows the rows within that scope.

Empty query

Shows every row in the selected time window. A blank query or a comment-only query is treated as empty.

Field clause

Narrows rows to those matching a specific field value, such as method:POST or status:FAILED.

Time window

The date picker limits the retained history window used by both the list and the timeline histogram.
Organisation, bucket, and forwarder scope is applied by the page before your query runs. Adding a bucket_id or forwarder_id clause can narrow results further, but it cannot expand the view beyond the currently selected scope.
Press Cmd + Enter on macOS or Ctrl + Enter on Windows and Linux to run the query. Keep shared queries under 10 240 characters — live tail, timeline histograms, and broad replay actions enforce that limit.

Field clauses

A clause takes the form field:value. Field names use lowercase or snake_case. Enum values such as delivery statuses are uppercase. Quote string values that contain spaces, punctuation, or URL characters.

Bucket event history fields

Use these fields when searching inbound webhooks in bucket history.

Forwarder history fields

Use these fields when searching delivery attempts in forwarder history.

Ranges

Use range syntax to filter numeric and time fields. Square brackets [ ] include the endpoints; curly braces { } exclude them. Use * for an open-ended boundary.
Use whole-second UTC timestamps for time fields. In bucket history, a typed received_at clause takes priority when the page loads from a deep link. Selecting a date picker or timeline range replaces that clause.

Boolean operators and grouping

Combine clauses with AND, OR, and NOT. Use parentheses to make precedence explicit when mixing operators.
Returns rows that match both sides. Use AND as the default when you want to narrow results with each additional clause.
Returns rows that match either side. Always wrap OR expressions in parentheses when you mix them with AND or NOT.
Excludes rows that match the following clause. In multiline queries, writing AND NOT field:value on its own line is the clearest pattern.
Lines beginning with // are ignored by the query engine. Press Cmd + / on macOS or Ctrl + / on Windows and Linux to toggle comments in the editor. Inline // text after a value is treated as part of the value, not a comment.

JSON path queries

You can search directly into request and response payloads using dot-notation paths. The editor suggests paths and values from rows already loaded in the current page.

Scalar values

Strings, finite numbers, booleans, and null are all searchable. Objects are containers — search the nested scalar fields inside them.

Array values

Omit numeric indexes when searching arrays. Search the scalar value at the shared array field path and Repost matches any element.

Suggested paths

Autocomplete suggestions come from rows already loaded in the page. A missing suggestion does not mean a field is invalid — type valid paths manually when they have not appeared in loaded rows yet.

Example queries

A query with invalid syntax returns an empty result set in historical mode. In live tail, a syntax error shows a query error and turns off live streaming. Remove the last clause or test one clause at a time to isolate the problem.

Build queries from the detail drawer

You do not have to type every clause by hand. The detail drawer gives you a shortcut for any scalar value you can see.
1

Open an event or forward detail

Click any row in bucket or forwarder history to open the detail drawer.
2

Hover a scalar JSON value

Hover over any string, number, boolean, or null value in the payload viewer. A small action menu appears.
3

Include, exclude, or copy

Choose Include to add a matching clause, Exclude to add a NOT clause, or Copy to place the raw value on your clipboard. Repost inserts the clause into the query editor and runs it immediately.
4

Combine with manual clauses

Detail actions replace an existing simple clause for the same field. Manually authored multi-clause lines are preserved so your existing query is not overwritten.
Add custom columns from frequently queried JSON paths so the values you filter on are visible directly in the table without opening every row.