For teams shipping AI that writes documents, reports, or memos

See what your AI is actually claiming. Verify the claims that matter.

Two API primitives. POST /extract pulls verifiable claims out of any text — free, 1000 calls per key per day. POST /verify runs one claim through a 7-model panel and returns a verdict with citations you can defend. Use them together or alone.

OpenAPI 3.1 spec /api/v1/openapi.json →

Two primitives. Use them together or alone.

Extract the claims your model emitted. Verify the ones that matter.

POST /extract Free · 1000/day

# AI-generated brief in — atomic claims out
brief = """
Albert Einstein won the 1921 Nobel Prize
in Physics for his theory of general
relativity. He developed the special
theory of relativity in 1905 while
working as a patent clerk in Bern.
Born in Ulm in 1879, he emigrated to
the US in 1933 and joined the Institute
for Advanced Study.
"""

out = client.extract(text=brief)
for c in out.identified_claims:
    print("-", c)
# - Albert Einstein won the 1921 Nobel
#   Prize in Physics for his theory of
#   general relativity.
# - Albert Einstein developed the special
#   theory of relativity in 1905 while
#   working as a patent clerk in Bern.
# - Albert Einstein emigrated to the
#   United States in 1933.

Drop into CI tomorrow as “report what factual claims our AI made yesterday.” Zero spend, real signal.

POST /verify ~90s · 7-model panel

# verify the one that looks confident
v = client.verify_and_wait(
    claim=out.identified_claims[0],
).verdict

print(v.label, v.score, v.confidence)
# → "false" 1.0 0.97
# The 1921 Nobel was awarded for the
# photoelectric effect, not relativity.

for s in v.sources[:2]:
    print(s.title, s.url)
# → "Albert Einstein at UZH"
#   uzh.ch

A research desk of seven models works the claim. Returns a report with citations, not a similarity score.

Three ways teams plug us in.

Async runtime verification

Document or report pipelines that already take minutes. Agent checkpoints. Pre-send gates on outbound replies. Background grade passes on delivered output. ~90s fits inside any workflow that isn't token-streaming chat.

Pre-release / CI regression catching

Run your golden test set through /extract + /verify on every deploy. Catch hallucination regressions before they ship. /extract is the free entry point — wire it in today, before spending a euro.

Incident triage

A customer reported a bad answer. Paste it in, get back which claims are wrong, what the evidence says, and a citation trail you can send back to the customer.

Pricing

Self-serve from day one. Pay only for what runs the panel.

Free

$0

/extract · 1,000 calls/key/day

Prototype today, zero spend. No card required.

Pro

$99/mo

/verify · 500 verifications + 1,000 follow-ups/month

Self-serve. $999/yr annual.

Enterprise

Custom

Volume, SLA, white-label.

Talk to us →

See full pricing on /subscription →

10 lines from your terminal

The quickstart claim hits a pre-warmed cache so this returns in ~1.5s.

Python 3.9+

# pip install lenz-io
from lenz_io import Lenz

client = Lenz(api_key="lenz_...")
v = client.verify_and_wait(
    claim="Einstein won the 1921 Nobel Prize "
          "for general relativity.",
)
print(v.verdict.label, v.verdict.score)
# false 1.0

TypeScript Node 18+

// npm install lenz-io
import { Lenz } from "lenz-io";

const client = new Lenz({ apiKey: "lenz_..." });
const v = await client.verifyAndWait({
  claim: "Einstein won the 1921 Nobel "
       + "Prize for general relativity.",
});
console.log(v.verdict?.label, v.verdict?.score);
// false 1.0

The boring infrastructure is taken care of.

Idempotency by default

A network drop after submit never spawns a duplicate task. The SDK auto-generates an Idempotency-Key per call.

Auto-retry on transient errors

5xx and 429 retried with exponential backoff. Retry-After honored.

HMAC-signed webhooks

Submit with webhook_url=..., Lenz POSTs the typed payload when done. LenzWebhooks.parse() verifies signatures in 4 lines.

Support-ready errors

Every error carries cause + fix + docs URL + a request_id you can quote on a ticket.

Resources