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')}")
https://openlibrary.org/authors/OL23919A.json
Frequently Asked Questions
- How do I find an author's Open Library ID?
- Search via
/search.json?author=NAMEwith the author's name. Results include anauthor_keyfield containing IDs likeOL23919A. 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
photosarray 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.jsonendpoint returns works sorted chronologically by default. You can paginate withlimit(default 50, max 1000) andoffsetfor 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
- Author profile pages with biography, photo, and complete bibliography
- Literature discovery app — explore authors by birth era, find contemporaries
- Reading tracker showing all works by an author in publication order
- Author comparison tool — side-by-side bios, lifetimes, and output volume
- Book club organizer — pick an author and list their works for members to choose from