Open Library

App · Research & Academia · 9 actions

Search and retrieve open bibliographic data (books, works, editions, authors, subjects, and cover images) from Open Library, a free, keyless public API and an initiative of the Internet Archive. No account or API key is required.

Actions

ActionWhat it does
Get a book by ISBNLook up the edition for an ISBN-10 or ISBN-13.
Get a book cover URLBuild the URL of a book's cover image from an identifier.
Get a workFetch a single work (a book across all its editions) by its Open Library work id, for example OL27448W.
Get an authorFetch a single author by their Open Library author id, for example OL26320A.
Get an editionFetch a single edition (a specific published version) by its Open Library edition id, for example OL7353617M.
Get author worksList the works written by an author, by their Open Library author id.
Get books by subjectFetch the books filed under a subject, for example fantasy or science fiction.
Search authorsSearch Open Library for authors by name.
Search booksSearch Open Library for books and works.

Get a book by ISBN

Look up the edition for an ISBN-10 or ISBN-13. Hyphens and spaces in the ISBN are ignored.

Inputs

ISBNisbntextRequired
The ISBN-10 or ISBN-13 (for example, 9780140328721).

Outputs

bookobject
Example output
{
  "book": {
    "authors": [
      {
        "key": "/authors/OL34184A"
      }
    ],
    "covers": [
      15152634,
      8739161
    ],
    "first_sentence": "Down in the valley there were three farms.",
    "isbn_10": [
      "0140328726"
    ],
    "isbn_13": [
      "9780140328721"
    ],
    "key": "/books/OL7353617M",
    "languages": [
      {
        "key": "/languages/eng"
      }
    ],
    "number_of_pages": 96,
    "publish_date": "October 1, 1988",
    "publishers": [
      "Puffin"
    ],
    "title": "Fantastic Mr. Fox",
    "type": {
      "key": "/type/edition"
    },
    "works": [
      {
        "key": "/works/OL45804W"
      }
    ]
  }
}

Get a book cover URL

Build the URL of a book's cover image from an identifier. Choose the identifier type (ISBN, OCLC, LCCN, Open Library edition ID, or cover ID) and a size (small, medium, or large). For a work, use its cover ID: cover_i from Search books, or covers from Get a work. Returns the direct image URL. No request is made, so the URL is returned even if no cover exists for that identifier. Prefer cover or edition IDs for many covers: Open Library serves at most 100 covers every 5 minutes looked up by ISBN, OCLC or LCCN.

Inputs

Identifier typekeytextRequired
Which kind of identifier the value is.One of: isbn, oclc (OCLC number), lccn, olid (Open Library edition ID), id (Cover ID).
Identifier valuevaluetextRequired
The identifier value (for example, 9780140328721 for an ISBN, OL7353617M for an edition, or 8739161 for a cover ID).
Sizesizetext
The cover image size: S (small), M (medium), or L (large).One of: S (Small), M (Medium), L (Large). Default: M.

Outputs

cover_urltext
Example output
{
  "cover_url": "https://covers.openlibrary.org/b/isbn/9780140328721-M.jpg"
}

Get a work

Fetch a single work (a book across all its editions) by its Open Library work id, for example OL27448W. Accepts a bare id, a full key such as /works/OL27448W, or the work's page address. A work that was merged into another returns the one it was merged into, and text such as the description always comes back as plain text.

Inputs

Work IDwork_idtextRequired
The Open Library work id (for example, OL27448W).

Outputs

workobject
Example output
{
  "work": {
    "authors": [
      {
        "author": {
          "key": "/authors/OL26320A"
        },
        "type": {
          "key": "/type/author_role"
        }
      }
    ],
    "covers": [
      14625765,
      11658206,
      13120659
    ],
    "description": "Originally published from 1954 through 1956, J.R.R. Tolkien's richly complex series ushered in a new age of epic adventure storytelling.",
    "key": "/works/OL27448W",
    "subjects": [
      "The Lord of the Rings",
      "Fiction",
      "English Fantasy fiction",
      "Fantasy fiction"
    ],
    "title": "The Lord of the Rings",
    "type": {
      "key": "/type/work"
    }
  }
}

Get an author

Fetch a single author by their Open Library author id, for example OL26320A. Accepts a bare id, a full key such as /authors/OL26320A, or the author's page address. An author who was merged into another returns the one they were merged into, and the bio always comes back as plain text.

Inputs

Author IDauthor_idtextRequired
The Open Library author id (for example, OL26320A).

Outputs

authorobject
Example output
{
  "author": {
    "bio": "John Ronald Reuel Tolkien (1892-1973) was a major scholar of the English language, specialising in Old and Middle English.",
    "birth_date": "3 January 1892",
    "death_date": "2 September 1973",
    "fuller_name": "John Ronald Reuel Tolkien",
    "key": "/authors/OL26320A",
    "name": "J.R.R. Tolkien",
    "personal_name": "J. R. R. Tolkien",
    "photos": [
      6155606,
      6433524
    ],
    "type": {
      "key": "/type/author"
    }
  }
}

Get an edition

Fetch a single edition (a specific published version) by its Open Library edition id, for example OL7353617M. Accepts a bare id, a full key such as /books/OL7353617M, or the edition's page address. An edition that was merged into another returns the one it was merged into.

Inputs

Edition IDedition_idtextRequired
The Open Library edition id (for example, OL7353617M).

Outputs

editionobject
Example output
{
  "edition": {
    "authors": [
      {
        "key": "/authors/OL34184A"
      }
    ],
    "covers": [
      15152634,
      8739161
    ],
    "first_sentence": "Down in the valley there were three farms.",
    "isbn_10": [
      "0140328726"
    ],
    "isbn_13": [
      "9780140328721"
    ],
    "key": "/books/OL7353617M",
    "languages": [
      {
        "key": "/languages/eng"
      }
    ],
    "number_of_pages": 96,
    "publish_date": "October 1, 1988",
    "publishers": [
      "Puffin"
    ],
    "title": "Fantastic Mr. Fox",
    "type": {
      "key": "/type/edition"
    },
    "works": [
      {
        "key": "/works/OL45804W"
      }
    ]
  }
}

Get author works

List the works written by an author, by their Open Library author id. Results are paginated with limit and offset. For an author who was merged into another, lists that author's works.

Inputs

Author IDauthor_idtextRequired
The Open Library author id (for example, OL26320A).
Limitlimitnumber
How many works to return (1–1000). Defaults to 50.From 1 to 1000.
Offsetoffsetnumber
How many works to skip before returning results.At least 0.

Outputs

worksobject
Example output
{
  "works": {
    "entries": [
      {
        "authors": [
          {
            "author": {
              "key": "/authors/OL26320A"
            },
            "type": {
              "key": "/type/author_role"
            }
          }
        ],
        "covers": [
          14625765,
          11658206,
          13120659
        ],
        "description": "Originally published from 1954 through 1956, J.R.R. Tolkien's richly complex series ushered in a new age of epic adventure storytelling.",
        "key": "/works/OL27448W",
        "subjects": [
          "The Lord of the Rings",
          "Fiction",
          "English Fantasy fiction",
          "Fantasy fiction"
        ],
        "title": "The Lord of the Rings",
        "type": {
          "key": "/type/work"
        }
      }
    ],
    "links": {
      "author": "/authors/OL26320A",
      "next": "/authors/OL26320A/works.json?limit=1&offset=1",
      "self": "/authors/OL26320A/works.json?limit=1"
    },
    "size": 346
  }
}

Get books by subject

Fetch the books filed under a subject, for example fantasy or science fiction. The subject name is matched case-insensitively. People, places and times are subjects too, written with a prefix such as person:gandalf or place:london, and a subject key from another result, such as /subjects/person:gandalf, can be passed as it is.

Inputs

SubjectsubjecttextRequired
The subject name (for example, science fiction).
Detailsdetailstrue/false
Set to true to also include related subjects, authors, publishers, and publishing history.
Ebooksebookstrue/false
Set to true to only include works with an e-book available.
Published inpublished_intext
Only include works with an edition published in this year or range of years (for example, 1954 or 1950-1960).
Limitlimitnumber
How many works to return (1–1000). Defaults to 12.From 1 to 1000.
Offsetoffsetnumber
How many works to skip before returning results.At least 0.

Outputs

subjectobject
Example output
{
  "subject": {
    "authors": [
      {
        "count": 4,
        "key": "/authors/OL26320A",
        "name": "J.R.R. Tolkien"
      }
    ],
    "ebook_count": 5,
    "key": "/subjects/hobbits",
    "name": "Hobbits",
    "people": [
      {
        "count": 4,
        "key": "/subjects/person:gandalf",
        "name": "Gandalf"
      }
    ],
    "places": [
      {
        "count": 3,
        "key": "/subjects/place:rivendell",
        "name": "Rivendell"
      }
    ],
    "publishers": [
      {
        "count": 3,
        "key": "/publishers/Allen_&_Unwin",
        "name": "Allen & Unwin"
      }
    ],
    "publishing_history": [
      [
        1937,
        1
      ],
      [
        1938,
        1
      ]
    ],
    "subject_type": "subject",
    "subjects": [
      {
        "count": 4,
        "key": "/subjects/fantasy",
        "name": "Fantasy"
      }
    ],
    "times": [
      {
        "count": 1,
        "key": "/subjects/time:third-age",
        "name": "Third-Age"
      }
    ],
    "work_count": 7,
    "works": [
      {
        "authors": [
          {
            "key": "/authors/OL26320A",
            "name": "J.R.R. Tolkien"
          }
        ],
        "cover_edition_key": "OL51711263M",
        "cover_id": 14627509,
        "edition_count": 481,
        "first_publish_year": 1937,
        "has_fulltext": true,
        "ia": "hobbitortherebac00tolk_2",
        "key": "/works/OL27482W",
        "public_scan": false,
        "title": "The Hobbit"
      }
    ]
  }
}

Search authors

Search Open Library for authors by name. Returns matching authors with their Open Library author ids, which can be used with the Get author and Get author works actions.

Inputs

Search queryquerytextRequired
The author name to search for (for example, mark twain).
Pagepagenumber
Which page of results to return (starts at 1).At least 1.
Limitlimitnumber
How many results per page (1–100). Defaults to 100.From 1 to 100.

Outputs

resultsobject
Example output
{
  "results": {
    "docs": [
      {
        "alternate_names": [
          "J. R. R. Tolkien",
          "John Ronald Reuel Tolkien"
        ],
        "birth_date": "3 January 1892",
        "death_date": "2 September 1973",
        "key": "OL26320A",
        "name": "J.R.R. Tolkien",
        "top_work": "The Hobbit",
        "work_count": 346
      }
    ],
    "numFound": 2,
    "numFoundExact": true,
    "start": 0
  }
}

Search books

Search Open Library for books and works. Provide a general query and/or narrow by title, author, or subject. This is the best way to look up many books at once; prefer it over fetching single books repeatedly. Results are works (a book across all its editions) and are paginated.

Inputs

Search queryquerytext
A general search term matched across title, author, and more (for example, the lord of the rings). Optional if you supply a title, author, or subject instead.
Titletitletext
Restrict the search to this book title.
Authorauthortext
Restrict the search to this author's name.
Subjectsubjecttext
Restrict the search to this subject (for example, fantasy).
Sortsorttext
How to order the results. Defaults to relevance.One of: new (Newest first), old (Oldest first), title (Title (A–Z)), rating (Highest rated), editions (Most editions), random.
Languagelanguagetext
Preferred results language as a two-letter ISO 639-1 code (for example, en or fr).
Fieldsfieldstext
Comma-separated list of fields to return (for example, key,title,author_name,first_publish_year). Use * to fetch all fields. Leave empty for the default set.
Pagepagenumber
Which page of results to return (starts at 1).At least 1.
Limitlimitnumber
How many results per page (1–100). Defaults to 100.From 1 to 100.

Outputs

resultsobject
Example output
{
  "results": {
    "docs": [
      {
        "author_key": [
          "OL26320A"
        ],
        "author_name": [
          "J.R.R. Tolkien"
        ],
        "cover_edition_key": "OL51694024M",
        "cover_i": 14625765,
        "ebook_access": "borrowable",
        "edition_count": 253,
        "first_publish_year": 1954,
        "has_fulltext": true,
        "ia": [
          "lordofrings00tolk_5"
        ],
        "key": "/works/OL27448W",
        "language": [
          "eng",
          "fre",
          "ger"
        ],
        "public_scan_b": false,
        "title": "The Lord of the Rings"
      }
    ],
    "numFound": 1106,
    "numFoundExact": true,
    "num_found": 1106,
    "q": "the lord of the rings",
    "start": 0
  }
}

On this page