It looks like you're offline.
Open Library logo

Open Library Search API → Diff

Added
Modified
Removed
Not changed
Revision 34 by Drini November 30, 2023
Revision 43 by Mek May 7, 2025
title Open Library Search API Search API
body
0 Open Library provides an experimental API to search. 0 ## [Developer Center](https://openlibrary.org/developers) → [APIs](https://openlibrary.org/developers/api) → Search API
1 1
2 **WARNING: This API is under active development and may change in future.** 2 **URL:** https://openlibrary.org/search.json
3 3
4 # Overview & Features
5 4
6 The Open Library Search API is one of the most convenient and complete ways to retrieve book data on Open Library. The API:
7
8 1. Is able to return data for **multiple** books in a single request/response
9 2. Returns both Work level information about the book, as well as Edition level information (such as)
10 3. Author IDs are returned which you can use to fetch the author's image, if available
11 4. Options are available to return Book Availability along with the response.
12 5. Powerful sorting options are available, such as star ratings, publication date, and number of editions.
13
14 # Endpoint
15
16 The endpoint for this API is:
17 https://openlibrary.org/search.json
18
19 # Examples
20
21 The URL format for API is simple. Take the search URL and add `.json` to the end. Eg:
22
23 * https://openlibrary.org/search.json?q=the+lord+of+the+rings
24 * https://openlibrary.org/search.json?title=the+lord+of+the+rings
25 * https://openlibrary.org/search.json?author=tolkien&sort=new
26 * https://openlibrary.org/search.json?q=the+lord+of+the+rings&page=2
27 * https://openlibrary.org/search/authors.json?q=twain
28
29 ## Using Thing IDs to get Images
30
31 You can use the `olid` (Open Library ID) for authors and books to fetch covers by olid, e.g.:
32 https://covers.openlibrary.org/a/olid/OL23919A-M.jpg
33
34 ## URL Parameters
35 35
... ...
51 51
52            The fields to get back from solr. Use the special value <code>*</code> to get all fields (although be prepared for a very large response!). 22            The <a href="https://github.com/internetarchive/openlibrary/blob/b4afa14b0981ae1785c26c71908af99b879fa975/openlibrary/plugins/worksearch/schemes/works.py#L38-L91">fields</a> to get back from solr. The special value <code>*</code> may be provided to fetch all fields (however this will result in an expensive response, please use sparingly).
53             <br /> 23             <br />
54            To fetch availability data from archive.org, add the special value, <code>availability</code>. Example: <a href="/search.json?q=harry%20potter&fields=*,availability&limit=1">/search.json?q=harry%20potter&fields=*,availability&limit=1</a>. This will fetch the availability data of the first item in the `ia` field. 24            To fetch availability data from archive.org, add the special value, <code>availability</code>. Example: <a href="/search.json?q=harry%20potter&fields=*,availability&limit=1">/search.json?q=harry%20potter&fields=*,availability&limit=1</a>. This will fetch the availability data of the first item in the `ia` field.
55        </tr> 25        </tr>
56        <tr> 26        <tr>
57            <th><code>sort<code></th> 27            <th><code>sort<code></th>
58            <td>You can sort the results by various facets such as <code>new</code>, <code>old</code>, <code>random</code>, or <code>key</code> (which sorts as a string, not as the number stored in the string). For a complete list of sorts facets look <a href="https://github.com/internetarchive/openlibrary/blob/abd73aa37ea27b4e7d70f521bfd1e30b7dc1dc6e/openlibrary/plugins/worksearch/schemes/works.py#L113-L132">here</a> (this link goes to a specific commit, be sure to look at the latest one for changes). The default is to sort by relevance. 28            <td>You can sort the results by various facets such as <code>new</code>, <code>old</code>, <code>random</code>, or <code>key</code> (which sorts as a string, not as the number stored in the string). For a complete list of sorts facets look <a href="https://github.com/internetarchive/openlibrary/blob/b4afa14b0981ae1785c26c71908af99b879fa975/openlibrary/plugins/worksearch/schemes/works.py#L119-L153">here</a> (this link goes to a specific commit, be sure to look at the latest one for changes). The default is to sort by relevance.
59        </tr> 59        </tr>
... ...
69            <th><code>page</code> / <code>limit<code></th> 69            <th><code>page</code> / <code>limit<code></th>
70            <td>Use for pagination, with <code>limit</code> corresponding to the page size. Note <code>page</page> starts at 1.</td> 40            <td>Use for pagination, with <code>limit</code> corresponding to the page size. Note <code>page</code> starts at 1.</td>
71        </tr> 41        </tr>
72 </table> 42 </table>
43
44
45 ## Overview
46
47 The Open Library Search API is one of the most convenient and complete ways to retrieve book data on Open Library. The API:
48
49 1. Is able to return data for **multiple** books in a single request/response
50 2. Returns both Work level information about the book (like author info, first publish year, etc), as well as Edition level information (like title, identifiers, covers, etc)
51 3. Author IDs are returned which you can use to fetch the author's image, if available
52 4. Options are available to return Book Availability along with the response.
53 5. Powerful sorting options are available, such as star ratings, publication date, and number of editions.
54
55 ## Examples
56
57 The URL format for API is simple. Take the search URL and add `.json` to the end. Eg:
58
59 * https://openlibrary.org/search.json?q=the+lord+of+the+rings
60 * https://openlibrary.org/search.json?title=the+lord+of+the+rings
61 * https://openlibrary.org/search.json?author=tolkien&sort=new
62 * https://openlibrary.org/search.json?q=the+lord+of+the+rings&page=2
63 * https://openlibrary.org/search/authors.json?q=twain
64
65 ## Using Thing IDs to get Images
66
67 You can use the `olid` (Open Library ID) for authors and books to fetch covers by olid, e.g.:
68 https://covers.openlibrary.org/a/olid/OL23919A-M.jpg
69
70
73 73
... ...
111 The fields in the doc are described by Solr schema which can be found here: 111 The fields in the doc are described by Solr schema which can be found here:
112 https://github.com/internetarchive/openlibrary/blob/00a05558c6d8e7bb770f4f2684664ad048531dac/conf/solr/conf/managed-schema.xml#L131-L225 110 https://github.com/internetarchive/openlibrary/blob/b4afa14b0981ae1785c26c71908af99b879fa975/openlibrary/plugins/worksearch/schemes/works.py#L38-L91
113 113
... ...
192 - You can see the exact boosting logic in the code here: https://github.com/internetarchive/openlibrary/blob/dc49fddb78a3cb25138922790ddd6a5dd2b5741c/openlibrary/plugins/worksearch/schemes/works.py#L439-L448 192 - You can see the exact boosting logic in the code here: https://github.com/internetarchive/openlibrary/blob/dc49fddb78a3cb25138922790ddd6a5dd2b5741c/openlibrary/plugins/worksearch/schemes/works.py#L439-L448