Skip to content

Saved filters

A saved filter is a named, reusable set of search and filter criteria for returning to a library view. It preserves query intent; it does not copy matching records into a collection.

Saved state can include the entity type, filter tree, search input, sorts, display mode, card zoom level, and other view-related query options supported by that surface. The available criteria depend on media type, custom fields, configured services, and extensions.

Results are evaluated against current library data. A saved filter can therefore return different records later even though its definition did not change.

Date and timestamp filters, including Date and Timestamp custom fields, accept relative values directly in the date input. Start with - for a date in the past or + for a date in the future, then give a whole number and a unit: d for days, w for weeks, m for months, or y for years. Timestamp filters also accept h for hours, min for minutes, and s for seconds; m always means months. Combine units from largest to smallest under one sign, so -1y3m means one year and three months ago, -1d6h means one day and six hours ago, and -1h30min15s means one hour, thirty minutes, and fifteen seconds ago. Repeated units, mixed signs, and out-of-order forms are invalid. Use 0d for the current UTC date in a date filter or the current UTC instant in a timestamp filter, so -7d and 0d form a convenient rolling seven-day range.

Each relative value is recalculated whenever the filter runs, including when a saved filter is loaded. API-backed filters resolve it on the server; group-item filters resolve it in the browser. Date-only fields use the current UTC date as their starting point. Timestamp fields use the current UTC instant. Months and years follow calendar arithmetic, so -1m from March 31 resolves to the last valid day in February.

Choose the comparison in the usual way. For a rolling range, choose Between and enter a relative value in each bound, such as -1m and +7d. Exact and relative bounds can also be mixed. Cove resolves and orders the bounds before comparing them, so entering the later value first produces the same results. Both bounds are inclusive. Empty dates do not match, except that Does Not Equal also matches records with no value; on a custom field, Not Between does too. An open page does not refresh merely because time passes, so run the filter again to update its results. Relative values are not available for criteria that an extension evaluates itself; extension filters backed by a custom field accept them when the field is a Date or Timestamp. Timestamp custom fields compare to the whole second, so a resolved offset or an exact value matches anything recorded within that second. An exact custom-field timestamp without an offset is read as UTC, while built-in timestamp filters read it in the server’s time zone; add Z or an offset such as +02:00 to be explicit.

For example, an API query can use this object filter:

{
"createdAtCriterion": {
"modifier": "greaterThan",
"value": "-7d"
}
}

Saved UI filter JSON uses the equivalent modifier GREATER_THAN. The relative expression remains unchanged in saved state and is resolved only while a query runs.

Saved filters are per-user. Legacy or authentication-disabled rows can be unowned, but a signed-in user’s saved filters are not shared library collections. A saved filter may be selected as a preferred view, while remembered interface state and extension contributions can also affect what is displayed. The durable contract is the stored query, not a particular initial page size or sort.

A saved filter is navigation and query state. A dynamic group is a library record with metadata and membership semantics. Use a group when other records must refer to the collection; use a saved filter when the goal is to revisit a view.