Filtering
Filters are where a general web index becomes a specific tool. Every one below is a stored field, so combining them costs nothing.
Filters are free
Every filterable attribute — quality, host rank, centrality, corroboration count, content type, topic, language, dates — is written into the index at build time as a fast field. Filtering therefore narrows the candidate set before scoring rather than after, which is why heavily filtered queries are frequently faster than unfiltered ones.
The practical consequence: do not hold back on filters to "keep the query fast". The opposite is true.
The five groups
Scope decides which slice of the index the query may touch — vertical, site, exclude_site, source. Time carries two distinct clocks. Quality and trust set floors on authority, quality, centrality and corroboration. Shape covers content type, topic, language, length and safety. Output governs ordering, deduplication, facets and projection.
The two clocks
This is the most common mistake. from and to filter on crawl time — when we fetched the page. published_from and published_to filter on content date — when the page says it was published.
A page crawled yesterday may have been published in 2019. For nearly every question about currency you want published_from. Use from/to when you are reproducing a past result set or auditing what evidence existed at a point in time.
The trust floors
Four filters do most of the quality work. min_host_rank sets a floor on publisher authority. min_quality sets one on the passage itself. min_centrality requires the passage to be well-connected in the coverage graph. min_independent_sources requires the story to be carried by N distinct hosts.
The last of these is the cheapest hallucination guard available: set it to 3 and single-sourced claims never enter the result set.
curl -H "x-api-key: $UNLOB_API_KEY" \
"https://api.unlob.com/search?q=merger+announced&min_independent_sources=3&collapse=story"Discovering the vocabulary
Enumerated filters — content_type, authority, topic, safety, sort, collapse — have closed vocabularies served by /describe. Read them rather than hardcoding them, so your integration follows the API instead of drifting from it.
Start on the free tier
10,000 requests a month, no card. Everything documented here works on every plan.