Return only claims that more than one source carries
Set min_independent_sources to require a claim to appear on several separately-owned hosts before it reaches your agent.
The problem
An agent cannot tell a well-sourced claim from a confident one. Given a single blog post asserting something false, it will repeat it — and a retrieval layer that hands over that post without signalling how alone it is has made the hallucination cheaper to produce.
What to send
min_independent_sources3
Three separately-owned hosts. Syndication and near-duplicates are already collapsed, so this counts real independence.
min_host_rank0.5
Raises the floor on source quality, independent of how many carry it.
The code
curl -H "x-api-key: ulb_..." \
"https://api.unlob.com/search?q=merger+announced&min_independent_sources=3&min_host_rank=0.5"import httpx
HEADERS = {"x-api-key": "ulb_..."}
# Every hit already carries independent_sources — no second call needed
# to know how well-supported a result is.
r = httpx.get("https://api.unlob.com/search", headers=HEADERS, params={
"q": "acme corp acquires globex",
"min_independent_sources": 3,
})
for hit in r.json()["results"]:
print(f"{hit['independent_sources']:>2} sources {hit['url']}")
# To see WHO those sources are rather than how many, traverse instead.
top = r.json()["results"][0]
groups = httpx.get("https://api.unlob.com/corroborate", headers=HEADERS,
params={"id": top["id"]}).json()The mistake to avoid
Treating a high count as proof. It measures independent publication, not truth — a widely repeated rumour scores well. Use it to rank down the *un*supported, not to promote the popular, and keep the URLs so a human can check.
Frequently asked questions
What counts as an independent source?
A separately-owned host, after near-duplicates and syndicated copies have been collapsed. Two outlets running the same wire story count once, which is the entire point — otherwise the metric measures distribution deals rather than corroboration.
What is a sensible threshold?
Two is a weak signal and three is a reasonable default for factual claims. Going much above five will empty the result set for anything genuinely recent, because corroboration takes time to accumulate.
Try it against your own queries
10,000 requests a month on the free tier, no card. Enough to run a real evaluation set rather than a demo.