API Live Now

Developer Documentation

The Omniscient API lets any application add triple-AI fact-checking with a single HTTP call. GPT-4o Mini, Perplexity Sonar Pro, and Gemini 2.5 Flash run simultaneously and return a consensus Trust Score with live citations.

GPT-4o Mini
Perplexity Sonar Pro
Gemini 2.5 Flash
🟢

The API is live and available today. Generate your API key instantly — sign up, open your dashboard, and you're making calls in under 60 seconds. No email required.

1

Create a free account

Sign up at omniscient.news — takes 10 seconds via Google, MetaMask, or LinkedIn.

2

Generate your API key instantly

Go to dashboard.omniscient.newsNewsroom API in the sidebar → click Generate New Key. Your key appears immediately.

3

Make your first call

POST a claim or URL to /api/fact-check with your Bearer token. You'll get a Trust Score back in under 3 seconds.

One endpoint. Three AI verdicts.

A single POST returns a consensus fact-check in under 3 seconds. Choose your language below.

curl
Node.js
Python
SDK
curl -X POST https://omniscient.news/api/fact-check \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "claim_input": {
      "highlighted_span": "The Great Wall of China is visible from space.",
      "page_url": "https://example.com/article",
      "page_title": "Space myths debunked"
    }
  }'

API Keys

All API requests must include a Bearer token in the Authorization header. There are no API keys in query strings or cookies.

HTTP Header
Authorization: Bearer omni_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
⚠️

Keep your API key secret. Never expose it in client-side code, public repositories, or logs. Rotate it immediately if compromised — revoke it in your dashboard and generate a new one instantly.

Getting a key

API keys are self-serve — generate one in seconds:

  1. Create a free account at omniscient.news
  2. Open dashboard.omniscient.news
  3. Click Newsroom API in the left sidebar
  4. Click Generate New Key — your key appears immediately
  5. Copy it now — it is shown only once

You can hold up to 5 active keys. Revoke any key from the same page at any time.

Endpoints

All endpoints are under the base URL https://omniscient.news

MethodPathDescription
POST/api/fact-checkSubmit a claim or URL for triple-AI fact-checking
GET/api/fact-check/:idRetrieve a cached result by reference ID
GET/api/usageCheck monthly request count and quota

POST  /api/fact-check

Submits a claim for triple-AI verification. All three models run in parallel and return a consensus score.

Request Body

FieldTypeRequiredDescription
claim_inputobjectYesContainer for the claim being checked
claim_input.highlighted_spanstringYes*The specific text claim to fact-check
claim_input.page_urlstringNoSource URL for context
claim_input.page_titlestringNoArticle/page title for context
claim_input.full_textstringNoSurrounding paragraph for additional context

* Either highlighted_span or page_url must be provided.

GET  /api/fact-check/:id

Retrieves a previously computed result by its referenceId. Results are cached for 30 days.

curl
curl https://omniscient.news/api/fact-check/omni-a1b2c3-d4e5f6 \
  -H "Authorization: Bearer YOUR_API_KEY"

GET  /api/usage

Returns your current billing period usage and quota.

Response
{
  "period": "2026-03",
  "requestsUsed": 1284,
  "requestsLimit": null,    // null = unlimited (Always-On plan)
  "plan": "always_on_pro",
  "resetDate": "2026-04-01T00:00:00Z"
}

Enterprise REST API — v1

The Enterprise API is a clean, credit-based REST interface designed for programmatic integrations: pipelines, WordPress plugins, OBS overlays, Slack bots, CMS workflows, and more. Authenticate with your API key in the X-Omniscient-Key header. Each call costs 1 credit.

New in v1: Webhook delivery, triple-AI consensus, live citations from all three models, and OBS browser source integration.
MethodPathDescription
POST/api/v1/factcheckFact-check any text claim — 1 credit
GET/api/v1/meCheck API key status & credit balance

POST  /api/v1/factcheck

Submits text for triple-AI fact-checking. All three models (ChatGPT, Perplexity, Gemini) run in parallel and return a consensus verdict within seconds.

curl
curl -X POST https://omniscient.news/api/v1/factcheck \
  -H "X-Omniscient-Key: omni_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "The Earth is approximately 4.54 billion years old.",
    "lang": "en",
    "webhook_url": "https://yoursite.com/hooks/omniscient"
  }'

Request Body

FieldTypeRequiredDescription
textstringYesThe claim or text to fact-check. Max 8,000 characters.
langstringNoBCP-47 language code (default: "en"). Supported: en, hi, es, fr, de, pt, ar, zh, ja, ko.
webhook_urlstringNoHTTPS URL to receive the result via POST after completion.

Response

200 OK — application/json
{
  "object": "fact_check",
  "api_version": "v1",
  "text": "The Earth is approximately 4.54 billion years old.",
  "lang": "en",
  "verdict": "SUPPORTED",         // SUPPORTED | DISPUTED | MIXED | INSUFFICIENT_EVIDENCE | NOT_APPLICABLE
  "fact_score": 96,              // 0–100 consensus confidence score
  "span_type": "FACT",            // FACT | OPINION | MIXED | TRIVIAL_COMMON_KNOWLEDGE
  "consensus_level": "full",     // full | partial | split
  "reasoning": "All three models confirmed...",
  "evidence_summary": "Retrieved evidence from NASA, USGS, and Nature...",
  "claims": [ /* per-claim breakdown */ ],
  "citations": [
    "https://solarsystem.nasa.gov/solar-system/our-solar-system/in-depth/",
    "https://www.usgs.gov/faqs/how-old-earth"
  ],
  "model_results": [
    { "model": "ChatGPT (GPT-4o Mini)", "verdict": "SUPPORTED", "fact_score": 97, "success": true },
    { "model": "Perplexity AI",        "verdict": "SUPPORTED", "fact_score": 95, "success": true },
    { "model": "Google Gemini 2.5 Flash", "verdict": "SUPPORTED", "fact_score": 96, "success": true }
  ],
  "credits_remaining": 149,
  "latency_ms": 2340
}

GET  /api/v1/me

Returns the authenticated user's credit balance and account info. Useful for health checks and monitoring.

curl
curl https://omniscient.news/api/v1/me \
  -H "X-Omniscient-Key: omni_YOUR_API_KEY"
200 OK
{
  "object": "api_key_info",
  "api_version": "v1",
  "credits_remaining": 149,
  "email": "you@yourcompany.com",
  "docs": "https://omniscient.news/developer"
}

Webhooks

When webhook_url is provided in your request body, Omniscient AI sends a POST to that URL after the fact-check completes. The response is already delivered to your API call — the webhook is an additional async copy.

Webhook POST body
{
  "event": "fact_check.complete",
  "data": { /* same payload as the API response */ }
}
💡
Webhook deliveries include an X-Omniscient-Event: fact_check.complete header for easy identification. Your endpoint must respond with HTTP 200–299 within 10 seconds.

OBS & WordPress Integrations

OBS Browser Source — Add /obs-overlay?key=YOUR_KEY as a Browser Source in OBS (1920×1080). Your microphone is transcribed in real time via the Web Speech API, and claims are fact-checked on-screen within seconds. Configure your OBS overlay →

OBS Browser Source URL
https://omniscient.news/obs-overlay?key=omni_YOUR_KEY&lang=en&dur=10

WordPress Plugin — Download and install the plugin, enter your API key in Settings → Omniscient AI, then use the shortcode [omniscient_factcheck] anywhere in a post or page. Readers can highlight text or speak a claim and get a triple-AI verdict without leaving the page.

⬇ Download WordPress Plugin v2.3 🎙️ Configure OBS Overlay

Request Format

All requests use JSON bodies with Content-Type: application/json.

Full request example
{
  "claim_input": {
    "highlighted_span": "Bitcoin uses more energy than Argentina.",
    "page_url": "https://bbc.com/news/technology-56012952",
    "page_title": "Bitcoin's energy use in numbers",
    "full_text": "Critics argue that Bitcoin uses more energy than Argentina, raising environmental concerns..."
  }
}

Response Format

Every successful response returns a JSON object with a consensus Trust Score, per-model verdicts, and live citations.

200 OK — Success response
{
  "referenceId": "omni-a1b2c3-d4e5f6",
  "trustScore":  68,
  "verdict":     "PARTIALLY SUPPORTED",
  "consensus":   "Two of three models support this claim with caveats.",
  "claimType":   "STATISTICAL CLAIM",
  "models": {
    "gpt4o_mini": {
      "verdict": "SUPPORTED",
      "score":   72,
      "summary": "Cambridge Centre data confirms this figure as of 2021..."
    },
    "perplexity": {
      "verdict": "SUPPORTED",
      "score":   70,
      "summary": "Estimates vary by year; broadly accurate as a comparison..."
    },
    "gemini": {
      "verdict": "DISPUTED",
      "score":   61,
      "summary": "More recent data shows efficiency improvements..."
    }
  },
  "citations": [
    { "url": "https://ccaf.io/cbnsi/cbeci",          "title": "Cambridge Bitcoin Electricity Consumption Index" },
    { "url": "https://iea.org/reports/bitcoin-energy", "title": "IEA: Bitcoin energy report" }
  ],
  "processingMs": 2140
}
FieldTypeDescription
referenceIdstringUnique result ID, usable with GET /fact-check/:id
trustScorenumber (0–100)Consensus accuracy score across all three models
verdictstringHuman-readable consensus verdict
consensusstringOne-line explanation of the combined result
claimTypestringClassification of claim (FACT, OPINION, STATISTICAL, etc.)
modelsobjectPer-model breakdown with score, verdict, and summary
citationsarraySource URLs and titles used as evidence
processingMsnumberTotal wall-clock time in milliseconds

Verdicts & Trust Scores

Each model returns one of four verdicts. The consensus verdict is derived from the combination.

VerdictScore RangeMeaning
SUPPORTED70 – 100Evidence clearly supports the claim
PARTIALLY SUPPORTED40 – 69Mixed evidence; claim is directionally correct but imprecise
DISPUTED20 – 39Evidence contradicts or significantly challenges the claim
UNSUPPORTED0 – 19No credible evidence found, or claim is demonstrably false
ℹ️

The consensus trustScore is a weighted average across all three models. Per-model scores may differ. claimType: "OPINION" items receive a modified scoring rubric.

JavaScript / TypeScript SDK

The official SDK wraps the REST API with full TypeScript types, automatic retries, and streaming support.

🚧

The SDK is in private beta. It is issued alongside API keys. Reach out to get access.

Installation
npm install @omniscient/sdk
# or
pnpm add @omniscient/sdk
TypeScript — Full usage
import { OmniscientClient, FactCheckResult } from "@omniscient/sdk";

const client = new OmniscientClient({
  apiKey: process.env.OMNISCIENT_API_KEY!,
  timeout: 10_000,   // ms, default 8000
  retries: 2,          // auto-retry on 5xx
});

// Fact-check a claim
const result: FactCheckResult = await client.factCheck({
  claim: "The Eiffel Tower is 330 metres tall.",
  pageUrl: "https://example.com/article",
});

// Access per-model data
for (const [model, data] of Object.entries(result.models)) {
  console.log(`${model}: ${data.verdict} (${data.score})`);
}

// Retrieve a cached result
const cached = await client.getResult(result.referenceId);

// Check quota
const usage = await client.getUsage();
console.log(`Used: ${usage.requestsUsed} this period`);

Rate Limits

Rate limits are enforced per API key. On Metered plan they also apply per billing month.

Metered60 req/min · pay-per-use
Always-On Pro ($399/mo)300 req/min · unlimited monthly
Agency ($1,000/mo)1,000 req/min · unlimited monthly
EnterpriseCustom — dedicated infrastructure
ℹ️

Rate limit headers are returned on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Error Codes

All errors return a JSON body with error (machine-readable) and message (human-readable) fields.

Error response shape
{
  "error":   "RATE_LIMIT_EXCEEDED",
  "message": "You have exceeded 60 requests per minute. Retry after 38 seconds.",
  "retryAfter": 38
}
HTTPError CodeDescription
400INVALID_REQUESTMissing or malformed request body
400CLAIM_TOO_SHORThighlighted_span must be at least 10 characters
401UNAUTHORIZEDMissing or invalid Bearer token
402QUOTA_EXCEEDEDMonthly request limit reached (Metered plan)
429RATE_LIMIT_EXCEEDEDToo many requests per minute
500MODEL_ERROROne or more AI models failed — partial result may be returned
503SERVICE_UNAVAILABLEAPI temporarily unavailable — retry with exponential backoff

Ready to start building?

Get your API key today. Metered, Always-On, and Enterprise plans available.

See API Plans & Pricing Request API Key