Overview Documentation API Reference Playground Pricing
Sign In Get API Key

Fact-check anything
in real-time with
one API call.

Submit content and get back individual claims with verdicts, explanations, sources, and more — in seconds.

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}")
▶ Response
Confirmed "The Earth is 4.5 billion years old"
Disputed "The Great Wall is visible from space"
2 claims · 1.2s · 6 sources

Submit any content.

Submit text, URLs, documents, or multiple other media formats. We extract claims and fact-check in real-time.

Text
Web / URLs
PDF
Word
Voice / Audio
Images
YouTube
Instagram
TikTok
X
Reddit
ChatGPT
Perplexity
Gemini
Claude

Get back structured data.

Granular Claims

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.

Verdicts

Every claim returns confirmed, disputed, or inconclusive. Machine-readable with no parsing and no ambiguity. Use directly in conditional logic.

Source Citations

Each verdict includes the URLs and titles of the sources used to make the determination. Built-in transparency your users can trust.

Source Snippets

Get the exact passage from each source that supports or contradicts the claim. Get the evidence, not just a link.

Short & Detailed Explanations

A one-liner for compact UIs, plus a full reasoning breakdown for detail views. Choose which to display — both are included in every response.

Claim Positioning & Text

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.

Corrective Text

When a claim is disputed, get back corrected text ready to swap in. Go beyond flagging errors — deliver the fix, not just the flag.

Document Sections

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.

Choose from three input modes.

Send it all at once, stream it in as it's generated, or submit in bulk.

Complete Default

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

Streaming Real-time

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

Batch Bulk

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

Choose from three response modes.

All at once, streamed as they come, or picked up later in batch.

Synchronous Default

Send a request, get the full result when processing completes. Best for short content and simple integrations.

"stream": false, "async": false

Streaming SSE

Receive claim-by-claim results via Server-Sent Events as they're extracted and verified. Ideal for real-time UIs.

"stream": true

Batch / Async Polling

Submit and receive a job ID immediately. Poll the status endpoint to check progress. Best for large documents and batch processing.

"async": true

How our pipeline works...

Every claim passes through a multi-model verification pipeline — classified, routed, researched against live sources, dispute-checked, and quality-gated before a single verdict is returned.

1
Claim Classification
Multiple concurrent analysis tracks identify domain and framing.
concurrent
Topic Classifier
Categorizes by knowledge domain for model and source selection.
domain: science | politics | history
Context Analyzer
Detects multiple framing flags by reading the claim and its source context.
flags: misconception, negation, attributed, contrastive, …
2
Claim Routing
Claims directed to the appropriate decision system.
"founded in 2015"
Model A
general
"GDP grew 3.2% in Q1"
Model B + live search
time-sensitive
"It's 38 degrees in…"
Weather API
time-sensitive
"lightning never strikes twice"
skipped
idiom_or_saying
3
Grounded Research
Claims verified against sources using structured queries.
live sources
// Structured research prompt
query: "Was the Sahara always a desert?"
context: "The Sahara is the world's largest hot desert..."
domain: "science"
Wikipedia
Nature
Britannica
NASA Earth
Smithsonian
4
Dispute Resolution
Independent recheck rounds for disputed verdicts.
recheck
Round 1
D
D
C
2/3 DISPUTED
Recheck
D
D
CONFIRMED DISPUTED
5
Verdict Synthesis
Human-readable summaries and detailed explanations.
DISPUTED The Sahara has undergone dramatic climate shifts — as recently as 6,000 years ago it was a green, fertile landscape.
INCONCLUSIVE The exact number of species in the Amazon remains unknown; estimates range widely.
CONFIRMED The Great Barrier Reef stretches over 2,300 km along the Australian coast.
6
Quality Gate
Specialized review for error edge cases.
8 failure modes
VERDICT_MISMATCH
NITPICKING
ABSENCE_AS_DISPROOF
SELF_CONTRADICTORY
CORRECT_BUT_DISPUTED
CIRCULAR_CONFIRMATION
CLAIM_ANALYSIS_MISMATCH
INCOHERENT
VERDICT_MISMATCHaction: re-verify
The explanation says the claim is factually correct, but the verdict was labeled DISPUTED. Flagged for re-verification.
7
Final Disposition
Flagged issues routed to corrective actions.
VERDICT_MISMATCH
Re-verify
ABSENCE_AS_DISPROOF
Relabel INCONCLUSIVE
ALL CLEAR
Deliver to client
INCOHERENT
Suppress

Get started in 2 minutes.

Three steps from zero to your first verified claim.

1

Get your API key

Create a free account and generate your key. 500 free claims per month included.

2

Install the SDK (optional)

Use our Python SDK for the fastest integration, or call the REST API directly.

pip install factivelabs
3

Verify your first claim

Send any text to the verify endpoint and get back claims with verdicts, sources, and explanations.

result = client.verify(content="Your text here", mode="text")

Built for production environments.

Integrate fact-checking into any workflow. Fact-check a single claim at a time or submit content with hundreds or even thousands of claims.

💪

AI Safety & Hallucination Detection

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.

🤖

AI Agents & Copilots

Give your AI agent the ability to verify its own output before presenting it to users. Catch hallucinations in RAG pipelines, chatbots, and copilots. MCP server coming soon.

📜

Content Moderation

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.

📚

Research & Journalism

Verify sources and claims at scale. Process entire articles or documents and get claim-by-claim breakdowns with source citations.

📰

Publishing & Editorial

Fact-check articles, press releases, and reports before publication. What takes hours manually takes seconds through the API.

⚖️

Compliance & Legal

Verify claims in filings, marketing materials, and regulated documents. Reduce liability by catching factual errors before they ship.

See it in action at Toadstool.

Review mode

Fact-check content from all forms of media: text docs, audio, YouTube, Instagram, links, AI shares, and more.

Factive Review Mode

Search mode

Fact-check AI chats in real-time. Try different models: ChatGPT, Perplexity, Gemini, and more.

Factive Search Mode

Frequently asked questions:

What counts as a "claim"?

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.

Can I try the API before signing up?

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.

What happens if I exceed my monthly credits?

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.

What happens if I hit the rate limit?

You’ll receive a 429 response with a Retry-After header. Upgrade to a higher plan for increased limits.

Do you offer an MCP server for AI agents?

An MCP server is coming soon and will be published to the Anthropic Connector Directory and as an open-source package. In the meantime, the REST API works with any agent framework.

How is the Toadstool app different from the API?

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.