Fact-check the draft before it goes out.
Lenz is a fact-checking service for newsletters, briefs and posts. It identifies factual statements it can check against independent public sources and returns a result for each.
Example: a newsletter paragraph
“Spotify reported 696 million monthly active users in the second quarter of 2025, up 11% from a year earlier. The company was founded in Stockholm in 2006 and launched in the United States in July 2009. Its premium subscriber count passed 276 million in the same quarter.”
Full verification
- Spotify reported 696 million monthly active users in the second quarter of 2025, an 11% increase from the second quarter of 2024. True high confidence 10/10 sec.govnewsroom.spotify.coms29.q4cdn.com+14 more
- Spotify had more than 276 million premium subscribers in the second quarter of 2025. Mostly True high confidence 7/10 sec.govnewsroom.spotify.combusinesswire.com+13 more
- Spotify was founded in Stockholm in 2006. True high confidence 10/10 allabolag.sesec.govlei.report+15 more
- Spotify launched in the United States in July 2009. False high confidence 1/10 techcrunch.comtheverge.comengadget.com+15 more Spotify did not launch in the United States in July 2009. Contemporaneous reporting and launch announcements establish that the service arrived in the U.S. on July 14, 2011, following years of anticipation. The limited 2009 material either predicted a future launch or carries inconsistent dating.
Checked 7 September 2026. Open a row for the sources it used and the reasoning that weighed them.
Fact-check AI-generated newsletters, briefs, posts and reports before publishing.
-
The draft is ready
An issue, a brief, a post, a report — whether a model wrote the first pass or you did.
-
Lenz finds the checkable statements
You hand over the whole piece rather than a list. Lenz picks out the factual statements it can check against independent public sources and leaves the opinions and the recommendations alone.
-
Each one comes back with a result
An assessment returns a verdict and a confidence level per statement in about 10 seconds; that is how you sort a whole issue. Send the ones that matter to a full verification, where the verdict comes from sources Lenz went and found.
-
You decide what to publish
Read the results before the issue goes out: cut a line, fix a figure, or run a full verification on the one you are least sure of. The editorial call is yours.
-
Publish, with the checks behind it
Each full verification keeps a record you can reopen: the statement as framed, the verdict and score, every source with its date, the reasoning. A figure questioned later has a check behind it.
Market briefs, news digests and articles
Paste the whole piece. Lenz returns a result per statement, not one verdict for the document, so a wrong figure is named with its own sources.
Blog posts, press releases and social media posts: the statistics in them
A statistic is checked like any other statement: Lenz looks for where the number was published and reports what it found, including when that is nothing.
Check ChatGPT-drafted content and X or LinkedIn posts inside Claude or Cursor.
Connect Lenz to Claude with one sign-in, no key; Cursor and Claude Code take one command with your key. Paste the post or the draft and ask for a check; the results come back in the same window.
Automate checks on recurring LLM output: briefs, digests, documents.
For a daily brief or a batch of model-drafted documents, a short Python script: extract the statements, assess them together, route False, Mixed and low-confidence results to your reviewer. The routing is your policy.
Python pip install lenz-io
# a recurring draft: extract the statements, assess them together, route the flagged ones from lenz_io import Lenz client = Lenz(api_key="lenz_...") extracted = client.extract(text=draft) # identified_claims is empty when the text yields a single statement claims = extracted.identified_claims or [extracted.claim] r = client.assess(claims=claims) # one row per statement, same order # your routing policy. "Error" means the item was not checked — never read it as clean flagged = [c for c in r.claims if c.verdict in ("False", "Mostly False", "Mixed", "Error") or c.confidence == "low"] send_to_reviewer(draft, flagged) # your own function: an email, a ticket, a Slack message
The full sequence is extract → assess → verify → ask. Pipelines, webhooks and the TypeScript SDK are on the developer page.
A scheduled digest or a batch of documents runs unattended: Lenz posts each result back when it lands, so nothing polls, and a retried request never runs the same check twice.
What a full verification looks like.
A full verification is the investigation, not a longer assessment. Lenz searches independent public sources for the statement, has models argue both sides on what it found and a panel review the arguments, then returns the verdict with those sources and the reasoning. About 90 seconds per statement.
Warranty
Vendors disclaim accuracy. Lenz warrants the verdict.
A verdict can qualify when a full verification returns True or False with high panel confidence and enough independent sources behind it.
On a paid Developer or Scale plan, every full verification that qualifies carries a contractual warranty, at no extra charge.
How the warranty works →Pricing: start free, no card.
Free tier, no card: 100 assessments or 10 full verifications a month, in any combination. The Developer tier is $99 a month for 5,000 assessments or 500 full verifications, the same way, and the Scale tier is $399 a month for production volumes. Every plan includes 1,000 extractions a day, an extraction being one call however long the text.
Frequently asked questions
No. Connecting Lenz to Claude is one sign-in and needs no key. Cursor and Claude Code take one command with your key. You can also use a script to automate checks.
Two different checks. An assessment is a judgement: a panel of models reads the statement and returns a result and a confidence level in about 10 seconds. A full verification is an investigation: Lenz searches independent public sources and returns the verdict with those sources and the reasoning, in about 90 seconds per statement.
Nothing is invented to fill the gap. When Lenz finds no public evidence for a statement, the finding says so and the result scores low. Treat that statement as unverified.
Submissions through the API and the connectors are private to your account.