# ottobib > Give it an ISBN, get a formatted citation. Six styles: MLA, APA, Chicago, Wikipedia, > BibTeX, and all of them at once. No account, no key, no rate limit beyond courtesy. ## Use JSON, not the HTML One request, one answer, a stable documented shape. Parsing the HTML works and is strictly more expensive for both of us. - [Machine-readable spec](https://www.ottobib.com/.well-known/openapi.json) - Any citation: `https://www.ottobib.com/isbn/{isbn}` with `Accept: application/json` - One style: `https://www.ottobib.com/isbn/{isbn}/{mla|apa|chicago|wp|bibtex}.json` - ISBN-10, ISBN-13 and hyphenated forms all resolve; a bad check digit returns 400 with a reason, and an unknown book returns 200 with `found: false`. ## Where the data comes from A local corpus built from Open Library dumps answers most lookups. Misses are asked of national libraries — the Deutsche Nationalbibliothek for 978-3, the Bibliothèque nationale de France for 978-2 — and every answer is archived permanently, so no vendor is asked the same question twice. - [Crawler policy](https://www.ottobib.com/robots.txt) ## MCP There is a Model Context Protocol server, for clients that speak MCP natively. It is a stdio shim over the JSON API above and needs no key. If you are already able to make an HTTP request, the API is simpler and you do not need this. - Source, standard library only, nothing to trust but what you read: `curl -O https://www.ottobib.com/ottobib-mcp.go && go build ottobib-mcp.go` - One tool, `cite_isbn`: takes an `isbn` and an optional `style`.