Some of these tips are demonstrated in this instructional video.
-
title:flammable will find any books with "flammable" in the title field
-
author:solnit will find authors with "solnit" in their name
-
subject:tennis rules will find any books about "tennis" AND "rules"
-
place:lisbon will find books about Lisbon
-
person:rosa parks will look for people with rosa AND parks in their name
-
language:spa will find any books with at least one edition in Spanish (most other language codes use the first three letters of the language except for Japanese which uses
jpn
There is alsomul
for multiple languages andund
for undetermined)
-
publisher:harper will looks for any books published by a publisher with "harper" in their name. (Publisher has never been a controlled field in the library world, so you can see we have a ton of variants of this famous publisher in the search facets.)
-
publish_year:[* TO 1800]
will find anything published before and up to the year 1800.
You can also blend them together:
-
subject:travel place:istanbul will look for books about travel in Istanbul.
- subject:dogs subject:("Juvenile fiction" OR "Juvenile literature") will look for children's books about dogs.
Or use date ranges (there's no UI for this yet):
- first_publish_year:[1200 TO 1400] will show you all the books published between 1200 & 1400 .
You can also search the special field that has everything dumped into it without any stemming:
Other interesting searches, mainly useful for librarians looking for data
-
subject:horror AND edition_count:1 - Find horror works with exactly 1 edition
- subject:horror AND NOT author_key:* - Find horror works without an author
Classifications
You can also search by classification; this feature was introduced recently (Aug 2020), so there might still be some kinks to work out, and there might be changes to how things work. It currently support both Dewey Decimal and Library of Congress Classifications. Found an issue? Let us know by creating an issue on GitHub!
Dewey Decimal Classification (DDC)
See the index of DDC classes
-
ddc:200* - matches e.g.
200
,200.25
,200.21 B
, etc.
-
ddc:2* - matches e.g.
200
,234
,200.25
, etc. It does not match e.g.002.5
-
ddc:[150 TO 160] - (inclusive) matches e.g.
150
,150.5
,155
160
,160.51
, etc.
Library of Congress Classification (LCC)
See the index of LCC classes
-
lcc:A* - matches e.g.
A123
,AC123.5C12
,A
, etc.
-
lcc:B--* - matches e.g.
B123
,B3
,B
, etc. It does not match e.g.BC123
-
lcc:[B TO C] - (inclusive) matches e.g.
B
,B123
,C
, etc. It does not match e.g.C1
Author Search
- birth_date:1973 will find any authors born in 1973
Subject Search
There are multiple ways to search for books by a subject. The primary way is to use the subject:
field which will do a fuzzy search for any books with subjects containing your search (e.g. subject:happy
would match a subject of "happy feet"). This is also the case for place
, time
, and person
.
An exact subject match can be performed using the subject_key:
field. Presently, this value needs to be normalized such that spaces and special characters like /
become underscores and the entire term becomes lowercased. For instance (a subject like "Metropolitan Museum of Art (New York, N.Y.)" becomes metropolitan_museum_of_art_(new_york_n.y.)
). Here's the code behind the scenes for those who need more details. Note that _key
can be added to place
, time
, and person
to achieve the same exact matching capabilities.
- place:rome will find you subjects about Rome that relate to the city; the place. Other types are time & person.
To do a negative search on Open Library, you can use the -subject_key operator. For example, to find all the books that show up for the word "solr" that don't have the subject "Apache Solr", you would use the following search query:
https://openlibrary.org/search?q=solr+-subject_key%3A%22apache_solr%22&mode=everything
Note that the subject key is the subject name with some normalization applied (lower case, spaces converted to underscores).
Here is an example of a negative search in action:
https://openlibrary.org/search?q=machine+learning+-subject_key%3A%22python%22&mode=everything
This search will return all the books about machine learning that do not have the subject "Python".
Negative searches can be useful for finding books on a specific topic that are not limited to a particular programming language or framework. They can also be used to find books that are more general in nature.
Perform an exact search for subject using the subject_key
field, e.g:
subject_key:fantasy
Search API
Are you interested in getting back JSON data? Just change /search?
to /search.json?
in your url! Learn more about the Open Library Search API.
Filter by Availability
One may use the ebook_access
field to filter for books that are readable, whose values are no_ebook
, printdisabled
only, borrowable
, and public
.
ebook_access:no_ebook AND -ia:*
will let you search a range spanning anything borrowable or public.
If you're interested in finding highly requested books that the Internet Archive doesn't have:
ebook_access:no_ebook AND -ia:* AND readinglog_count:[25 TO *]
You can try it here
FAQs
Q: Can I limit my search to books with a single word title? For example, books with the title "hands"
A: It is not possible to do this currently but you could try excluding some words from the title and using alphabetical search (see this alphabetical search issue) like this.
History
- Created April 14, 2010
- 59 revisions
January 18, 2025 | Edited by Tauriel063 | Edited without comment. |
March 27, 2024 | Edited by Drini | Edited without comment. |
October 25, 2023 | Edited by Mek | Edited without comment. |
October 19, 2023 | Edited by Mek | Edited without comment. |
April 14, 2010 | Created by George | New page for Edward to list the various syntax bits |