# BOZOS Citation Checker: headless instructions

Page: https://bozos.si/tools/citation-checker
API: https://bozos.si/api/v1/citation-check (GET / POST)
MCP: https://bozos.si/api/mcp (checkCitations)
Updated: 2026-10-24. No authentication, API key, installation, or AI model.

## Check links

```sh
curl -sS 'https://bozos.si/api/v1/citation-check' -H 'Content-Type: application/json' --data '{"urls":["https://bozos.si/tools/quote-checker.md","https://bozos.si/tools/no-such-page"]}'
```

Send 1-10 public HTTPS URLs. Results come back in request order. One failed link never stops the batch.

Plain URL example (no POST or JavaScript):

https://bozos.si/api/v1/citation-check?url=https%3A%2F%2Fbozos.si%2Ftools%2Fquote-checker.md&url=https%3A%2F%2Fbozos.si%2Ftools%2Fsource-reader.md

GET repeats the url parameter, or accepts the full JSON body as ?json= / ?b64=. MCP tools/call parameters:

```json
{"name":"checkCitations","arguments":{"urls":["https://bozos.si/tools/quote-checker.md"]}}
```

## Result fields

Each result has url (as supplied), status (readable or failed), error and message (null when readable), http_status, requested_url, final_url, redirected, redirects (from, to, status), content_type, title, source_sha256, source_bytes, and retrieved_at. summary counts total, readable, and failed.

- readable: the reader received HTTP 200 and extracted text. The title is publisher-supplied and unverified. source_sha256 identifies the response body after HTTP decompression.
- failed: error says why. upstream_error carries the server's http_status (404 and 410 usually mean the link is gone). robots_disallowed, no_readable_content (often JavaScript or a login), unsupported_content_type (PDFs and files are outside this release), dns_failed, timeout, invalid_url, and private_destination mean this reader could not read it; the page may still work in a browser.
- Each link uses the same guarded reader as Source Reader: DNS/address restrictions, robots.txt for BOZOSReader, at most 3 redirects, a 2 MiB limit, and a 15-second timeout. No cookies, credentials, or page scripts.

## What this does not tell you

A readable link does not mean the page is accurate, supports the claim, or is the page originally cited; content can change after a hash is taken. Use [Quote Checker](https://bozos.si/tools/quote-checker.md) to test a specific passage. Full schema: https://bozos.si/openapi.json.
