# Lenz > Fact-checking API for AI-generated content — an independent verification layer that returns sourced verdicts with citations and a full reasoning trace. Lenz verifies AI-generated content before it is published, returned to a customer, or passed to another agent. It is API-first: four primitives — extract, assess, verify, ask — with Python and TypeScript SDKs. extract pulls checkable claims out of AI output, or out of a public web page given its URL; assess returns a 3-model verdict in ~15 seconds; verify runs the full multi-model pipeline (Framing → Research → Debate → Panel Review → Conclusion) in ~90 seconds; ask answers grounded follow-up questions about a completed verification. Research grounds each claim in external sources scored for authority, and three independent reviewers on models from different vendors each check source quality, how directly the evidence bears on the claim, and claim precision; when enough quotes have been checked against their pages, one of them reads only those. Every verdict is structured — a conclusion label (True, Mostly True, Mixed, Mostly False, or False), a Lenz Score from 1 to 10, citations, and the reasoning trace — so workflows can block, publish, or escalate automatically. When no public record in the evidence settles a claim, the answer is "No Public Record" with no score (lenz_score is null), which does not make the claim false. Lenz is unaffiliated with any model vendor, and API-submitted claims are private. ## How It Works - [About Lenz](https://lenz.io/about): The company — what Lenz is and who it fact-checks AI output for - [How It Works](https://lenz.io/how-it-works): Five-step verification pipeline from claim framing to conclusion Lenz is a fact-checking API for AI-generated content. The full verify pipeline has five stages: 1. **Framing** — The claim is pinned exactly as written and a research plan is built around it: targeted search queries, the entities involved, the topic domain, and whether the claim is time-sensitive. 2. **Research** — The system searches the web across multiple queries and independent search engines, reads the pages themselves, extracts quotes from each source's own text, and scores each piece of evidence for authority, relevance and recency. 3. **Debate** — Separate AI models argue opposing sides from the collected evidence only: one makes the case that the claim is true, the other that it is false, and each then rebuts the other's argument. 4. **Panel Review** — Three independent reviewers, each on a model from a different vendor, read the evidence and the debate and each score the claim with their reasoning. The verdict is the median of their scores, not any one model's pick. When the panel splits, two more reviewers join before the median is taken. 5. **Conclusion** — The panel's verdict is written up: True, Mostly True, Mixed, Mostly False, or False, with a Lenz Score from 1 (completely false) to 10 (completely true), a confidence level and an executive summary citing the sources. When no public record in the evidence settles the claim, there is no score: the answer is "No Public Record", which does not make the claim false. **Why a pipeline, and not just ChatGPT** — One model, asked once, is one opinion, sometimes from memory. Lenz applies multiple techniques that academic research has evaluated and shown to beat a single model, including: independent research run apart from the models (sources fetched, read and quoted in full, then scored and sorted by authority, relevance and recency), multiple models from multiple vendors, adversarial debate argued on that evidence only, and a panel whose verdict is the median of independent scores, with disagreements kept. Across 997 claims, five frontier models were not unanimous on 63% (https://lenz.io/research/llm-disagreement). ## Research - [Beyond Benchmarks: Disagreement Among Frontier LLMs on Real-World Fact-Checks](https://lenz.io/research/llm-disagreement): 5 frontier LLMs vs 997 user-submitted claims. Full methodology, breakdowns, and the per-claim CSV at https://lenz.io/research/llm-disagreement/data.csv. Permanent citation: https://doi.org/10.5281/zenodo.20344846 (resolves to the current version). Every version and every study: https://lenz.io/research ## Developer - [Developers](https://lenz.io/developers): Fact-checking API for AI- and human-written documents — four primitives (/extract, /assess, /verify, /ask) with Python and TypeScript SDKs - [Plans & Pricing](https://lenz.io/plans): Self-serve plans from Free to Scale — per-tier /verify, /assess, and /ask quotas, monthly and annual billing - [Warranty](https://lenz.io/warranty): What Lenz warrants, and when it pays - [Product: fact-checking for AI-drafted text](https://lenz.io/product): Product overview — what Lenz checks, where it runs, the four audiences, full verification in order - [For content teams](https://lenz.io/for/content-teams): Articles, briefs and posts, fact-checked statement by statement before they go out - [For tax and legal teams](https://lenz.io/for/tax-and-legal): AI-drafted tax and legal memos — forms, deadlines, rates, thresholds, what a court held - [For AI product teams](https://lenz.io/for/ai-product-teams): Hallucination detection against public sources, with structured results per statement - [For marketing teams](https://lenz.io/for/marketing-teams): Marketing, competitor and comparative claims checked against public sources - [MCP Server](https://lenz.io/integrations/mcp-server): Remote Model Context Protocol server at lenz.io/mcp. Connect Lenz to Claude Code, Codex, Cursor, or any MCP client with a Bearer API key. Claude Desktop, claude.ai and ChatGPT reach the same server through their own connector screens — see https://lenz.io/integrations/claude-chatgpt. Exposes fact-checking tools: assess (a quick 3-model verdict with a confidence, no sources shown), verify (the full multi-model pipeline for one claim, with its main sources, in about a minute or two), get_verification (poll), ask (grounded follow-up on a completed verification), select (choose which claim to run when a text contains several), check_usage (quota), and list_verifications (your recent deep checks, newest first, to get back a result that finished after the chat moved on). Streamable HTTP transport. - [Integrations](https://lenz.io/integrations): Hub for every way to connect Lenz — the n8n node, the Zapier app, the MCP server, the CLI, and the REST API. One API key across all of them. - [Lenz in Claude or ChatGPT](https://lenz.io/integrations/claude-chatgpt): The non-technical route into the Lenz MCP server, for people who already use a chat assistant and are not wiring anything. No API key for either client: you sign in with your Lenz account. CLAUDE (Desktop, claude.ai and mobile share one account): open the Claude connectors directory, click Connect to Claude, sign in with Lenz. Or in the app: Settings → Extensions → Browse extensions → search Lenz → +. CHATGPT (a custom app, beta): on chatgpt.com — Plugins → Add → Add custom MCP server → name Lenz, server URL, Authentication OAuth → Create as a plugin → Continue to Lenz → sign in with Lenz → Connect and return to ChatGPT → Allow access → Try in chat. In a Business, Enterprise or Edu workspace an owner or admin adds it once (Workspace settings → Plugins → Add → Create MCP plugin → OAuth → Review app → Publish), then each person: Plugins → Lenz → Connect → sign in. A custom app is off by default in each new chat: + → pick Lenz. Coding tools (Claude Code, Codex, Cursor) use /integrations/mcp-server instead. - [n8n Integration](https://lenz.io/integrations/n8n): The Lenz node, published on n8n.io — add a fact-check step to any n8n workflow. Returns structured JSON: verdict (True/Mostly True/Mixed/Mostly False/False), lenz_score (1–10), a citations array (url, title, stance), and the reasoning trace. When no public record settles the claim, verdict is "No Public Record" and lenz_score and passed are null. No HTTP configuration; the API key goes under Credentials → Lenz API. - [Zapier Integration](https://lenz.io/integrations/zapier): The Lenz app for Zapier — add a fact-check step to any Zap. One polling trigger (New Verification Completed) and six actions: Verify a Claim (full pipeline, ~90s, resumes off a signed callback), Assess (Fast) (~15s, one entry per claim), Extract Claims (free), Ask Follow-Up (grounded answer on a completed verification), Review a Draft (every claim in a draft, 2-4 min) and Check Citations (do the linked sources say what the draft claims). Connect by signing in to Lenz; no key to paste. Fields arrive mapped: verdict (True/Mostly True/Mixed/Mostly False/False), lenz_score (1–10), passed, key_finding, executive_summary, sources (verdict "No Public Record": lenz_score and passed are null). - [API Quickstart](https://lenz.io/docs/quickstart): Five-minute integration guide — get an API key, make the first call, and read a verification result, with Python and TypeScript examples - [Going to Production](https://lenz.io/docs/production): Webhooks (with an edge-runtime receiver), polling and resuming, stopping a run, timeouts, retries and idempotency, per-call options, async Python, batch and depth - [Error Reference](https://lenz.io/docs/errors): Canonical reference for every SDK exception and API error code - [API Versions](https://lenz.io/docs/api-versions): Which dated version of the response shape a request gets, and what changed between versions - [Public API Documentation](https://lenz.io/api/v1/docs/): Read-only REST API for third-party developers. Endpoints include: search and browse published claim verifications, retrieve full claim verifications with framing, research sources, debate transcripts, adjudication assessments, and conclusions. Also lists available domains/entities for filtering. No authentication required. - [OpenAPI Specification](https://lenz.io/api/v1/openapi.json): Machine-readable OpenAPI 3.0 schema for the public API ## Policies - [Terms of Service](https://lenz.io/terms): The terms for the API, the connector, the website and WhatsApp - [Privacy Policy](https://lenz.io/privacy): How we collect, use, and protect personal information - [Subprocessors](https://lenz.io/subprocessors): The third parties that receive the text you submit - [Contact](https://lenz.io/contact): Get in touch with the Lenz team **Terms of Service** — One document for the API, the connector, the website and WhatsApp. Users must be 18+. Lenz uses AI to automate verification analysis and does not guarantee accuracy, except that qualifying verdicts carry a warranty. Claims are private by default; a claim made public may appear in the Library. Subscriptions are billed via Stripe and can be cancelled at any time. **Privacy Policy** — Lenz collects account information (email, name) and claim submission data. Claims added to the Library are public. Data is not sold to third parties. Cookies are used for authentication and analytics. Users can request data deletion by contacting the team.