bookshop.org APIbookshop.org ↗
Search books, browse categories, get full metadata, discover new releases, and find independent bookstores via the Bookshop.org API.
curl -X GET 'https://api.parse.bot/scraper/7b5ed445-ce1b-402b-becd-82c526676c4f/search_books?limit=5&query=python&offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for books by keyword on Bookshop.org. Supports pagination and optional format filtering. Returns book titles, authors, prices, cover images, and detail URLs.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results to return per page. |
| queryrequired | string | Search keyword (title, author, or ISBN). |
| format | string | Filter by book format. Accepted values: Hardcover, Paperback, Ebook. |
| offset | integer | Offset for pagination. |
{
"type": "object",
"fields": {
"books": "array of book objects with title, subtitle, author, ean, format, price, list_price, currency, cover_url, detail_url, publish_date, series",
"limit": "integer current limit",
"total": "integer total estimated matching results",
"offset": "integer current offset"
},
"sample": {
"data": {
"books": [
{
"ean": "9781098155438",
"price": 4566,
"title": "Think Python",
"author": "Allen B Downey",
"format": "Paperback",
"series": "",
"currency": "usd",
"subtitle": "How to Think Like a Computer Scientist",
"cover_url": "https://images-us.bookshop.org/ingram/9781098155438.jpg?v=214b6cd8e7145247e061b1ff051829a7",
"detail_url": "https://bookshop.org/p/books/think-python-how-to-think-like-a-computer-scientist-allen-b-downey/643329ab27a88e15?ean=9781098155438&next=t",
"list_price": 4899,
"publish_date": "2024-07-02T00:00:00-04:00"
}
],
"limit": 5,
"total": 1000,
"offset": 0
},
"status": "success"
}
}About the bookshop.org API
The Bookshop.org API exposes 5 endpoints covering book search, category browsing, detailed metadata, curated new releases, and local bookstore discovery. The search_books endpoint accepts a keyword query with optional format filtering (Hardcover, Paperback, Ebook) and returns fields including EAN, list price, cover URL, and publish date. Together, the endpoints give developers structured access to Bookshop.org's catalog and partner store network.
Book Search and Category Browsing
The search_books endpoint accepts a required query string (title, author, or ISBN) alongside optional format, limit, and offset parameters. It returns an array of book objects containing title, subtitle, author, ean, format, price, list_price, currency, cover_url, detail_url, and publish_date, plus top-level total and offset fields for pagination. The get_books_by_category endpoint works similarly but takes a category slug — verified values include fiction, nonfiction, romance, fantasy, mystery, sci-fi, ya, kids, and popular-book — and maps them to BISAC subject codes on the Bookshop.org side.
Book Details and New Releases
Passing a detail_url from any search or category result into get_book_details returns a richer record: a metadata object with publisher, publish date, page count, language, type, EAN/UPC, and physical dimensions, plus a full description string. The get_new_books endpoint requires no inputs and returns Bookshop.org's curated new releases list, including title, author, and url per entry alongside a list_name field identifying the list.
Local Bookstore Lookup
The get_bookstore_listings endpoint accepts lat, lng, and radius (in miles) to return nearby independent bookstore partners. Each bookstore record includes name, address, city, state, zip, phone, website, and a profile_url pointing to the store's Bookshop.org page. This makes it straightforward to build store-finder features or geo-targeted bookseller directories without managing your own partner database.
- Build a book discovery app that filters results by format (Hardcover, Paperback, Ebook) using
search_books - Populate a reading recommendations feature by querying genre slugs like
fantasyorromanceviaget_books_by_category - Display full book pages in a reading tracker app using the
metadataanddescriptionfields fromget_book_details - Surface a curated new-releases shelf in a newsletter tool using
get_new_books - Add a 'find a local bookstore' feature to a retail or literary app with
get_bookstore_listingslat/lng queries - Compare Bookshop.org prices against other retailers by extracting
priceandlist_pricefields from search results - Build an ISBN lookup tool that resolves EAN identifiers to full publisher and dimension metadata
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Bookshop.org have an official developer API?+
What does `get_book_details` return beyond what search results include?+
get_book_details endpoint adds a metadata object with publisher, page count, language, physical dimensions, and EAN/UPC, plus a full prose description. Search and category endpoints return lighter records — title, author, ean, format, price, list_price, cover_url, and detail_url — without those extended fields.Does the API support user reviews or ratings for books?+
What category slugs does `get_books_by_category` accept?+
fiction, nonfiction, romance, fantasy, mystery, sci-fi, ya, kids, and popular-book. These map to BISAC subject codes on Bookshop.org's side. Slugs outside this verified set may not return results reliably.Can I retrieve a bookstore's inventory or book orders through `get_bookstore_listings`?+
name, address, city, state, zip, phone, website, and profile_url. Inventory, order history, and sales data are not exposed. You can fork this API on Parse and revise it to add inventory-related endpoints if the underlying data becomes accessible.