Document Filters
Document filters let you query the Talonic Documents page by extracted field values, not just filenames. Build conditions with field autocomplete and comparison operators (eq, contains, gt, between, is_empty, and more), then combine multiple conditions into one precise query. Filter state is URL-serializable so you can share filtered views, and frequently used filters can be saved as presets.
The Facet Bar
The Documents page has a single filter bar. Text search, facet filters, and caller-metadata filters all live in one input that understands a facet:value grammar. Start typing a facet name and autocomplete offers it, then offers that facet's values; pressing Enter turns the token into a chip inside the bar. Backspace on an empty input removes the last chip, so you can narrow and widen a view without leaving the keyboard. Batch Metadata import and Deduplication sit behind the overflow menu so the toolbar stays on one line.
status:— processing state (done, partial, processing, queued, failed). Single value.type:— document type from classification. Several types can be selected.source:— the source or connector a document came from.tag:— user tags and triage tags, rendered as a wrapping tag cloud.bundle:— the bundle a document was uploaded in, when bundles are present.batch:— the caller-supplied batch id from ingest. Free text; several ids combine with OR.archive:— legal hold and retention state for archived documents.key:value— any other pair filters on caller-supplied metadata, for exampleregion:northorchannel:portal. Several pairs combine with AND.
Triage tags (sensitivity, department, and jurisdiction) are multi-select. Several picks within one dimension combine with OR, because a document carries exactly one value per dimension and an AND would always come back empty. Dimensions combine with AND against each other and against your own user tags. Selecting department: finance, department: legal, and jurisdiction: DE therefore shows finance or legal documents from Germany. The Advanced condition entry in the + Filter menu opens the field-value condition builder described below.
Selecting rows works by clicking. Row checkboxes stay hidden until you click a row: the click selects that row and reveals the checkbox column, including the header select-all. When you clear the selection, the column hides again. The document name stays a link to the detail page, so clicking the name opens the document instead of selecting it. With rows selected, the bulk actions (tag, process, download, delete) apply to exactly those documents.
batch: followed by the id your system sent at ingest, press Enter, then click the first row and use the header select-all to act on the whole batch.Filtering by Field Values
Filters operate on the materialized values index — a flattened representation of every extracted field value across your documents. This means filtering is fast even across thousands of documents because queries run against pre-indexed data rather than scanning raw extractions at query time.
document_type eq "Invoice" AND total_amount gt 10000 AND date between "2025-01-01" "2025-12-31" to find high-value invoices from a specific year.Filter Operators
eq— exact match (case-insensitive for strings).contains— substring match within field values.gt/lt— greater than or less than for numeric and date fields.between— range match with lower and upper bounds.is_empty— finds documents where a specific field has no extracted value.
Filter state is encoded in the URL query string using dynamic SQL generation on the backend. This means you can bookmark filtered views, share them with teammates via a link, or save them as presets for one-click access to commonly used queries.
For best results, save your most common filter combinations as presets. Most teams create presets for categories like "high-value invoices this quarter," "documents missing key fields," or "recently failed extractions." Presets appear as one-click buttons on the Documents page, eliminating the need to rebuild complex filter conditions from scratch each time.
Filtering via API
# Find high-value invoices from a specific vendor.
# Field IDs come from GET /v1/fields; operators: eq, contains, gt, lt, between, is_empty.
curl -s -X POST "https://api.talonic.com/v1/documents/filter" \
-H "Authorization: Bearer $TALONIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"conditions": [
{ "fieldId": "fld_vendor_name", "operator": "eq", "value": "Acme Corp" },
{ "fieldId": "fld_total_amount", "operator": "gt", "value": 5000 }
],
"limit": 10
}'
# Response:
# {
# "data": [
# {
# "id": "doc_001",
# "name": "Invoice_ACME_Q1.pdf",
# "document_type": "Invoice",
# "matched_values": {
# "vendor_name": "Acme Corp",
# "total_amount": "12450.00"
# }
# }
# ],
# "total": 15
# }
# Find documents missing a critical field:
curl -s -X POST "https://api.talonic.com/v1/documents/filter" \
-H "Authorization: Bearer $TALONIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "conditions": [ { "fieldId": "fld_payment_terms", "operator": "is_empty" } ] }'Document filters are particularly powerful for quality assurance and operational workflows. Use the is_empty operator to find documents where critical fields were not extracted — these are candidates for schema instruction improvement or manual review. Combine gt and between operators on monetary fields to segment documents by value range for prioritized processing. The URL-serializable filter state means you can build a complex query, copy the URL, and share it with a colleague — they see exactly the same filtered view without re-building the conditions. Save frequently-used filter combinations as presets for one-click access to common queries like "missing payment terms this month" or "high-value contracts pending review".
For example, to find all invoices from a specific vendor with outstanding amounts, build a filter with vendor_name eq "Acme Corp" AND document_type eq "Invoice" AND total_amount gt 5000. The field autocomplete ensures you are filtering on valid extracted fields, and the materialized index returns results instantly even across thousands of documents. Save this as a preset called "Acme high-value invoices" for one-click access when you need to review that vendor's billing history.
Frequently asked questions
How do several triage tag picks combine?+
Why are there no checkboxes on the Documents list?+
What operators are available for document filtering?+
Can I share filtered views with my team?+
How does field autocomplete work in filters?+
Can I filter on fields that have no value?+
Can I use the filter API programmatically for automated reporting?+
conditions to filter documents by extracted field values programmatically. Each condition is a fieldId (from GET /v1/fields), an operator (eq, contains, gt, lt, between, is_empty), and a value (plus valueTo for between). Multiple conditions combine with AND. This is useful for building automated reports, dashboards, or alerts that trigger when documents matching specific criteria are processed.