BYTETOOLS

dBooks API

Free ebook API with no key: search and browse freely downloadable books with title, subtitle, authors, cover image and a download page link. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the dBooks API?

dBooks provides a keyless JSON API over a library of freely downloadable ebooks. The recent endpoint returns the newest additions with title, subtitle, authors, cover image URL and a link to the book's download page.

Where Project Gutenberg concentrates on out-of-copyright classics, dBooks leans towards technical and academic titles that publishers have released for free — the captured response opens with an O'Reilly security book and a European public investment report. That makes it a complement to the classics collections rather than a competitor.

The response shape is deliberately flat, which makes it easy to render but means one thing to watch: `authors` is a single comma-separated string, not an array, so splitting it is on you and multi-author books need care. The `id` is the book's ISBN, which is a genuinely useful key — it joins straight into Open Library, Google Books or a library catalogue for extra metadata. `url` points at the book's page rather than at the file itself, so a search endpoint and a detail endpoint are both available for going deeper.

Quick facts

Base URL
https://www.dbooks.org/api
Authentication
No API key and no account.
Rate limit
No published limit. The catalogue changes slowly — cache results.
Pricing
Free. Books are freely downloadable under their own terms.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the dBooks API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Fetch recently added ebooks

GET https://www.dbooks.org/api/recent

curl
curl 'https://www.dbooks.org/api/recent'
JavaScript (fetch)
const res = await fetch("https://www.dbooks.org/api/recent");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://www.dbooks.org/api/recent", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "status": "ok",
  "total": 20,
  "books": [
    {
      "id": "1098127463",
      "title": "Security as Code",
      "subtitle": "DevSecOps Patterns with AWS",
      "authors": "BK Sarthak Das, Virginia Chu",
      "image": "https://www.dbooks.org/img/books/1098127463s.jpg",
      "url": "https://www.dbooks.org/security-as-code-1098127463/"
    },
    {
      "id": "1805112015",
      "title": "Financing Investment in Times of High Public Debt",
      "subtitle": "2023 European Public Investment Outlook",
      "authors": "Floriana Cerniglia, Francesco Saraceno, Andrew Watt",
      "image": "https://www.dbooks.org/img/books/1805112015s.jpg",
      "url": "https://www.dbooks.org/financing-investment-in-times-of-high-public-debt-1805112015/"
    },
    {
      "id": "164200233X",
      "title": "ASP.NET Core 6 Succinctly",
      "subtitle": "",
      "authors": "Dirk Strauss",
      "image": "https://www.dbooks.org/img/books/164200233Xs.jpg",
      "url": "https://www.dbooks.org/aspnet-core-6-succinctly-164200233x/"
    },
    {
      "id": "199013209X",
      "title": "Engineering Systems Dynamics, Modelling, Simulation, and Design",
      "subtitle": "Lagrangian and Bond Graph Methods",
      "authors": "Mehrzad Tabatabaian",
      "image": "https://www.dbooks.org/img/books/199013209Xs.jpg",
      "url": "https://www.dbooks.org/engineering-systems-dynamics-modelling-simulation-and-design-199013209x/"
    },
    {
      "id": "5709901124",
      "title": "Build a Raspberry Pi Media Player",
      "subtitle": "Power up your TV and music system",
      "authors": "PJ Evans

Parameters

ParameterTypeRequiredDescription
(none)n/aOptional`/recent` takes no parameters and returns the newest additions.
/search/{query}pathOptionalFull-text search across the catalogue. /search/python
/book/{id}pathOptionalOne book in detail, keyed by its ISBN. /book/1098127463

Response fields

statusstring
`ok` on success. Check it before reading `books`.
totalinteger
Number of books in this response.
booksarray
The books themselves.
books[].idstring
The book's ISBN, which doubles as the detail endpoint key and joins into other bibliographic APIs.
books[].title / subtitlestring
Title and subtitle as separate fields.
books[].authorsstring
All authors as one comma-separated string, not an array. Split it yourself, carefully.
books[].imagestring
Cover thumbnail URL.
books[].urlstring
The book's page on dbooks.org, not a direct file link.

What you can build with the dBooks API

  • Build a free ebook discovery interface
  • Show recently released open technical books
  • Join ISBNs into a library catalogue for richer metadata
  • Seed a reading list application with real, downloadable titles

Common errors and how to fix them

Author splitting produces nonsense

`authors` is one comma-separated string.

Fix: Split on comma, but expect edge cases where a name itself contains one. Do not assume a clean array.

URL does not download the file

`url` points at the book's page.

Fix: Fetch the detail endpoint by ISBN for download links, or send the user to the page.

Search returns nothing

The catalogue is modest compared with the large book databases.

Fix: It focuses on technical and academic titles. Fall back to Open Library or Gutenberg for general literature.

Missing subtitle

Not every book has one.

Fix: The field can be an empty string. Render conditionally.

dBooks API — frequently asked questions

Is the dBooks API free?

Yes, free with no key or account, and the books themselves are freely downloadable under their own terms.

What kind of books does it cover?

Mostly technical and academic titles that publishers have released for free, which makes it complementary to Project Gutenberg's out-of-copyright classics rather than a substitute.

What is the id field?

The book's ISBN. It keys the detail endpoint and also joins straight into Open Library, Google Books or a library catalogue for extra metadata.

Why is authors a string rather than an array?

That is simply how the API serialises it — all authors comma-separated in one field. You have to split it yourself, and names containing commas are a genuine edge case.

Tools that pair with this API

dBooks is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.