Skip to main content

Saved Filters

List saved filter presets with GET /v1/search/saved-filters: named combinations of conditions, search terms, and sort settings your team reuses across Talonic.

Saved filters are named, reusable filter configurations: a stored combination of conditions, free-text search, and sort settings for the document filter. The GET /v1/search/saved-filters endpoint lists the presets saved in your organization so integrations can reapply the same filter logic your team uses in the Talonic dashboard.

The stored conditions, search, and sort are in exactly the format POST /v1/documents/filter accepts, so applying a preset is a passthrough: fetch it here, spread its three stored fields into the filter request body, and add your own page/limit. That makes saved filters a lightweight contract between the people who curate views in the dashboard and the integrations that consume them — the logic lives in one place, and a tweak in the dashboard reaches every consumer on its next call.

Presets are listed most-recently-updated first and are organization-wide: every team member and API key sees the same list. A preset can carry a source_connection_id scope; pass source_id on the listing to see only the presets scoped to that source, and forward the stored scope as the filter request's source_id when applying.

The public API is read-only for saved filters. Create, edit, and delete presets in the Talonic dashboard; then load them here and pass the stored fields to POST /v1/documents/filter.
GET/v1/search/saved-filters

Query parameters

source_idstringReturn only presets scoped to this source connection.

Request

curl https://api.talonic.com/v1/search/saved-filters \
  -H "Authorization: Bearer $TALONIC_API_KEY"

Response

Response fields

dataarrayArray of saved filter objects, most recently updated first.
data[].idstringSaved filter UUID.
data[].namestringDisplay name for the saved filter.
data[].conditionsarrayStored filter conditions, in the POST /v1/documents/filter format.
data[].searchstring | nullStored free-text search string.
data[].sortobject | nullStored sort configuration ({ fieldId, direction }).
data[].source_connection_idstring | nullSource scope if set.
data[].created_atstringISO 8601 creation timestamp.
data[].updated_atstringISO 8601 last update timestamp.

Response

{
  "data": [
    {
      "id": "f1e2d3c4-b5a6-4978-8123-456789abcdef",
      "name": "Acme invoices 2026",
      "conditions": [
        { "fieldId": "6f1e9a2b-4c3d-4e5f-8a7b-9c0d1e2f3a4b", "operator": "eq", "value": "Acme Corp" }
      ],
      "search": null,
      "sort": { "fieldId": "8a2b3c4d-5e6f-4a1b-9c8d-7e6f5a4b3c2d", "direction": "desc" },
      "source_connection_id": null,
      "created_at": "2026-07-01T09:00:00.000Z",
      "updated_at": "2026-08-12T14:20:00.000Z"
    }
  ]
}

Apply a preset by name

PRESET=$(curl -s https://api.talonic.com/v1/search/saved-filters \
  -H "Authorization: Bearer $TALONIC_API_KEY" \
  | jq '.data[] | select(.name == "Acme invoices 2026")')

curl -s -X POST https://api.talonic.com/v1/documents/filter \
  -H "Authorization: Bearer $TALONIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(echo "$PRESET" | jq '{conditions, search, sort, limit: 50}')"

Errors

Error responses

401unauthorizedMissing or invalid API key.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.

Frequently asked questions

Can I create or update a saved filter through the API?+
No. The public API lists saved filters read-only. Create, edit, and delete presets in the Talonic dashboard; changes are visible to API consumers immediately on their next listing call.
Are saved filters shared across team members?+
Yes. Saved filters are scoped to the organization, so all team members and every API key see the same list.
How do I apply a saved filter?+
Fetch it from GET /v1/search/saved-filters, then pass its stored conditions, search, and sort values as the body of POST /v1/documents/filter, adding your own page and limit. The formats are identical by design.
Should I address presets by id or by name?+
By id for stability — names are editable in the dashboard and not guaranteed unique. Resolve the name to an id once, store the id, and re-fetch the preset on each run so dashboard edits to its conditions flow through.