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.
Gutendex publishes 1 API on the APIs.io network: Books API. Tagged areas include Books, Catalog, Ebooks, Library, and Literature.
The Gutendex catalog on APIs.io includes 1 JSON-LD context and 2 Spectral governance rulesets.
Gutendex’s developer surface includes documentation, pricing, authentication, getting-started guide, tooling, and 16 more developer resources.
Regulatory Posture applies to this provider. Its tags matched the
Education & Research regime, so
Regulatory Posture carries 15 points of the composite.
If this regime is wrong for your business, say so on your
provider repo — the
applicability map is public and we will correct it.
Create-or-Update Ergonomics does not apply to this provider. The published contracts declare
no write operations, and a read-only API cannot create-or-update. The facet is excluded from this provider's
denominator entirely — not scored zero. A reference or data API is not deficient for being unable to
upsert.
The six quality facets above are damped to 85 points between them,
because the conditional facet above carries the other
15. That is why each facet's contribution is shown against a damped
maximum: raising a quality facet moves the composite by 85% of its nominal
weight, not 100%. The full arithmetic is at apis.io/rating/.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. Every facet and dimension name above is a link: it opens that measurement's own page — what it means, the exact checks that feed it, how the whole catalog distributes on it, and the providers at the top of it. This rating is computed from github.com/api-evangelist/gutendex: open an issue to ask a question, or submit a pull request to add artifacts.
Submit an artifact on GitHub — free →Manage your own listing — the Influence plan, $499/mo →
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
apis:
- aid: gutendex:gutendex-books-api
name: Gutendex Books API
description: Query and retrieve metadata for Project Gutenberg ebooks.
humanURL: https://gutendex.com
baseURL: 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
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.