Verify that citations in a document actually resolve and support the claims they're attached to. Uses the Stipple API (free anonymous tier, no signup) for citation resolution, arithmetic recomputation, and unsupported-claim detection.
Get the document. Ask the user for a URL to the report, or a local file path (PDF, DOCX, Markdown). If the user pastes text directly, skip to step 3 with text input.
Run verification. POST the document to Stipple's citation verification endpoint:
curl -X POST https://www.stipple.sh/v1/verify-references \
-F "file=@report.pdf" \
-H "Authorization: Bearer $STIPPLE_API_KEY"
The anonymous free tier works without the Authorization header. Deep mode (?deep=true) costs more credits but cross-checks citations against live web sources.
Interpret the response. The result includes:
verification_coverage — percentage of claims verified (e.g. "78%")citations[] — per-citation status: resolved and matching, resolved but mismatched, or unresolvable, with the issue explainedarithmetic[] — recomputed figures vs stated figures (flags decimal shifts, wrong sums)unsupported_claims[] — claims with no citation at allReport honestly. Present results as verification coverage, not a truth verdict:
Offer remediation. For failed citations, suggest: fixing the decimal shift, finding the correct source, or removing the unsupported claim.
Verification coverage: 78%
Citations: 21/27 resolve and match
[+] "ABS unemployment 4.1% April 2026" — matches abs.gov.au
[-] "AI adoption grew 340% in 2025" — source states 34%, decimal shifted
Arithmetic: 12/13 recompute correctly
[x] FY24 + FY25 revenue — stated $4.2m, actual $3.7m
Unsupported claims: 2
[!] "industry-leading accuracy" — no source in document
{"text": "..."}
deep=true) is slower and costs more credits but resolves citations against live sourcesverify-document (is the source doc itself authentic?) run first