# ToolMint Citation Verify

> Is this reference real? DOI / arXiv / title / free-text citation → found, canonical metadata (Crossref, arXiv), field-by-field mismatches and retraction flags. Metadata only, never abstracts.

- Status: Coming soon
- Price: $0.005–$0.03 / call (x402 exact, USDC on Base eip155:8453, payTo 0xfbF7413bcB3a604936775C96FDbe0b0C9c9E37F5)
- Planned URL: https://toolmint-citation-verify.toolmint.workers.dev
- OpenAPI: https://toolmint.toolmint.workers.dev/tools/citation-verify-json/openapi.json

## Routes

- `GET /verify` $0.005: Verify one citation
- `POST /verify/batch` $0.03: Verify up to 10 citations

## What you get

- verdict: verified | mismatch | not_found | unverifiable, plus found, matchedBy, confidence
- canonical record: source, doi, arxivId, title, authors, venue, year, type, publisher, url, citedByCount
- mismatches[]: field, what you gave, the canonical value, severity (major/minor), note
- retracted + updates[]: retractions, corrections, expressions of concern (Crossref, incl. Retraction Watch)
- candidates[] (up to 3 when not found), notes[], sources[] with fetchedAt and sha256 hash, terms, cacheHit (6 h)
- Abstracts are never returned.

## Sources and terms

- Crossref REST API (no key; metadata free to use for any purpose; some abstracts may be copyrighted, so none are returned). Polite pool via mailto; Worker paces itself at 2 requests/s per isolate.
- arXiv API (metadata CC0 1.0; must not imply arXiv endorsement; one request every 3 s). Worker paces at 1 per 3 s per isolate and caps arXiv items per batch at 3.

## Limits (read before relying on it)

- not_found does not mean the work doesn't exist: books without DOIs, theses, case law and non-arXiv DataCite DOIs are not covered in v1.
- Per-isolate pacing can't guarantee the arXiv/Crossref limits across many isolates: add a Cloudflare rate-limit rule on /verify* before volume.
- Neither Crossref nor arXiv endorses this tool.

## Example

```
GET /verify?doi=10.1016/S0140-6736(97)11096-0
```
