aid: gutendex name: Gutendex description: >- Gutendex is a simple, self-hosted JSON-based web API for serving book catalog information from Project Gutenberg, providing structured metadata for over 70,000 free ebooks including titles, authors, subjects, bookshelves, languages, copyright status, media types, downloadable formats, and download counts. The hosted instance at gutendex.com runs the open-source Django project by Gareth B. Johnson under the MIT license. deliveryModel: model: open-core license: MIT open_source: true commercial: true callable_host: true label: Open core ยท an OSS project plus a commercial hosted product confidence: high source: - license - openapi - pricing generated: '2026-08-28' method: derived accessModel: pricing: free onboarding: open trial: false try_now: false public: false label: 'No key required by the API, but the host serves no anonymous programmatic request: every path answers 403 behind a Cloudflare managed challenge, and robots.txt disallows /books/ -- the only API endpoint -- to every user-agent.' confidence: probed source: - probe generated: '2026-07-22' method: derived corrected: '2026-09-03' corrected_note: 'Was try_now: true, public: true, "Free -- Open access" at confidence medium, derived from the public-apis bulk registration with no probe ever run against the host (the record carried no x-coverage evidence). Reported through report_correction by an anonymous observer on 2026-09-01 and reproduced 2026-09-03: /, /books/ and /books/1 all return 403 with cf-mitigated: challenge, and so does an invented control path, so nothing is served to any programmatic client. robots.txt (200) carries a wildcard Disallow: /books/ plus named bans on ClaudeBot, GPTBot, CCBot, Bytespider and others, and a Content-Signal of ai-train=no -- a deliberate no-automated-access posture, not an outage. The free/open claim describes the API design; the served reality is that no agent and no anonymous client can use it, so try_now and public are false until a probe says otherwise.' image: https://gutendex.com/static/images/gutendex.png url: https://raw.githubusercontent.com/api-evangelist/gutendex/main/apis.yml created: '2026-05-28' modified: '2026-05-29' specificationVersion: '0.23' type: Index access: 3rd-Party x-type: opensource x-category: Books x-coverage: state: probed-unreachable probed: '2026-09-03' evidence: - url: https://gutendex.com/ status: 403 note: 'cf-mitigated: challenge' - url: https://gutendex.com/books/ status: 403 note: 'cf-mitigated: challenge' - url: https://gutendex.com/books/1 status: 403 note: 'cf-mitigated: challenge' - url: https://gutendex.com/zzz-control-26366 status: 403 note: 'invented control path, also challenged -- the wall is host-wide, not per-route' - url: https://gutendex.com/robots.txt status: 200 note: 'wildcard Disallow: /books/; named bans on ClaudeBot, GPTBot, CCBot, Bytespider, Amazonbot, Applebot-Extended, Google-Extended, meta-externalagent; Content-Signal ai-train=no' x-source: public-apis/public-apis x-tier: 3 x-tier-reason: bulk-registered-from-public-apis tags: - Books - Catalog - Ebooks - Library - Literature - Metadata - Open Source - Project Gutenberg - Public APIs - Public Domain tags_raw: - Books - Catalog - Ebooks - Library - Literature - Metadata - Open Source - Project Gutenberg - Public APIs - Public Domain - Open-Source apis: - aid: gutendex:gutendex-books-api name: Gutendex Books API description: Query and retrieve metadata for Project Gutenberg ebooks. humanURL: https://gutendex.com tags: - Books properties: - type: OpenAPI url: openapi/gutendex-books-api-openapi.yml - type: Documentation url: https://gutendex.com - type: JSONSchema url: json-schema/gutendex-book-schema.json - type: JSONSchema url: json-schema/gutendex-book-list-schema.json - type: JSONSchema url: json-schema/gutendex-person-schema.json - type: JSONSchema url: json-schema/gutendex-format-schema.json - type: JSONSchema url: json-schema/gutendex-error-schema.json - type: JSONLD url: json-ld/gutendex-context.jsonld common: - type: IssueTracker url: https://github.com/garethbjohnson/gutendex/issues - type: License name: MIT url: https://github.com/garethbjohnson/gutendex/blob/master/LICENSE - type: AgenticAccess url: agentic-access/gutendex-agentic-access.yml - type: DomainSecurity url: security/gutendex-domain-security.yml - type: Website url: https://gutendex.com - type: Documentation url: https://gutendex.com - type: OpenAPI url: openapi/_original/gutendex-api-openapi.yml - type: JSONSchema url: json-schema/gutendex-book-schema.json - type: JSONLD url: json-ld/gutendex-context.jsonld - type: GitHubRepository url: https://github.com/garethbjohnson/gutendex - type: PublicAPIsListing url: https://github.com/public-apis/public-apis - type: Plans url: plans/gutendex-plans-pricing.yml - type: Pricing url: plans/gutendex-plans-pricing.yml - type: RateLimits url: rate-limits/gutendex-rate-limits.yml - type: SpectralRules url: rules/gutendex-rules.yml - type: Vocabulary url: vocabulary/gutendex-vocabulary.yml - type: Authentication url: https://gutendex.com description: No authentication required; the hosted instance is publicly accessible. - type: GettingStarted url: https://github.com/garethbjohnson/gutendex/wiki/Installation-Guide - type: Tools title: Project Gutenberg MCP Server (bobbyhouse) url: https://github.com/bobbyhouse/project-gutenberg-mcp - type: Tools title: Project Gutenberg MCP Server (vellankis-space) url: https://github.com/vellankis-space/project-gutenberg-mcp-server - type: Tools title: Gutenberg MCP Server (nasimcoderex) url: https://github.com/nasimcoderex/gutenberg-mcp-server - type: Features data: - name: Free Public API description: No API key, no signup, no rate limit documented; gutendex.com is openly available. - name: 70,000+ Ebook Catalog description: Mirrors the full Project Gutenberg catalog of free public-domain ebooks. - name: Rich Filtering description: Filter by author birth/death year, copyright status, language, MIME type, IDs, search keywords, and topic. - name: Multiple Sort Orders description: Sort results by popularity (default), ascending ID, or descending ID. - name: Multi-format Downloads description: >- Each book exposes a Format object mapping MIME types (HTML, EPUB, MOBI, plain text, JPEG) to direct download URLs. - name: Bookshelves and Subjects description: Books are tagged with Library of Congress subject headings and curated Project Gutenberg bookshelves. - name: Multi-language Support description: Books are indexed by two-character ISO language codes; filter by multiple languages at once. - name: Self-Hostable description: >- MIT-licensed Django app that operators can run on their own infrastructure with nightly Project Gutenberg catalog sync. - type: UseCases data: - name: Literature Analytics description: Power large-scale analysis of public-domain literature by ingesting the structured Project Gutenberg catalog. - name: Educational Apps description: Build classroom or self-study apps that surface public-domain texts by subject, author, or reading level. - name: Reading Recommendation Engines description: Use the download_count and bookshelf data to recommend popular classics or themed reading lists. - name: Digital Library Backends description: >- Power library catalog interfaces and ebook reader apps with a clean JSON facade over Project Gutenberg's XML archives. - name: Natural Language Processing Datasets description: Use the catalog to discover bulk text downloads for training language models on public-domain corpora. - name: Citation and Reference Tools description: Power author/title lookup widgets in citation managers and academic writing tools. - type: Integrations data: - name: Project Gutenberg description: >- Upstream source. Gutendex nightly-ingests the official Project Gutenberg XML catalog and republishes it as JSON. - name: Django REST Framework description: Built on Django + Django REST Framework. Operators can extend the API with additional viewsets. - name: Model Context Protocol description: >- Community-maintained MCP servers expose Project Gutenberg / Gutendex to LLM agents (bobbyhouse, vellankis-space, nasimcoderex). - name: PostgreSQL / SQLite description: Default Django storage backends used by self-hosted instances for catalog persistence. maintainers: - FN: Kin Lane email: kin@apievangelist.com url: https://apievangelist.com