REST API · JSON · No Auth Required

API Documentation

Access metadata and external links for public domain and open-access books and audiobooks from trusted sources such as Project Gutenberg, LibriVox, and Open Library.

OpenMind provides metadata and links to external sources. We do not host, own, or grant licenses for third-party content.

API Operational
Base URL: openmind.sintellogic.at/api

Important usage notice

The OpenMind API provides access to metadata, catalog information, and external source links. Content rights remain with the original sources. Developers using this API are responsible for checking license terms and local copyright laws before downloading, redistributing, or commercially using any content.

Quick Start

Make your first request in under 30 seconds — no setup needed.

bash
# Get 10 popular ebooks
curl "https://openmind.sintellogic.at/api/books?type=ebook&sort=popular&limit=10"

Endpoints

GET/api/books

List books with filtering, pagination, and sorting. Returns metadata and external source links.

Parameters

NameTypeRequiredDescription
typestringoptional"ebook" | "audiobook"
searchstringoptionalFull-text search query
categorystringoptionalCategory slug (e.g. "fiction")
languagestringoptionalISO 639-1 language code (e.g. "en")
featuredbooleanoptionalFilter featured books only
pagenumberoptionalPage number (default: 1)
limitnumberoptionalResults per page (default: 20, max: 100)
sortstringoptional"popular" | "newest" | "title" | "author"

Example Request

GET /api/books?type=ebook&search=sherlock+holmes&limit=5

Response

200 OKapplication/json
{
  "data": [
    {
      "id": "uuid",
      "title": "The Adventures of Sherlock Holmes",
      "author": "Arthur Conan Doyle",
      "description": "...",
      "type": "ebook",
      "language": "en",
      "cover_url": "https://...",
      "external_read_url": "https://www.gutenberg.org/ebooks/1661",
      "external_download_url": "https://www.gutenberg.org/ebooks/1661.epub.images",
      "source_name": "Project Gutenberg",
      "source_url": "https://www.gutenberg.org/ebooks/1661",
      "license_label": "Public Domain",
      "rights_note": "Rights and availability may vary by jurisdiction. Check the original source before reuse.",
      "featured": true,
      "created_at": "2024-01-01T00:00:00.000Z"
    }
  ],
  "page": 1,
  "limit": 5,
  "total": 1
}
GET/api/books/:id

Fetch a single book by its UUID. Returns full metadata and external source links.

Parameters

NameTypeRequiredDescription
idstringrequiredBook UUID

Example Request

GET /api/books/3fa85f64-5717-4562-b3fc-2c963f66afa6

Response

200 OKapplication/json
{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "title": "Pride and Prejudice",
    "author": "Jane Austen",
    "type": "ebook",
    "language": "en",
    "cover_url": "https://...",
    "external_read_url": "https://www.gutenberg.org/ebooks/1342",
    "external_download_url": "https://www.gutenberg.org/ebooks/1342.epub.images",
    "source_name": "Project Gutenberg",
    "source_url": "https://www.gutenberg.org/ebooks/1342",
    "license_label": "Public Domain",
    "rights_note": "Rights and availability may vary by jurisdiction. Check the original source before reuse."
  }
}

Code Examples

fetch
const res = await fetch(
  'https://openmind.sintellogic.at/api/books?type=ebook&limit=10'
);
const { data } = await res.json();

data.forEach(book => {
  console.log(book.title, '—', book.author);
  console.log('Read at:', book.external_read_url);
});
requests
import requests

r = requests.get(
    "https://openmind.sintellogic.at/api/books",
    params={"type": "ebook", "search": "shakespeare", "limit": 5}
)

for book in r.json()["data"]:
    print(book["title"], "—", book["author"])
    print("Source:", book["source_name"])
curl
curl -X GET \
  "https://openmind.sintellogic.at/api/books?type=audiobook&limit=10" \
  -H "Accept: application/json"

Rate Limits

TierRateBurstNote
Anonymous60 req / min100 reqNo key required
Registered300 req / min500 reqFree account

Exceeding the rate limit returns a 429 Too Many Requests response. Implement exponential backoff in your client.

Status Codes

200
OK
Request succeeded
400
Bad Request
Invalid parameters
404
Not Found
Resource does not exist
429
Too Many Requests
Rate limit exceeded
500
Server Error
Internal error

API Terms of Use

The OpenMind API provides metadata and external source links for books and audiobooks from public domain and open-access repositories. OpenMind does not host, own, or grant licenses for third-party content. Availability and rights may vary by location. Developers are responsible for checking source licenses and local copyright laws before downloading, redistributing, or commercially using any content.

Terms of Use