LIVE
MOSTLY TRUE“Pfizer is ending development of its once-daily weight-loss pill danuglipron because a p…· 15h agoUNVERIFIED“OpenAI has released GPT-5 this week.”· 1d agoUNVERIFIEDjames talarico is a vegan· 2d agoUNVERIFIEDtallarico is a vegan· 2d agoMOSTLY TRUE“Vitamin B6 (pyridoxine) supplements can cause nerve damage (peripheral neuropathy), eve…· 2d agoFALSE"NASA confirmed in 2024 that the solar eclipse will cause a nationwide communications bl…· 2d agoUNVERIFIED“Telegram has been banned in Russia.”· 3d agoSUSPICIOUShttps://directsavingshelp.com/hc10pcv21sv2/?utm_campaign=PC-HC10-A-DG-Massachusetts-Broa…· 4d agoUNVERIFIED<coroutine object OpenAISpeechToText.transcribe at 0x7b18d434ba00>· 4d agoUNVERIFIED<coroutine object OpenAISpeechToText.transcribe at 0x7b18d434ba00>· 4d agoMIXEDtheir is a firmament above us with 7 layers right· 4d agoTRUEis the sky bllue· 4d agoMOSTLY TRUE“Pfizer is ending development of its once-daily weight-loss pill danuglipron because a p…· 15h agoUNVERIFIED“OpenAI has released GPT-5 this week.”· 1d agoUNVERIFIEDjames talarico is a vegan· 2d agoUNVERIFIEDtallarico is a vegan· 2d agoMOSTLY TRUE“Vitamin B6 (pyridoxine) supplements can cause nerve damage (peripheral neuropathy), eve…· 2d agoFALSE"NASA confirmed in 2024 that the solar eclipse will cause a nationwide communications bl…· 2d agoUNVERIFIED“Telegram has been banned in Russia.”· 3d agoSUSPICIOUShttps://directsavingshelp.com/hc10pcv21sv2/?utm_campaign=PC-HC10-A-DG-Massachusetts-Broa…· 4d agoUNVERIFIED<coroutine object OpenAISpeechToText.transcribe at 0x7b18d434ba00>· 4d agoUNVERIFIED<coroutine object OpenAISpeechToText.transcribe at 0x7b18d434ba00>· 4d agoMIXEDtheir is a firmament above us with 7 layers right· 4d agoTRUEis the sky bllue· 4d ago
Developer docs

Real-Check API

A REST API for the same fact-check + scam-detection engine that powers real-check.org. Text, image, and voice — one endpoint each, one JSON contract.

1. Base URL & authentication

All requests go through https://real-check.org/api. Pass your key on every request as a bearer token:

Authorization: Bearer rc_live_YOUR_KEY_HERE
http

Keys look like rc_live_ followed by 32 hex characters. Anonymous requests (no key) still work but are rate-limited to 5/hour per IP.

2. Endpoints

MethodPathWhat it does
POST/api/factcheckFact-check a text claim or detect a scam.
POST/api/factcheck/imageAnalyze an image (screenshot, meme, headline).
POST/api/factcheck/voiceTranscribe & fact-check an audio recording.
GET/api/stats/truth-scoreLive counters + verdict distribution.
GET/api/trendingRecent public fact-check results.

3. Quickstart · cURL

curl -X POST https://real-check.org/api/factcheck \
  -H "Authorization: Bearer rc_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "claim": "Humans only use 10% of their brain.",
    "mode": "auto"
  }'
bash

mode accepts auto (default), factcheck, or scam.

4. Response shape

{
  "check_id": "fc_abc123",
  "claim": "Humans only use 10% of their brain.",
  "verdict": "false",
  "confidence": 96,
  "summary": "Neuroimaging studies show humans use virtually all brain regions...",
  "red_flags": ["myth", "commonly misattributed"],
  "sources": [],
  "created_at": "2026-07-22T09:14:43Z"
}
json
Fact-check verdicts
true · mostly_true · misleading · false · unverified
Scam verdicts
safe · likely_safe · suspicious · scam · unverified

5. JavaScript / fetch

// browser / Node.js
const res = await fetch("https://real-check.org/api/factcheck", {
  method: "POST",
  headers: {
    "Authorization": "Bearer " + REAL_CHECK_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    claim: "The Great Wall is visible from space.",
    mode: "auto",
  }),
});
const data = await res.json();
console.log(data.verdict, data.confidence, data.summary);
js

6. Embeddable verdict badge — one snippet, any site

Drop a live "Verified by Real-Check" badge on any article or blog post. No key required — the badge is cached per-claim for 24 hours and rate-limited to protect the pipeline.

<!-- Place anywhere in the article -->
<div class="real-check"
     data-claim="Humans only use 10% of their brain."></div>

<!-- Once per page, near </body> -->
<script async src="https://real-check.org/badge.js"></script>
html

Auto-detects new nodes via MutationObserver so it works on React / Vue / Next pages. Click the badge to open the full verdict on real-check.org.

7. Chrome extension — full working example

Right-click any highlighted text on any page → fact-check it in a single click. Two files. Copy, paste, load unpacked, done.

manifest.json

{
  "manifest_version": 3,
  "name": "Real-Check",
  "version": "1.0.0",
  "description": "Right-click any text to fact-check it with Real-Check.",
  "permissions": ["contextMenus", "storage", "activeTab", "scripting"],
  "host_permissions": ["https://real-check.org/*"],
  "background": { "service_worker": "background.js" },
  "action": { "default_title": "Real-Check" }
}
json

background.js

// background.js — Chrome extension service worker

const API = "https://real-check.org/api/factcheck";

// Hard-code your key or load it from chrome.storage
async function getKey() {
  const { rc_key } = await chrome.storage.local.get("rc_key");
  return rc_key;
}

chrome.runtime.onInstalled.addListener(() => {
  chrome.contextMenus.create({
    id: "rc-check",
    title: "Fact-check with Real-Check",
    contexts: ["selection"],
  });
});

chrome.contextMenus.onClicked.addListener(async (info, tab) => {
  if (info.menuItemId !== "rc-check" || !info.selectionText) return;
  const key = await getKey();
  if (!key) return alert("Add your Real-Check API key first (Options).");

  const res = await fetch(API, {
    method: "POST",
    headers: {
      "Authorization": "Bearer " + key,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ claim: info.selectionText, mode: "auto" }),
  });
  const data = await res.json();

  chrome.scripting.executeScript({
    target: { tabId: tab.id },
    func: (v) => alert("Real-Check verdict: " + v.verdict.toUpperCase()
      + " (" + v.confidence + "%)\n\n" + v.summary),
    args: [data],
  });
});
js

Store the key with chrome.storage.local.set({rc_key: "rc_live_..."}) from an options page. Never bundle it in source you publish publicly.

8. Rate limits & quotas

Anonymous (no key)

5 / hour

per IP address

Free plan key

1,000 / day

per key

Pro plan key

Unlimited*

100,000 / day soft cap

Exceeded quotas return HTTP 429 with a JSON body describing which limit was hit.

Ready to build?

Questions? Email hello@real-check.org

Welcome to Real-Check

Pick your vibe.

Three seconds. Pick the look that feels right for you. Change it anytime from the palette icon.