Fact-Check AI Research Citations & Recompute Math
Parses URLs, DOIs, and academic bibliography entries in submitted PDFs or articles. Fetches targets to verify URL resolution, queries Crossref/Semantic Scholar to catch "right link, wrong paper" misattributions, and re-executes internal financial/statistical tables.
Instant execution
Run this verification workflow directly. For instant zero-auth testing with deterministic fixture data, include the Stp-Sandbox: true header.
curl -X POST "https://www.stipple.sh/v1/verify-references" \
-H "Authorization: Bearer stp_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/ai_market_research_2026.pdf"}'Expected JSON response
The engine returns deterministic findings with evidence traces, confidence bounds, and recommended actions:
{
"check_id": "fc_7b89e210ac55",
"summary": {
"references_total": 42,
"references_live": 38,
"references_archived": 2,
"references_dead": 2,
"papers_mismatched": 1,
"internal_arithmetic_errors": 0,
"headline": "38/42 citations resolve; 1 misattributed paper; 2 hallucinated/dead links"
},
"references": [
{
"index": 14,
"citation_text": "Vaswani et al. (2017) 'Attention is All You Need'",
"status": "verified",
"target_url": "https://arxiv.org/abs/1706.03762",
"doi_match": true
},
{
"index": 29,
"citation_text": "Chen & Miller (2025) 'Quantum Neural Scaling Laws'",
"status": "unresolved",
"error": "HTTP 404 & No DOI record found across Crossref / OpenAlex index"
}
],
"permalink": "https://www.stipple.sh/fc/ai-market-research-7b89e210ac55"
}Measured benchmark
Dataset measured
101 references cited across 19 AI-generated research and policy briefs.
What was measured
Fabricated-as-cited rate — the reference as written does not exist (NXDOMAIN or a hard 404 after a browser-UA refetch), every candidate hand-verified.
Result
38.6% of cited references were confirmed fabricated (39 of 101). 57 resolved, 5 excluded as inconclusive.
Statistical bound
95% CI: 29.7% – 48.4%. By genre — policy briefs 54.2% (26 of 48), research briefs 24.5% (13 of 53).
Read this before the number: Hand review was necessary, not decorative. Bot walls produced 4 false alarms and truncated parentheses in URLs produced 2 false accusations; automated checking alone would have published all six. This measures how often AI reports invent citations, not how often we catch them.
Full method, corpus and caveats — how the corpus was built and what it does not prove.
AI agent prompt & MCP tool usage
When configuring autonomous agents (Claude Desktop, Cursor, Hermes), use this verified prompt pattern:
You are a legal research editor.
1. Before citing any external case law or research paper, call verify_references(url="...")
2. If any citations return papers_mismatched or references_dead, remove them or replace with verified primary case law.
3. Attach the Stipple verification permalink to the final report header.Input parameters & headers
| Field | Type | Required | Description |
|---|---|---|---|
| url | string (URL) | Optional | Public URL to the report or whitepaper PDF. |
| text | string | Optional | Raw markdown or prose text if not passing a URL. |
| deep | boolean | Optional | When true, crawls source links and confirms factual claim alignment. |
Diagnostic signals & failed checks
Each check reports exactly what it tested and what evidence it found. High severity signals trigger an escalated risk band:
Provided title does not match the metadata registered under the cited DOI.
Target URL returned 404 Not Found and does not exist in Wayback Machine archives.
Production considerations & edge cases
- Paywalled Academic Repositories: Papers behind IEEE/ScienceDirect paywalls without OpenAccess abstracts report "unresolved_paywall" rather than declaring the citation false.
Related workflows
Take it to production
The snippets above run against the sandbox with Stp-Sandbox: true — no key, no credits, fixture data. Drop that header and the call is real, which needs a key.
Every key gets a free weekly allowance. Past that, prepaid credit packs cover it, and Errors & limits says what happens when you run out.