Fact-check any content in real-time with one API call.
from factivelabs import FactiveLabs client = FactiveLabs(api_key="YOUR_API_KEY") result = client.verify( content="The Earth is 4.5 billion years old. The Great Wall is visible from space.", mode="text" ) for claim in result.claims: print(f"{claim.verdict}: {claim.text}")
Every claim passes through five independent stages before a verdict is returned.
Each claim is categorized by domain (politics, science, health, etc.) and analyzed for verifiability. Opinions, idioms, and non-factual framing are detected and filtered out — so only real factual claims enter the verification pipeline.
Each claim is verified against live web sources using grounded search. The verifier retrieves current evidence, cross-references it against the claim, and assigns an initial verdict — confirmed, disputed, or inconclusive — with cited sources.
When the primary verification is inconclusive or uncertain, an independent search engine re-verifies the claim from scratch. This prevents single-source bias and ensures uncertain claims get a second opinion before a verdict is returned.
Results are delivered as structured JSON: verdict, a human-readable explanation, source URLs, and evidence snippets. Both a short summary for compact UIs and a detailed breakdown for deep dives are included in every response.
Every verdict is audited for hallucinated facts, internal contradictions between the verdict and its explanation, and conclusions unsupported by cited evidence. Flagged results are re-verified by an independent model — so only quality-checked verdicts reach your users.
One API call. Any format. We extract the text, find the claims, and verify them — all streamed back in real time so your users see content instantly while fact-checking and hallucination detection runs in parallel.
Content is decomposed into precise, atomic claims before verification. Our extraction engine balances focus and coverage so every meaningful claim is captured at the right weight, fast.
Every claim returns confirmed, disputed, or inconclusive. Machine-readable with no parsing and no ambiguity. Use directly in conditional logic.
Each verdict includes the URLs and titles of the sources used to make the determination. Built-in transparency your users can trust.
Get the exact passage from each source that supports or contradicts the claim. Get the evidence, not just a link.
A one-liner for compact UIs, plus a full reasoning breakdown for detail views. Choose which to display — both are included in every response.
Every highlight region includes character offsets and the matched text itself — so you can pinpoint claims by position or simple string search. Build inline highlighting, annotations, or underlines with zero guesswork.
When a claim is disputed, get back corrected text ready to swap in. Go beyond flagging errors — deliver the fix, not just the flag.
Long documents come back with a full section map — name, word count, character offsets, and a skip recommendation for non-verifiable sections like references or appendices. Use it to build a section picker or automatically exclude boilerplate before verification.
Send it all at once, stream it in as it's generated, or submit in bulk.
Send the full content in a single request. Accepts any format — text, URLs, YouTube, TikTok, PDFs, audio, images. Best for articles, documents, and finished content.
POST /api/v1/verify
Push content chunk by chunk as it's generated. We detect paragraphs and start fact-checking before the content is finished. Built for LLM output streams, live transcription, and real-time captions.
POST /api/v1/verify/stream
Submit up to 100 items in a single request. Each is processed independently and concurrently. Best for content pipelines, CMS ingestion, and bulk verification jobs.
POST /api/v1/verify/batch
All at once, streamed as they come, or picked up later in batch.
Send a request, get the full result when processing completes. Best for short content and simple integrations.
"stream": false, "async": false
Receive claim-by-claim results via Server-Sent Events as they're extracted and verified. Ideal for real-time UIs.
"stream": true
Submit and receive a job ID immediately. Poll the status endpoint to check progress. Best for large documents and batch processing.
"async": true
Three steps from zero to your first verified claim.
Create a free account and generate your key. 500 free claims per month included.
Use our Python SDK for the fastest integration, or call the REST API directly.
Send any text to the verify endpoint and get back claims with verdicts, sources, and explanations.
Integrate fact-checking into any workflow. Fact-check a single claim at a time or submit content with hundreds or even thousands of claims.
Add a verification layer to any LLM pipeline. Submit model output and get back structured evidence for every claim — before it reaches your users. Try it out live here.
Give your AI agent the ability to verify its own output before presenting it to users. Catch hallucinations in RAG pipelines, chatbots, and copilots.
Flag disputed claims in user-generated content before it goes live. Run at ingestion time or as a batch job across your entire content library.
Verify sources and claims at scale. Process entire articles or documents and get claim-by-claim breakdowns with source citations.
Fact-check articles, press releases, and reports before publication. What takes hours manually takes seconds through the API.
Verify claims in filings, marketing materials, and regulated documents. Reduce liability by catching factual errors before they ship.
Toadstool is a live app built entirely on our API. Fact-check all forms of media: text docs, audio, YouTube, Instagram, links, AI shares, and more.
A claim is a single verifiable statement extracted from your content. For example, "The Earth is 4.5 billion years old" is one claim. A paragraph might contain 3-5 claims. The API automatically extracts and counts individual claims.
Yes. The Playground lets you test the API without creating an account. For programmatic access, create a free account to get your API key — no credit card required.
On paid plans, you’ll be billed $0.01 per additional claim automatically. On the Free plan, requests will return a 402 error — upgrade to continue.
You’ll receive a 429 response with a Retry-After header. Upgrade to a higher plan for increased limits.
The Toadstool app is our consumer product — a fact-checking app built on the same pipeline. The API gives developers and AI agents programmatic access. Same engine, different interfaces.