LenzVerification infrastructure for AI output
Audit-grade fact-checking for AI-drafted text.
- €10,000 warrantyper qualifying check
- Independent public sourcesnever the model that wrote it
- Multiple vendors, three reviewersafter two models argue both sides
“Spotify launched in the United States in July 2009.”
- 01 Framing claim, queries · 3.5 s
- 02 Research 18 public sources · 21.8 s
- 03 Debate for · against · 18.3 s
- 04 Panel Review 3 reviewers · 28.8 s
- 05 Conclusion verdict, score · 8.6 s
Spotify launched in the United States in July 2011.
- techcrunch.com
- theverge.com
- engadget.com
- +15 more
Each stage’s time is this run’s own, replayed faster. A full verification takes ~90 seconds per statement.
Open the full verification01Why independent
A model grading its own output is not an outside check.
Lenz sits outside the model vendor and outside your own team. In a full verification it checks each factual statement against public evidence the model was never given: models from several vendors argue both sides and three reviewers weigh the arguments.
A split panel stays visible in the result. The evidence is public, so a customer or an auditor can follow it.
02How it fits
Lenz supplies the verdicts.
Your gate applies your thresholds.
-
An answer is drafted
A support reply, a RAG answer, a summary: anything a model wrote that someone is about to read.
-
Statements are extracted
The text is split into single, self-contained factual statements. Opinions, predictions and questions are left out.
-
Assessed in bulk
A panel of models returns a verdict and a confidence level per statement, synchronously.
-
Uncertain claims are investigated
Negative and low-confidence results escalate to a full verification against independent public sources, with the arguments and reasoning.
-
Your gate decides
What clears your thresholds ships. What doesn't goes to your reviewer with the verdict, sources and reasoning attached. Lenz never holds, edits or publishes your text.
03Research · Open evaluation
Five frontier models, 997 claims, not unanimous on 63%.
Our open evaluation of LLM agreement on real fact-checks: frozen snapshots, full data, full methodology.
- 632 claims · not unanimous
- 365 claims · unanimous
- n = 997 · one dot per claim
04Warranty
What other AI products tell you: AI can make mistakes. Check important information.
The risk stays with you
Lenz warrants the verdict.
On a paid Pro or Scale plan, every full verification that qualifies carries a contractual warranty, at no extra charge. €10,000 per certificate, €500,000 across all Lenz certificates in any rolling 12 months.
The main conditions- You published a warranted statement, or sent it to someone outside your organisation, after its qualified timestamp.
- A court or regulator later made a finding on the warranted statement that contradicted the verdict, once the time to appeal has passed or appeals are exhausted.
- Damages were awarded against you on that basis.
Fines, penalties, settlements and defence costs are not part of the warranty.
The Great Wall of China is visible from the Moon with the naked eye.
- verdict
- False · 1/10
- confidence
- 9.7/10
- sources
- 29, from 26 domains
- cover
- €10,000 per certificate
- certificate
- fd7dcc7f…566f6deb
- issued
- qualified timestamp
- Namirial,
- OpenTimestamps
- Bitcoin attestation
- record hash
- 3f45d7b2…3e7f1163
05For developers
Four calls and one to run them all.
| Endpoint | What it does | Time |
|---|---|---|
| /extract | Pull verifiable claims out of any text | free |
| /assess | Fast multi-model verdict for sync UX | ~15 s |
| /verify | Full adversarial pipeline with citations | ~90 s |
| /citecheck | Does each cited source say what the text says | — |
| /review | Issues in a draft's claims and its citations | — |
/ask answers follow-up questions about any verification.
# pip install lenz-io from lenz_io import Lenz client = Lenz(api_key="lenz_...") extracted = client.extract(text=model_output) # identified_claims is empty when the text yields a # single statement claims = extracted.identified_claims or [extracted.claim] r = client.assess(claims=claims) # "Error" means not checked: never ship it as clean for c in r.claims: if ( c.verdict in ("False", "Mostly False", "Mixed", "Error") or c.confidence == "low" ): print("HOLD:", c.claim, c.verdict, c.confidence) # HOLD: Python 3.12 runs about 20% faster … False high
// npm install lenz-io import { Lenz } from "lenz-io"; const client = new Lenz({ apiKey: "lenz_..." }); const out = await client.extract({ text: modelOutput }); // identified_claims is empty when the text holds a single claim const claims = out.identified_claims?.length ? out.identified_claims : [out.claim ?? ""]; const { claims: rows } = await client.assess({ claims }); // "Error" means not checked: never ship it as clean const hold = ["False", "Mostly False", "Mixed", "Error"]; for (const c of rows) { const verdict = c.verdict ?? "Error"; if (hold.includes(verdict) || c.confidence === "low") console.log("HOLD:", c.claim, verdict, c.confidence); }
curl -X POST https://lenz.io/api/v1/extract \ -H "Authorization: Bearer $LENZ_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "text": "Python 3.12 runs about 20% faster than 3.11. ..." }' # claims = identified_claims, or [claim] when # identified_claims is [] curl -X POST https://lenz.io/api/v1/assess \ -H "Authorization: Bearer $LENZ_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "claims": ["Python 3.12 runs about 20% faster than 3.11."] }' # then hold the rows whose verdict or confidence fails your gate
Runs inClaudeChatGPTCursorClaude Coden8nZapierMCP serverRESTPython · TypeScript SDKs
06Use cases
For teams shipping AI-drafted text.
- Content teamsArticles, briefs and postsThe claims, numbers, dates and names in a draft, before it goes out
- Tax & legalTax and legal memosForms, deadlines, thresholds, what a court held
- AI product teamsModel-generated answersThe factual statements in an answer, before a customer sees it
- MarketingMarket claimsMarket figures and competitor prices checked against public sources
Check the next draft before anyone reads it.
Free · 100 assessments or 10 full verifications a month