Media, Film & Knowledge

Books & Authors API

The Books & Authors API returns book and author data as clean JSON.

8 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary book_detail endpoint returns a book's title, authors, covers, subjects, description, page count, publishers, languages and editions, and you can search, pull an author and their works, browse subjects and trending, list editions and get an ebook. It is built for reading apps, catalog tools and literary research that need book metadata without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/books/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "q": "the hunger games"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "books",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 4352.3,
    "record_count": 20,
    "bytes": 38505,
    "cache_hit": false,
    "completeness_pct": 100,
    "requests": 1,
    "total": 204,
    "page": 1,
    "num_returned": 20
  },
  "data": {
    "results": [
      {
        "title": "The Hunger Games",
        "subtitle": null,
        "authors": [
          "Suzanne Collins"
        ],
        "author_olids": [
          "OL1394359A"
        ],
        "olid": "OL5735363W",
        "key": "OL5735363W",
        "first_publish_year": 2008,
        "edition_count": 142,
        "covers": {
          "small": "https://covers.openlibrary.org/b/id/12646537-S.jpg",
          "medium": "https://covers.openlibrary.org/b/id/12646537-M.jpg",
          "large": "https://covers.openlibrary.org/b/id/12646537-L.jpg"
        },
        "isbn": [
          "[redacted-phone]",
          "[redacted-phone]",
          "[redacted-phone]"
        ],
        "languages": [
          "tur",
          "fre",
          "heb"
        ],
        "subjects": [
          "severe poverty",
          "starvation",
          "oppression"
        ],
        "number_of_pages_median": 399,
        "ratings": {
          "average": 4.115,
          "count": 539
        },
        "reading_log": {
          "want_to_read": 5767,
          "currently_reading": 458,
          "already_read": 931
        },
        "ebook_access": "borrowable",
        "has_fulltext": true,
        "ia_id": "jieyouxi0000coll",
        "first_sentence": "When I wake up, the other side of the bed is cold.",
        "openlibrary_url": "https://openlibrary.org/works/OL5735363W"
      },
      {
        "title": "The Hunger Games Trilogy (Hunger Games / Catching Fire / Mockingjay)",
        "subtitle": null,
        "authors": [
          "Suzanne Collins"
        ],
        "author_olids": [
          "OL1394359A"
        ],
        "olid": "OL15518787W",
        "key": "OL15518787W",
        "first_publish_year": 2010,
        "edition_count": 29,
        "covers": {
          "small": "https://covers.openlibrary.org/b/id/12878880-S.jpg",
          "medium": "https://covers.openlibrary.org/b/id/12878880-M.jpg",
          "large": "https://covers.openlibrary.org/b/id/12878880-L.jpg"
        },
        "isbn": [
          "[redacted-phone]",
          "[redacted-phone]",
          "[redacted-phone]"
        ],
        "languages": [
          "cat",
          "pol",
          "ger"
        ],
        "subjects": [
          "Romance",
          "Drama",
          "Young adult fiction"
        ],
        "number_of_pages_median": 1136,
        "ratings": {
          "average": 4.529,
          "count": 17
        },
        "reading_log": {
          "want_to_read": 360,
          "currently_reading": 15,
          "already_read": 41
        },
        "ebook_access": "borrowable",
        "has_fulltext": true,
        "ia_id": "dietributevonpan0000suza_u1a0",
        "first_sentence": null,
        "openlibrary_url": "https://openlibrary.org/works/OL15518787W"
      },
      {
        "title": "Mockingjay",
        "subtitle": null,
        "authors": [
          "Suzanne Collins"
        ],
        "author_olids": [
          "OL1394359A"
        ],
        "olid": "OL14908941W",
        "key": "OL14908941W",
        "first_publish_year": 2010,
        "edition_count": 98,
        "covers": {
          "small": "https://covers.openlibrary.org/b/id/12646459-S.jpg",
          "medium": "https://covers.openlibrary.org/b/id/12646459-M.jpg",
          "large": "https://covers.openlibrary.org/b/id/12646459-L.jpg"
        },
        "isbn": [
          "[redacted-phone]",
          "[redacted-phone]",
          "[redacted-phone]"
        ],
        "languages": [
          "vie",
          "fre",
          "pol"
        ],
        "subjects": [
          "New York Times bestseller",
          "Sci-fi",
          "Young Adult"
        ],
        "number_of_pages_median": 424,
        "ratings": {
          "average": 3.775,
          "count": 267
        },
        "reading_log": {
          "want_to_read": 932,
          "currently_reading": 56,
          "already_read": 480
        },
        "ebook_access": "borrowable",
        "has_fulltext": true,
        "ia_id": "ziyouhuanmeng0000coll",
        "first_sentence": null,
        "openlibrary_url": "https://openlibrary.org/works/OL14908941W"
      }
    ],
    "numFound": 204,
    "page": 1,
    "start": 0,
    "q": "the hunger games"
  }
}
Actions

What the Books & Authors API does

ActionDescriptionConcrete use caseKey params
book_detailmerged book record by ISBN-10/13 or OLID (work OL..W / edition OL..M): title/authors/covers/subjects/description/pages/publishers/languages/editions/identifiers/ratings+distribution/reading-log; queried ISBN always injectedContent platforms call book_detail to get merged book record by ISBN-10/13 or OLID (work OL..W / edition OL..M).id
searchsearch books: q OR fielded (title/author/subject/publisher/place/person/isbn/language); rich cards (ratings/reading-log/ebook_access/IA); sort=new|old|rating|want_to_read|editions; paginationResearch tools call search to search books.q, query, title, author, subject, ...
authorauthor by OLID (OL..A) → bio/photo/dates/alternate-names/remote-ids(goodreads/wikidata/viaf/gutenberg)/links + include_works; or query/name → best-match-ranked author listCommunity analysts call author to get author by OLID (OL..A) → bio/photo/dates/alternate-names/remote-ids(goodreads/wikidata/viaf/g….id, query, name, q, include_works, ...
author_worksfull paginated bibliography of an author (OL..A): every work with cover, first-publish year and subjects; page/limit pagination over the author's complete catalogMedia monitors call author_works to get full paginated bibliography of an author (OL..A).id, olid, limit, per_page, page
subjectsbrowse a subject / genre / theme → ranked work cards PLUS facets (top authors, publishers, related subjects, people, places, time-periods) and work_count/ebook_count; optional ebooks-only and published_in year-range filters; page/limit paginationContent platforms call subjects to get browse a subject / genre / theme → ranked work cards PLUS facets (top authors, publishers, re….subject, name, q, genre, ebooks, ...
trendingmost popular / trending books for a time window (now|daily|weekly|monthly|yearly) → ranked work cards (title, authors, cover, year, ebook access); page/limit paginationResearch tools call trending to get most popular / trending books for a time window (now|daily|weekly|monthly|yearly) → ranked wo….period, range, limit, per_page, page
editionsevery printing / edition of a book (give a work OLID, an edition OLID, or any ISBN) → each edition's ISBN-10/13, publisher, format, publish date/place, page count, language and cover; page/limit paginationCommunity analysts call editions to get every printing / edition of a book (give a work OLID, an edition OLID, or any ISBN) → each ed….id, olid, isbn, limit, per_page, ...
ebookpublic-domain full-text (Project Gutenberg): query OR id=Gutenberg-id OR ids=batch; filters languages/topic/sort; returns formats{epub/txt/html/kindle/cover}+download_url+read_url; gutenberg.org OPDS fallback when gutendex is downMedia monitors call ebook to get public-domain full-text (Project Gutenberg).query, search, q, id, gutenberg_id, ...
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/books/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"q":"the hunger games"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.books.search with {"q":"the hunger games"}.
Use cases

Who uses this API and why

  • Reading apps call book_detail to enrich a title with cover, subjects and edition data.
  • Catalog tools use search and editions to resolve a work across ISBNs and formats.
  • Discovery products use trending and subjects to surface books by theme.
FAQ

Questions developers ask before integrating

What is the Books & Authors API?

Books & Authors API is a ReefAPI endpoint group for book details, search, authors and free ebooks. It returns live JSON through POST requests under /books/v1.

Is the Books & Authors API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Books & Authors calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Books & Authors login or account?

No login to Books & Authors is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Books & Authors data?

The page example is captured from a live book_detail call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Books & Authors API use?

Books & Authors actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Books & Authors from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call books actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Books & Authors API a Books & Authors scraper?

It is the managed alternative to a DIY Books & Authors scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same book details, search, authors and free ebooks back as clean JSON.

Why does my Books & Authors scraper keep getting blocked?

Most Books & Authors scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / books

Books & Authors

Book details, search, authors and free ebooks.

base /books/v18 endpoints
post/books/v1/book_detail1 credit

merged book record by ISBN-10/13 or OLID (work OL..W / edition OL..M): title/authors/covers/subjects/description/pages/publishers/languages/editions/identifiers/ratings+distribution/reading-log; queried ISBN always injected

ParameterAllowed / rangeDescription
idrequiredISBN-10/13, OR OpenLibrary work id (OL..W), OR edition id (OL..M).
Try in playground →
post/books/v1/author1 credit

author by OLID (OL..A) → bio/photo/dates/alternate-names/remote-ids(goodreads/wikidata/viaf/gutenberg)/links + include_works; or query/name → best-match-ranked author list

ParameterAllowed / rangeDescription
idoptionalOpenLibrary author id (OL..A) for a profile. Supply `id` OR a query (`query`/`name`/`q`) for author search.
queryoptionalAuthor search text → best-match-ranked list. Supply this OR `id`.
include_works = falseoptionalProfile mode only: also return the author's top works.
works_limit = 20optional1–50Max works when include_works=true (1-50).
limit = 10optional1–50Results per page (1-50, default 10); out-of-range values are clamped.
Try in playground →
post/books/v1/author_works1 credit

full paginated bibliography of an author (OL..A): every work with cover, first-publish year and subjects; page/limit pagination over the author's complete catalog

ParameterAllowed / rangeDescription
idrequiredOpenLibrary author id (OL..A). Get one from the `author` action.
limit = 50optional1–100Results per page (1-100, default 50); out-of-range values are clamped.
page = 1optional1–10001-based page number (clamped to 1-1000).
Try in playground →
post/books/v1/subjects1 credit

browse a subject / genre / theme → ranked work cards PLUS facets (top authors, publishers, related subjects, people, places, time-periods) and work_count/ebook_count; optional ebooks-only and published_in year-range filters; page/limit pagination

ParameterAllowed / rangeDescription
subjectrequiredSubject / genre / theme to browse (free text; spaces are fine, e.g. 'science fiction', 'historical fiction', 'love', 'cooking').
ebooks = falseoptionalOnly return works that have a readable/borrowable ebook.
published_inoptionalRestrict the subject browse to a publish-year range, e.g. 2000-2010.
sortoptionaleditions · new · oldOrdering of the subject's works. Known keys shown; others pass through.
limit = 24optional1–100Results per page (1-100, default 24); out-of-range values are clamped.
page = 1optional1–10001-based page number (clamped to 1-1000).
Try in playground →
post/books/v1/editions1 credit

every printing / edition of a book (give a work OLID, an edition OLID, or any ISBN) → each edition's ISBN-10/13, publisher, format, publish date/place, page count, language and cover; page/limit pagination

ParameterAllowed / rangeDescription
idrequiredA work OLID (OL..W), an edition OLID (OL..M), or any ISBN of the book — all resolve to the work whose editions are listed.
limit = 50optional1–100Results per page (1-100, default 50); out-of-range values are clamped.
page = 1optional1–10001-based page number (clamped to 1-1000).
Try in playground →
post/books/v1/ebook1 credit

public-domain full-text (Project Gutenberg): query OR id=Gutenberg-id OR ids=batch; filters languages/topic/sort; returns formats{epub/txt/html/kindle/cover}+download_url+read_url; gutenberg.org OPDS fallback when gutendex is down

ParameterAllowed / rangeDescription
queryoptionalFull-text search of Project Gutenberg. Supply `query` OR `id` (Gutenberg id) OR `ids` (batch) OR a filter.
idoptionalA single Project Gutenberg ebook id (digits).
idsoptionalBatch of Gutenberg ids (list or comma-separated string).
languagesoptionalGutendex language filter — comma-separated ISO 639-1 codes (e.g. en, fr).
topicoptionalGutendex topic filter (matches bookshelf or subject).
sortoptionalpopular · ascending · descendingGutendex ordering. Known keys shown; passed through if Gutendex adds more.
mime_typeoptionalGutendex mime_type filter (e.g. application/epub+zip, text/plain).
author_year_startoptionalGutendex filter: author alive on/after this year.
author_year_endoptionalGutendex filter: author alive on/before this year.
copyrightoptionalGutendex copyright filter: true|false|null (comma-separated to combine).
limit = 32optional1–32Results per page (1-32, default 32); out-of-range values are clamped.
page = 1optional1–10001-based page number (clamped to 1-1000).
Try in playground →