BooksRun APIbooksrun.com ↗
Search BooksRun books, get instant buyback quotes, browse categories and bestsellers, and retrieve condition guidelines via a clean REST API.
What is the BooksRun API?
The BooksRun API provides 6 endpoints covering book search, detail lookup, buyback pricing, category browsing, and condition standards from BooksRun.com. The get_buyback_quote endpoint returns a real-time quoted price for any ISBN-13, along with the current cart total and all queued items. Other endpoints expose buy/rent pricing arrays, reader reviews, structured metadata, and a full bestseller list — all in a single JSON response per call.
curl -X GET 'https://api.parse.bot/scraper/16321d63-c5f9-47af-8bed-4c75eb38cb06/search_books?page=1&query=python+programming' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace booksrun-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.booksrun_api import BooksRun, BookSummary, Book, BuybackQuote, ConditionGuide, Category
client = BooksRun()
# Search for books by keyword
for book in client.books.search(query="python programming"):
print(book.title, book.author, book.price_from)
# Get full details for a specific book by slug
details = client.books.get(isbn_slug="9781718502703-python-crash-course-3rd-edition")
print(details.title, details.metadata.publisher, details.metadata.gtin13)
print(details.metadata.aggregate_rating.rating_value, details.metadata.aggregate_rating.review_count)
# Browse a category using the Category enum
for result in client.books.browse(category_slug=Category.FICTION):
full = result.details()
print(full.title, full.prices.sell)
for author in full.metadata.author:
print(author.name, author.url)
buyback = result.quote()
print(buyback.buyback_price, buyback.total_quote)
for item in buyback.items_in_cart:
print(item.title, item.price, item.isbn)
break
# Get best sellers
for seller in client.books.best_sellers():
print(seller.title, seller.isbn_slug, seller.url)
# Retrieve the condition guide
guide = client.conditionguides.get()
print(guide.html, guide.text)
Full-text search over the BooksRun catalog by title, author, or keyword. Returns a paginated list of matching books with basic info. Each result includes isbn_slug for detail lookup via get_book_details.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| queryrequired | string | Search keyword (title, author, or ISBN) |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"books": "array of BookSummary objects with title, author, price_from, url, image_url, isbn_slug",
"query": "string, the search query used"
},
"sample": {
"data": {
"page": 1,
"books": [
{
"url": "https://booksrun.com/9781718502703-python-crash-course-3rd-edition",
"title": "Python Crash Course, 3rd Edition: A Hands-On, Project-Based Introduction to Programming",
"author": "Eric Matthes",
"image_url": "https://booksrun.com/image-loader/288/https:__m.media-amazon.com_images_I_519mXag83nL._SL160_.jpg",
"isbn_slug": "9781718502703-python-crash-course-3rd-edition",
"price_from": "$6.49"
}
],
"query": "python programming"
},
"status": "success"
}
}About the BooksRun API
Search and Browse
The search_books endpoint accepts a query string (title, author, or ISBN) and returns a paginated array of book objects, each carrying title, author, price_from, image_url, and an isbn_slug you can pass directly into get_book_details. Pagination is controlled via the optional page integer parameter. The browse_category endpoint works the same way, using a category_slug such as fiction, textbooks, or non-fiction to return the same book-object shape for an entire category. The get_best_sellers endpoint requires no parameters and returns BooksRun's current homepage bestseller list.
Book Detail and Pricing
get_book_details requires the full isbn_slug in the format <isbn13>-<title-slug> (e.g. 9781577314806-the-power-of-now-a-guide-to-spiritual-enlightenment). The response includes a prices object with buy and rent arrays of offers and a sell value, a metadata object with author, publisher, ISBN, and description from structured data, reviews as an array of reader review objects, and marketplace_offers for third-party listings.
Buyback Quotes
get_buyback_quote accepts an ISBN-13 and returns the buyback_price for that specific book, plus a total_quote reflecting all items in the temporary session cart and an items_in_cart array with title, price, and isbn for each item. If BooksRun does not accept the book, buyback_price is returned as null. This makes it straightforward to batch-check multiple ISBNs and accumulate a cart total.
Condition Guide
get_buyback_condition_guide returns the full condition guide that BooksRun uses to evaluate book quality, available as both an html string and a plain text string. This content describes acceptance criteria and condition tiers (e.g. Good, Acceptable) that directly affect which buyback_price a given copy qualifies for.
The BooksRun API is a managed, monitored endpoint for booksrun.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when booksrun.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official booksrun.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a textbook buyback comparison tool using
get_buyback_quoteacross multiple ISBN-13s to find the best resale value. - Populate a book price-tracking app with
get_book_detailsbuy and rent price arrays to alert users when costs drop. - Aggregate bestseller lists from
get_best_sellersto track trending titles on BooksRun over time. - Power a library or classroom catalog search using
search_bookswith author or ISBN queries. - Show students condition-grading criteria inline by embedding the plain
textfromget_buyback_condition_guide. - Index an entire category's inventory using
browse_categorywith thetextbooksslug and pagination for bulk ISBN collection. - Display marketplace third-party offers alongside BooksRun's own prices using
marketplace_offersfromget_book_details.
| 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 | 100 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 BooksRun have an official developer API?+
What does `get_book_details` return for pricing, and how does it differ from `search_books`?+
search_books returns a single price_from value per book — the lowest listed price. get_book_details returns the full prices object, which breaks out separate buy and rent arrays with individual offer details, plus a sell value and marketplace_offers array. You need the full isbn_slug (ISBN-13 + title slug) to call get_book_details.What happens when BooksRun won't buy back a specific ISBN?+
get_buyback_quote returns buyback_price as null. The items_in_cart array and total_quote still reflect any other ISBNs that were already quoted in the same session.Does the API return seller ratings or individual marketplace seller profiles?+
marketplace_offers array from get_book_details returns offer-level data, but individual seller profiles, ratings, and seller history are not exposed as separate endpoint responses. You can fork this API on Parse and revise it to add a dedicated seller-detail endpoint.Is there an endpoint for looking up books by ISBN directly, without constructing a full slug?+
search_books endpoint accepts an ISBN as the query string and will return matching results including the isbn_slug field, which you then pass to get_book_details. There is no standalone ISBN-only lookup endpoint that bypasses the slug format. You can fork the API on Parse and revise it to add a direct ISBN lookup endpoint that handles slug construction internally.