Gutendex website screenshot

Gutendex

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.

45.5/100 developing ▬ flat Agent 29/100 agent aware open core · MIT Full breakdown ↓
scored 2026-09-08 · rubric v0.20.0
AccessFreeOpen
1 APIs 8 Features 6 Use Cases
BooksCatalogEbooksLibraryLiteratureMetadataOpen-SourceProject GutenbergPublic APIsPublic Domain

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-09-08 · rubric v0.20.0
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 →

APIs 1

Individual APIs this provider publishes, each with its own machine-readable definition.

Gutendex Books API

Query and retrieve metadata for Project Gutenberg ebooks.

Open Collections 3

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

API Collection

OPEN COLLECTION

Gutendex API

OPEN COLLECTION

Gutendex Books API

OPEN COLLECTION

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Gutendex Rate Limits

3 limits

RATE LIMITS

Features 8

Notable capabilities this provider offers.

Free Public API

No API key, no signup, no rate limit documented; gutendex.com is openly available.

70,000+ Ebook Catalog

Mirrors the full Project Gutenberg catalog of free public-domain ebooks.

Rich Filtering

Filter by author birth/death year, copyright status, language, MIME type, IDs, search keywords, and topic.

Multiple Sort Orders

Sort results by popularity (default), ascending ID, or descending ID.

Multi-format Downloads

Each book exposes a Format object mapping MIME types (HTML, EPUB, MOBI, plain text, JPEG) to direct download URLs.

Bookshelves and Subjects

Books are tagged with Library of Congress subject headings and curated Project Gutenberg bookshelves.

Multi-language Support

Books are indexed by two-character ISO language codes; filter by multiple languages at once.

Self-Hostable

MIT-licensed Django app that operators can run on their own infrastructure with nightly Project Gutenberg catalog sync.

Scroll for all 8

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Gutendex Context

12 classes · 12 properties

JSON-LD

Spectral Rules 2

Spectral governance rulesets for linting and validating these APIs.

Gutendex API Rules

5 rules · 4 warnings 1 info

SPECTRAL

Gutendex API Rules

13 rules · 8 errors 4 warnings 1 info

SPECTRAL

JSON Schema 5

Standalone JSON Schema definitions for this provider's data models.

BookList

4 properties

JSON SCHEMA

Book

13 properties

JSON SCHEMA

Error

1 properties

JSON SCHEMA

Format

0 properties

JSON SCHEMA

Person

3 properties

JSON SCHEMA

JSON Structure 5

JSON Structure definitions describing this provider's data shapes.

Gutendex Book List Structure

4 properties

JSON STRUCTURE

Gutendex Book Structure

13 properties

JSON STRUCTURE

Gutendex Error Structure

1 properties

JSON STRUCTURE

Gutendex Format Structure

0 properties

JSON STRUCTURE

Gutendex Person Structure

3 properties

JSON STRUCTURE

Examples 6

Example request and response payloads for these APIs.

Gutendex Book Example

13 fields

EXAMPLE

Gutendex Error Example

1 fields

EXAMPLE

Gutendex Format Example

6 fields

EXAMPLE

Gutendex Get Book Example

13 fields

EXAMPLE

Gutendex Person Example

3 fields

EXAMPLE

Security Posture 1

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Gutendex Domain Security

TLSv1.3

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Gutendex Agentic Access

2 operations

2 operations · 0 acting

AGENTIC

Use Cases 6

What developers build with this provider.

Literature Analytics

Power large-scale analysis of public-domain literature by ingesting the structured Project Gutenberg catalog.

Educational Apps

Build classroom or self-study apps that surface public-domain texts by subject, author, or reading level.

Reading Recommendation Engines

Use the download_count and bookshelf data to recommend popular classics or themed reading lists.

Digital Library Backends

Power library catalog interfaces and ebook reader apps with a clean JSON facade over Project Gutenberg's XML archives.

Natural Language Processing Datasets

Use the catalog to discover bulk text downloads for training language models on public-domain corpora.

Citation and Reference Tools

Power author/title lookup widgets in citation managers and academic writing tools.

Integrations 4

Pre-built integrations with other platforms and tools.

Project Gutenberg

Upstream source. Gutendex nightly-ingests the official Project Gutenberg XML catalog and republishes it as JSON.

Django REST Framework

Built on Django + Django REST Framework. Operators can extend the API with additional viewsets.

Model Context Protocol

Community-maintained MCP servers expose Project Gutenberg / Gutendex to LLM agents (bobbyhouse, vellankis-space, nasimcoderex).

PostgreSQL / SQLite

Default Django storage backends used by self-hosted instances for catalog persistence.

Resources

Get Started 1

Portal, sign-up, and the first successful call

Documentation 3

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 3

Pagination, idempotency, versioning, errors, and events

Build 4

SDKs, sample code, and the tooling you integrate with

Access & Security 2

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 3

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
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

Work with this as data

Every provider here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for providers

9 MCP tools reach this
  • find_providersBrowse and filter every provider in the catalog.
  • get_provider_artifactsEvery artifact this provider publishes, grouped by type.
  • get_provider_operationsEvery operation across all of their OpenAPIs — one call instead of parsing every spec.
  • get_provider_toolsEvery MCP tool they ship, with the operation each wraps.
  • get_provider_evidenceHow each part of their score was established. Free — the basis for a claim should not sit behind it.
  • get_provider_ratingPRO — composite, band, trend and facet scores.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This provider
curl "https://apis.io/api/v1/providers/gutendex"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/gutendex/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/gutendex/evidence"

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.

A second provider on the same verified email joins the account you already have.