Discover/Open Library API
live

Open Library APIopenlibrary.org

Search millions of Open Library books by title. Get authors, first publish year, subjects, and cover IDs via a single clean API endpoint.

Endpoint health
verified 6d ago
search_books
1/1 passing latest checkself-healing
Endpoints
1
Updated
2mo ago

What is the Open Library API?

The Open Library API gives you access to book metadata across millions of titles through one endpoint, search_books. A single query returns up to 5 fields per book — title, authors, first_publish_year, subjects, and cover_id — plus pagination controls so you can page through large result sets. It covers Open Library's full catalog and is a practical starting point for bibliographic data retrieval.

This call costs1 credit / call— charged only on success
Try it
Page number for pagination (1-based).
Maximum number of results to return per page.
Book title to search for.
api.parse.bot/scraper/0f90782c-a240-4542-ba33-b7c93252c760/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/0f90782c-a240-4542-ba33-b7c93252c760/search_books?page=1&limit=5&title=the+great+gatsby' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace openlibrary-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.


"""Walkthrough: Open Library Book Search — find books by title, inspect metadata."""
from parse_apis.Open_Library_Book_Search_API import OpenLibrary, NotFoundError

client = OpenLibrary()

# Search for books by title, cap results
for book in client.books.search(title="the great gatsby", limit=3):
    print(book.title, book.authors, book.first_publish_year)

# Drill into one result for full subject list
book = client.books.search(title="dune", limit=1).first()
if book:
    print(f"Title: {book.title}")
    print(f"Authors: {book.authors}")
    print(f"Year: {book.first_publish_year}")
    print(f"Cover ID: {book.cover_id}")
    print(f"Subjects (first 5): {book.subjects[:5]}")

# Typed error handling
try:
    result = client.books.search(title="xyznonexistent99999", limit=1).first()
    if result:
        print(result.title, result.cover_id)
    else:
        print("No results found for query")
except NotFoundError as exc:
    print(f"Error: {exc}")

print("exercised: books.search with pagination, field access on title/authors/first_publish_year/subjects/cover_id")
All endpoints · 1 totalmissing one? ·

Search books by title. Returns paginated results with each book's title, authors, first publish year, subjects, and cover ID. The cover image URL can be constructed as https://covers.openlibrary.org/b/id/<cover_id>-<size>.jpg where size is S, M, or L.

Input
ParamTypeDescription
pageintegerPage number for pagination (1-based).
limitintegerMaximum number of results to return per page.
titlerequiredstringBook title to search for.
Response
{
  "type": "object",
  "fields": {
    "page": "integer",
    "limit": "integer",
    "results": "array of book objects with title, authors, first_publish_year, subjects, cover_id",
    "num_found": "integer"
  },
  "sample": {
    "data": {
      "page": 1,
      "limit": 3,
      "results": [
        {
          "title": "The Great Gatsby",
          "authors": [
            "F. Scott Fitzgerald"
          ],
          "cover_id": 10590366,
          "subjects": [
            "Fiction",
            "Rich people",
            "Classics",
            "Literature"
          ],
          "first_publish_year": 1920
        }
      ],
      "num_found": 301
    },
    "status": "success"
  }
}

About the Open Library API

What the API Returns

The search_books endpoint accepts a title string and returns a paginated list of matching books from the Open Library catalog. Each result object includes the book's title, an array of authors, the first_publish_year, a list of subjects (e.g. genres, topics, and subject headings), and a cover_id integer. The response also surfaces num_found — the total number of matching records — alongside the current page and limit values so you can build pagination controls.

Pagination and Filtering

Pagination is 1-based and controlled by the page and limit parameters. Set limit to bound the number of records per response, then increment page to walk through the full result set. The num_found field tells you the total count of matches, which you can divide by limit to calculate total pages. There are no server-side filters for language, date range, or subject within this endpoint; filtering on those dimensions needs to be done client-side against the returned fields.

Cover Images

The cover_id field maps directly to Open Library's cover image service. You can construct a URL as https://covers.openlibrary.org/b/id/<cover_id>-<size>.jpg where <size> is S, M, or L. If cover_id is null or absent for a result, no cover image is available for that edition in the catalog.

Source Background

Open Library (openlibrary.org) is an Internet Archive project aiming to catalog every book ever published. It does have an official public API documented at https://openlibrary.org/developers/api, covering search, works, editions, and more. This Parse endpoint targets the book search surface and normalizes results into a consistent, paginated JSON shape.

Reliability & maintenanceVerified

The Open Library API is a managed, monitored endpoint for openlibrary.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when openlibrary.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official openlibrary.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Populate a reading list app with book titles, authors, and cover images using cover_id.
  • Build a book discovery tool that groups results by subjects returned from search_books.
  • Cross-reference first_publish_year against a dataset to find earliest known editions of a title.
  • Generate a bibliography tool that retrieves author arrays for any title query.
  • Drive autocomplete suggestions in a book search UI using paginated search_books results.
  • Research subject coverage for a given book title by inspecting the subjects array.
  • Build a catalog enrichment pipeline that fills in missing metadata using num_found and multi-page traversal.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Open Library have an official developer API?+
Yes. Open Library provides an official public API documented at https://openlibrary.org/developers/api. It covers search, works, editions, authors, and subjects. This Parse endpoint normalizes the book search portion into a consistent paginated JSON response.
What does `search_books` return beyond the book title?+
Each result object includes authors (an array of author name strings), first_publish_year (an integer), subjects (an array of subject/genre strings), and cover_id (an integer you can use to build cover image URLs). The top-level response also includes num_found, page, and limit for pagination.
Can I search by author name, ISBN, or subject rather than title?+
Not currently. The API covers title-based search only via the required title parameter. You can fork this API on Parse and revise it to add author, ISBN, or subject search endpoints.
Are there any known gaps in the catalog data returned?+
Some books in the catalog lack a cover_id (it will be null or absent) because Open Library does not have a cover image on file for every edition. Subject data can also vary in completeness — some records have rich subject arrays, others have few or none, depending on how thoroughly a given work has been cataloged.
Does the API return edition-level data such as publisher, ISBN, or page count?+
Not currently. The search_books endpoint returns work-level metadata: title, authors, first publish year, subjects, and cover ID. Edition-level fields like publisher, ISBN, and page count are not exposed. You can fork this API on Parse and revise it to call the editions endpoint for a given work and surface those fields.
Page content last updated . Spec covers 1 endpoint from openlibrary.org.
Related APIs in EducationSee all →
arxiv.org API
Search and discover academic research papers on arXiv using keywords, authors, titles, categories, and dates, then access detailed metadata for any paper. Browse the complete arXiv category taxonomy to explore research across different scientific disciplines.
export.arxiv.org API
Search and retrieve academic paper information from arXiv, including titles, authors, abstracts, submission dates, and subject categories. Look up specific papers by ID or discover relevant research through flexible search queries.
ieeexplore.ieee.org API
Search for scientific papers and retrieve their metadata, abstracts, references, and citations from IEEE Xplore's collection of journals and conferences. Look up author profiles, browse journals, and access paper details and full text sections all programmatically.
zenodo.org API
Search and retrieve research records, files, versions, and community data from Zenodo's open science repository. Access detailed information about academic publications, datasets, and research outputs, including file listings, version history, and community collections all in one place.
dictionary.cambridge.org API
Look up word definitions, pronunciations, translations, synonyms, and example sentences from Cambridge Dictionary. Search and browse thousands of words, get daily word recommendations, and access specialized business or American English dictionaries.
openalex.org API
Search and retrieve millions of academic papers, articles, and books from OpenAlex's comprehensive global research catalog to find scholarly works by topic, author, or citation. Discover detailed information about research publications including metadata, abstracts, and citation counts to stay current with academic literature in your field.
worldcat.org API
Search millions of books and library materials worldwide, check availability at libraries near you, and discover reading lists and reviews all in one place. Find exactly what you're looking for across global library collections and get instant insights into where to access it.
bigfuture.collegeboard.org API
Search College Board's BigFuture scholarship database by location, academic stage, degree type, field of study, GPA, and keywords to find scholarships that match your profile. Get detailed information about specific scholarships and explore available counties, cities, and fields of study to refine your search.