# Project Gutenberg on Onekey > 4 endpoints for Project Gutenberg (4 stable, 0 beta), 1 to 5 credits each. Category: Knowledge & reference. One key, one JSON shape. Base URL: https://api.onekey.dev Auth: header `x-api-key: `. Call shape: `GET /v1/{platform}/{endpoint}?{params}`. Every response is `{success, data, metadata, error}`; check `success` first. Cost is in `metadata.credits_charged`. Free when served from cache (0.2 credit for a cached response over 100 KB). Failed and not-found calls are refunded. Status: stable = verified against the live source; beta = not yet verified, fields may be missing. Page: https://onekey.dev/platforms/gutenberg Reference (Markdown): https://onekey.dev/docs/api/gutenberg.md All docs: https://onekey.dev/llms.txt ## Canonical fields returned Unified-schema fields (same names on every platform), with how many of the 4 mapped Project Gutenberg endpoints return each: - `author.displayName` (string): 4 - `entity.id` (string): 4 - `entity.language` (string): 4 - `entity.name` (string): 4 - `entity.stats.downloads` (integer): 4 - `media.thumbnailUrl` (URL): 4 - `entity.description` (string): 1 - plus 1 platform-specific field under `ext.` ## Endpoints ### gutenberg.book Project Gutenberg book by id. - Price: 1 credit per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/gutenberg/book?id=1342` with header `x-api-key: YOUR_API_KEY` - Parameters: - `id` (string, required): Gutenberg id - Fields returned: `entity.id`, `entity.name`, `author.displayName`, `entity.language`, `entity.stats.downloads`, `media.thumbnailUrl`, `entity.description`, `ext.epubUrl` - Reference: https://onekey.dev/docs/api/gutenberg/book.md ### gutenberg.language Popular Project Gutenberg books in a language. - Price: 5 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/gutenberg/language?lang=fr` with header `x-api-key: YOUR_API_KEY` - Parameters: - `lang` (string, required): 2-letter language code, e.g. fr - Fields returned: `entity.id`, `entity.name`, `author.displayName`, `entity.language`, `entity.stats.downloads`, `media.thumbnailUrl`, `ext.epubUrl` - Reference: https://onekey.dev/docs/api/gutenberg/language.md ### gutenberg.search Search Project Gutenberg books (Gutendex). - Price: 5 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/gutenberg/search?q=dickens` with header `x-api-key: YOUR_API_KEY` - Parameters: - `q` (string, required): Search query - Fields returned: `entity.id`, `entity.name`, `author.displayName`, `entity.language`, `entity.stats.downloads`, `media.thumbnailUrl`, `ext.epubUrl` - Reference: https://onekey.dev/docs/api/gutenberg/search.md ### gutenberg.topic Project Gutenberg books by topic/bookshelf keyword. - Price: 5 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/gutenberg/topic?topic=children` with header `x-api-key: YOUR_API_KEY` - Parameters: - `topic` (string, required): Topic keyword, e.g. children - Fields returned: `entity.id`, `entity.name`, `author.displayName`, `entity.language`, `entity.stats.downloads`, `media.thumbnailUrl`, `ext.epubUrl` - Reference: https://onekey.dev/docs/api/gutenberg/topic.md ## Sample request ```bash curl "https://api.onekey.dev/v1/gutenberg/book?id=1342" \ -H "x-api-key: YOUR_API_KEY" ```