LIVE
FALSE“OpenAI released GPT-5 this week.”· 16d ago•FALSE“OpenAI released GPT-5 this week.”· 17d ago•FALSEis it true that kfc invented the spork?· 18d ago•UNVERIFIED“A newly discovered ‘lost’ Shakespeare play has been found and confirmed as authentic.”· 18d ago•UNVERIFIED“A ‘solar storm’ is going to cause a global internet blackout / ‘internet apocalypse’ th…· 18d ago•FALSE“Apple announced it’s buying OpenAI.”· 19d ago•MOSTLY TRUE“Apple just announced it’s integrating ChatGPT directly into iOS 18 and Siri.”· 20d ago•FALSEare their really 7 aces in a deck of 52 cards?· 22d ago•FALSE“Apple is removing end-to-end encryption from iCloud globally because of government pres…· 22d ago•MISLEADING“The U.S. Supreme Court has ruled that presidents have ‘absolute immunity’ for crimes co…· 31d ago•MOSTLY TRUE“Meta is ending fact-checking on Facebook and Instagram in the U.S.”· 32d ago•UNVERIFIEDDRIVE ME (Other visible markings appear to be tattoos/graphics; no message, link, phone …· 33d ago•FALSE“OpenAI released GPT-5 this week.”· 16d ago•FALSE“OpenAI released GPT-5 this week.”· 17d ago•FALSEis it true that kfc invented the spork?· 18d ago•UNVERIFIED“A newly discovered ‘lost’ Shakespeare play has been found and confirmed as authentic.”· 18d ago•UNVERIFIED“A ‘solar storm’ is going to cause a global internet blackout / ‘internet apocalypse’ th…· 18d ago•FALSE“Apple announced it’s buying OpenAI.”· 19d ago•MOSTLY TRUE“Apple just announced it’s integrating ChatGPT directly into iOS 18 and Siri.”· 20d ago•FALSEare their really 7 aces in a deck of 52 cards?· 22d ago•FALSE“Apple is removing end-to-end encryption from iCloud globally because of government pres…· 22d ago•MISLEADING“The U.S. Supreme Court has ruled that presidents have ‘absolute immunity’ for crimes co…· 31d ago•MOSTLY TRUE“Meta is ending fact-checking on Facebook and Instagram in the U.S.”· 32d ago•UNVERIFIEDDRIVE ME (Other visible markings appear to be tattoos/graphics; no message, link, phone …· 33d 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.