Citation Verification
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.
When to use
- Before submitting or publishing a research report, tender response, or whitepaper
- Reviewing an LLM-generated document (LLM citations are plausibly-formatted and frequently wrong)
- Due diligence on third-party reports
- Academic reference checking
Instructions
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 explained
arithmetic[] — recomputed figures vs stated figures (flags decimal shifts, wrong sums)
unsupported_claims[] — claims with no citation at all
Report honestly. Present results as verification coverage, not a truth verdict:
- "21/27 citations resolve and match"
- "[x] FY24+FY25 revenue stated $4.2m, actual $3.7m"
- "[!] 'industry-leading accuracy' — no source in document"
- Unverified ≠ false. The goal is telling the user which claims are backed and which aren't.
Offer remediation. For failed citations, suggest: fixing the decimal shift, finding the correct source, or removing the unsupported claim.
Output format
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
Limitations and Safety
- Uploading a report or manuscript sends its contents to a hosted third party; deep
mode also retrieves external sources. Obtain approval before transmission, remove
confidential or personal material, and verify current retention and deletion terms.
- Resolution and textual support do not establish that a source is authoritative or
that a claim is true. Inspect consequential citations in the primary source and
preserve page, edition, date, and access context.
- Treat unresolved or unsupported claims as review items, not proof of fabrication,
and keep a human reviewer responsible for publication or academic decisions.
Notes
- Works on PDF, DOCX, MD, TXT. For pasted text, POST JSON:
{"text": "..."}
- Deep verification (
deep=true) is slower and costs more credits but resolves citations against live sources
- Pairs well with
verify-document (is the source doc itself authentic?) run first
- Anonymous free tier: shared weekly allowance. Get a free key at https://www.stipple.sh for your own metering
1---2name: verify-citations3description: Verify citations and references in a document, report, or article against real sources. Use when the user asks to fact-check, verify references, check citations, or validate evidence in research reports, tender responses, whitepapers, or academic writing.4license: Apache-2.05---67# Citation Verification89Verify 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.1011## When to use1213- Before submitting or publishing a research report, tender response, or whitepaper14- Reviewing an LLM-generated document (LLM citations are plausibly-formatted and frequently wrong)15- Due diligence on third-party reports16- Academic reference checking1718## Instructions19201. **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.21222. **Run verification.** POST the document to Stipple's citation verification endpoint:2324 ```bash25 curl -X POST https://www.stipple.sh/v1/verify-references \26 -F "file=@report.pdf" \27 -H "Authorization: Bearer $STIPPLE_API_KEY"28 ```2930 The anonymous free tier works without the Authorization header. Deep mode (`?deep=true`) costs more credits but cross-checks citations against live web sources.31323. **Interpret the response.** The result includes:33 - `verification_coverage` — percentage of claims verified (e.g. "78%")34 - `citations[]` — per-citation status: resolved and matching, resolved but mismatched, or unresolvable, with the issue explained35 - `arithmetic[]` — recomputed figures vs stated figures (flags decimal shifts, wrong sums)36 - `unsupported_claims[]` — claims with no citation at all37384. **Report honestly.** Present results as *verification coverage*, not a truth verdict:39 - "21/27 citations resolve and match"40 - "[x] FY24+FY25 revenue stated $4.2m, actual $3.7m"41 - "[!] 'industry-leading accuracy' — no source in document"42 - Unverified ≠ false. The goal is telling the user *which* claims are backed and which aren't.43445. **Offer remediation.** For failed citations, suggest: fixing the decimal shift, finding the correct source, or removing the unsupported claim.4546## Output format4748```49Verification coverage: 78%5051Citations: 21/27 resolve and match52 [+] "ABS unemployment 4.1% April 2026" — matches abs.gov.au53 [-] "AI adoption grew 340% in 2025" — source states 34%, decimal shifted5455Arithmetic: 12/13 recompute correctly56 [x] FY24 + FY25 revenue — stated $4.2m, actual $3.7m5758Unsupported claims: 259 [!] "industry-leading accuracy" — no source in document60```6162## Limitations and Safety6364- Uploading a report or manuscript sends its contents to a hosted third party; deep65 mode also retrieves external sources. Obtain approval before transmission, remove66 confidential or personal material, and verify current retention and deletion terms.67- Resolution and textual support do not establish that a source is authoritative or68 that a claim is true. Inspect consequential citations in the primary source and69 preserve page, edition, date, and access context.70- Treat unresolved or unsupported claims as review items, not proof of fabrication,71 and keep a human reviewer responsible for publication or academic decisions.7273## Notes7475- Works on PDF, DOCX, MD, TXT. For pasted text, POST JSON: `{"text": "..."}`76- Deep verification (`deep=true`) is slower and costs more credits but resolves citations against live sources77- Pairs well with `verify-document` (is the source doc itself authentic?) run first78- Anonymous free tier: shared weekly allowance. Get a free key at https://www.stipple.sh for your own metering