Open Library Authors

Education API · Works globally · Author bibliographies · Part of Open Library

TL;DR

Open Library Authors provides detailed information about authors in the Open Library catalog. Given an author ID (like OL23919A for Isaac Asimov, or OL34184A for J.K. Rowling), it returns their name, birth/death dates, biography, personal website, Wikipedia link, and a list of their works. The endpoint also supports fetching an author's complete bibliography via /works.json, with pagination and sorting. This is the API to use when you want to build an author profile page after discovering their books through the Search or Subjects APIs.

Quick start: https://openlibrary.org/authors/OL23919A.json

No API key needed — just make a request!

How to Use This API

1. Get Author Profile

https://openlibrary.org/authors/OL23919A.json

Returns name, personal name, birth/death dates, bio, Wikipedia link, website, and photo IDs.

2. Get Author Works (Bibliography)

https://openlibrary.org/authors/OL23919A/works.json?limit=5

Returns a paginated list of the author's works sorted by publication date. Supports limit and offset parameters.

3. Search for an Author ID by Name

https://openlibrary.org/search.json?author=tolkien

Use the search API to find the author key (author_key field in results), then use that key with the authors endpoint.

4. Get Author with Their Photo

https://openlibrary.org/authors/OL34184A.json

Author photos are returned as numeric IDs in the photos array. Use https://covers.openlibrary.org/a/id/{ID}-L.jpg for the photo URL.

5. Response Format

{
  "key": "/authors/OL23919A",
  "name": "Isaac Asimov",
  "birth_date": "2 January 1920",
  "death_date": "6 April 1992",
  "bio": {"type": "/type/text", "value": "Isaac Asimov was a Russian-born..."},
  "personal_name": "Isaac Asimov",
  "website": "http://www.asimovonline.com",
  "wikipedia": "https://en.wikipedia.org/wiki/Isaac_Asimov",
  "photos": [12345, 67890],
  "works": [{"key": "/works/OL1W", "title": "Foundation"}]
}

6. JavaScript — Author Info

fetch('https://openlibrary.org/authors/OL23919A.json')
  .then(r => r.json())
  .then(a => {
    console.log(`Name: ${a.name}`);
    console.log(`Born: ${a.birth_date || 'Unknown'} — Died: ${a.death_date || 'Present'}`);
    console.log(`Bio: ${a.bio?.value || a.bio || 'No biography available'}`);
    if (a.wikipedia) console.log(`Wikipedia: ${a.wikipedia}`);
  });

7. Python — Author Bibliography

import requests

author_key = 'OL23919A'
resp = requests.get(f'https://openlibrary.org/authors/{author_key}.json')
author = resp.json()
print(f"Author: {author['name']}")

resp = requests.get(
    f'https://openlibrary.org/authors/{author_key}/works.json',
    params={'limit': 10}
)
for work in resp.json()['entries']:
    year = work.get('first_publish_year', 'N/A')
    title = work['title']
    print(f"  \u2022 {title} ({year})")

8. Python — Full Author Search + Profile

import requests

# Step 1: Search for the author
search = requests.get(
    'https://openlibrary.org/search.json',
    params={'author': 'ursula k le guin', 'limit': 1}
).json()
author_key = search['docs'][0]['author_key'][0]
print(f"Found author key: {author_key}")

# Step 2: Get full profile
profile = requests.get(
    f'https://openlibrary.org/authors/{author_key}.json'
).json()
print(f"Name: {profile['name']}")
print(f"Born: {profile.get('birth_date', 'N/A')}")
Try it: https://openlibrary.org/authors/OL23919A.json

Frequently Asked Questions

How do I find an author's Open Library ID?
Search via /search.json?author=NAME with the author's name. Results include an author_key field containing IDs like OL23919A. You can also browse author pages on the Open Library website.
What data is available about an author?
Name, personal name (full name), birth/death dates, biography (text, may include HTML), personal website URL, Wikipedia link, photo IDs, and a list of their works with keys for further lookup.
How do I get an author's photo?
The photos array contains numeric IDs. Construct the URL as: https://covers.openlibrary.org/a/id/{ID}-L.jpg (L=large, M=medium, S=small). If no photos exist, the array is empty.
Are author IDs stable and consistent?
Yes, Open Library OLIDs are stable persistent identifiers. The same author always has the same ID. They never change, making them reliable for database lookups and caching.
Can I get works sorted by publication date?
The /works.json endpoint returns works sorted chronologically by default. You can paginate with limit (default 50, max 1000) and offset for large bibliographies.
Is there a rate limit?
Open Library has no documented rate limit, but please use responsibly. For production apps, cache author data and works lists locally.

What You Can Build