v0.1 · shippingrouting F1 0.88p95 ~1.4sapi live
For developers shipping AI features · $1.50 free credit

Detect AI slop before it ships.

A drop-in linter for AI outputs. One API call returns the action your code routes on — allow, revise, human_review, reject — plus the evidence.

allowrevisehuman_reviewreject
VERACITYAPI.EXE / AI OUTPUT LINTER
Developer aha

Think CI/CD checks, but for generated content.

Don’t build fragile probability thresholds. Just write your switch statement.

switch (result.recommended_action) {
  case "allow": publish(); break;
  case "revise": requestRevision(result.recommended_fixes); break;
  case "human_review": queueForReview(result.evidence); break;
  case "reject": block(); break;
}
Action-first response
{
  "recommended_action": "human_review",
  "risk_level": "high",
  "primary_reason": "unsupported_generic_claims",
  "evidence_count": 3,
  "confidence": "high"
}
88%routing F1 · seed-500
$0.005per 1k chars · text
MCP-readyOpenAPI · llms.txt
store=falseprivate by default
01

One API call. Four routing actions.

VeracityAPI returns a single field your code routes on. No probability threshold to tune. No "human or AI" coin flip. Four actions, evidence attached.

allow

Low risk. Publish, cite, index, accept, or train. The default-permissive route.

revise

Send back to your agent or editor with evidence and recommended fixes. auto_revise:true does this in-line.

human_review

Queue for moderation, source verification, or policy review. Uncertainty escalates.

reject

Block, quarantine, discard. High-risk content does not reach users.

02

28 trust tools. 21 free.

The free ones run in your browser, as no-key demos, or as API-key-gated sample audits. The paid ones are one API call. Same pipeline.

Free · Tools

21 tools. No signup to browse.

Browser-local checks, no-key demos, generators, and backend audit samples from the same canonical free-tool registry as /tools.

FreeBrowser

Veracity Text Linter

Paste a draft, get specificity, slop, and provenance feedback inline. Browser-only fast scan is free; deep semantic scan uses your API key.

Run check →
FreeBrowser

Specificity Score Checker

Browser-local score for named specifics, numbers, source cues, concrete examples, and generic-pressure gaps.

Run check →
FreeBrowser

Unicode Evasion Scanner

Find invisible characters, bidi controls, compatibility glyphs, and mixed-script lookalikes before text hits filters or agents.

Run check →
FreeBrowser

Provenance Weakness Checker

Flag unsupported statistics, anonymous authority, overbroad claims, and text that needs better source cues.

Run check →
FreeBrowser

Stylometric Fingerprint

Describe rhythm, lexical diversity, function-word density, punctuation profile, repetition, and readability complexity.

Run check →
FreeBrowser

Pattern Pressure Checker

Replace naive burstiness with visible cliché, booster, em-dash, and formulaic-language pressure markers.

Run check →
FreeBrowser

Rewrite Safety Checker

Compare original vs rewrite and catch changed numbers, URLs, quotes, entities, added claims, and removed caveats before publish.

Run check →
FreeBrowser

Unsupported Claim Finder

Extract claims that need a source, screenshot, benchmark, citation, or human review — not a fake fact-checker.

Run check →
FreeBrowser

RAG Source Grounding Checker

Check whether an AI/RAG answer stays grounded in supplied source text before agents cite or publish it.

Run check →
FreeBrowser

Prompt Injection Pattern Detector

Scan user input, RAG chunks, scraped pages, and tool output for override, secret-extraction, jailbreak, and payload-smuggling patterns.

Run check →
FreeBrowser

llms.txt Generator

Generate a clean llms.txt and llms-full.txt skeleton so answer engines and agents can find your docs.

Generate →
FreeBrowser

AI Citability Checker

Score answer-engine readiness from specificity, visible sources, Q&A structure, freshness cues, and extractable sections.

Run check →
FreeBrowser

PII + Invisible Character Cleaner

Find and redact emails, phones, Luhn-valid cards, API-key-shaped strings, JWTs, IPs, and hidden Unicode before LLM input.

Run check →
FreeBrowser

Agent Publish Gate

Pre-publish gate for agent-written drafts: injection, PII, claims, grounding, disclosure, and citability checks.

Run check →
FreeBrowser

CMS Publish Simulator

Preview CMS readiness for generated pages before they hit WordPress, Webflow, Shopify, or custom queues.

Run check →
FreeBrowser

AI Disclosure Generator

Generate AI-assisted disclosure copy with human-review status, placement guidance, and schema notes.

Generate →
FreeBrowser

Review Authenticity Checker

Triage review text for duplicate copy, incentives, hype pressure, no specifics, and absolutes without claiming fraud proof.

Run check →
FreeBrowser

Testimonial Credibility Checker

Check testimonial attribution, consent, outcome claims, and concrete detail before publishing social proof.

Run check →
FreeAPI

AI Bot Policy Auditor

Authenticated backend audit for robots.txt, llms.txt, agents.json, and explicit AI crawler policy coverage.

Open audit →
FreeAPI

Sitemap Audit

Authenticated sitemap audit for HTTPS, host consistency, lastmod coverage, duplicates, and agent discovery readiness.

Open audit →
FreeNo key

Playground

Paste any text, see the live recommended_action JSON. No signup, no key, store_content=false forced server-side.

Open demo →
Paid · MCP

Local or hosted. Claude, Cursor, anything MCP.

Local NPM wrapper or hosted Streamable-HTTP endpoint. Both expose the deterministic text tools plus analyze_text, analyze_batch, and balance checks; the local wrapper also includes broader verify/media helpers.

Machine-discoverable: OpenAPI · llms.txt · agents.json · Docs

03

Try it.

No signup. Browser.
Live demo
Paste your own draft.

Custom paste is primary: paste your own draft, review, caption, or source snippet. Demo calls force store_content=false, cap input at 4,000 characters, and are rate limited.

Get API keyPublic demo: no signup required, no key, store_content=false.
actionhuman_review
risk levelhigh
evidence3 signals
Why this action?
Billing estimate

estimatedCostCents: 0.5 · $0.005 / 1k text chars

high risk · medium confidence

Recommended action: human_review. Replace generic warnings with named examples, sourceable details, and concrete workflow guidance.

Sign up free Want the full API output, SDKs, image analysis, and higher limits? Sign up free.

high · generic_phrasing

"should always stay alert"

Vague, universally applicable advice lacking specificity or actionable detail.

high · hedging_and_absolutes

"Pickpockets are everywhere"

Sweeping generalization without supporting evidence or useful context.

medium · absence_of_specificity

"major European cities"

No named cities, neighborhoods, timeframes, or source details.

Expanded JSON details
{
  "analysis_id": "demo_01KRA1EQPDJ7N2KHBXCQMGZYFJ",
  "modality": "text",
  "content_trust_score": 0.22,
  "specificity_risk": 0.78,
  "provenance_weakness": 0.78,
  "synthetic_risk": 0.72,
  "slop_risk": 0.78,
  "confidence": "medium",
  "primary_reason": "unsupported_generic_claims",
  "evidence": [
    {
      "type": "generic_phrasing",
      "severity": "high",
      "span": "should always stay alert",
      "explanation": "Vague, universally applicable advice lacking specificity or actionable detail."
    },
    {
      "type": "hedging_and_absolutes",
      "severity": "high",
      "span": "Pickpockets are everywhere",
      "explanation": "Sweeping generalization without supporting evidence or useful context."
    },
    {
      "type": "absence_of_specificity",
      "severity": "medium",
      "span": "major European cities",
      "explanation": "No named cities, neighborhoods, timeframes, or source details."
    }
  ],
  "recommended_fixes": [
    "Replace generic warnings with named examples, locations, and sourceable details.",
    "Remove absolute claims unless they are supported by evidence.",
    "Add concrete decision guidance for the intended workflow."
  ],
  "risk_level": "high",
  "recommended_action": "human_review",
  "model_version": "v0.1",
  "limitations": [
    "Scores are probabilistic workflow risk signals, not proof of AI authorship or truth.",
    "v0.1 uses an LLM-backed structured scoring pass; treat synthetic_risk as texture risk, not ground-truth authorship detection.",
    "English-calibrated at MVP; non-English content should be treated as experimental."
  ]
}
04

Does it actually work?

Dogfooded on production publishing workflows for allow / revise / human_review decisions before publication. Honest internal dogfood, not a fake customer-logo strip.

05

Where it routes today.

06

Simple pricing.

$1.50 free credit · no card
Text

$0.005 / 1k chars

POST /v1/analyze — routing + evidence. The default surface.

Auto-revise

$0.010 / 1k chars

auto_revise:true — adds a fact-safe rewrite when routing to revise.

Image

$0.02 / image

POST /v1/analyze-image — synthetic-image workflow-risk triage.

Get an API key →   Read docs

Public demo remains free, no-key, capped, and rate limited. Authenticated agent preflight: GET /v1/balance.