AbeBooks APIabebooks.com ↗
Search AbeBooks listings by title, author, ISBN, or keyword. Retrieve prices, condition, publisher, and seller details across new and used book offers.
What is the AbeBooks API?
The AbeBooks API exposes 6 endpoints for querying the AbeBooks marketplace, covering book search, listing detail retrieval, and seller lookup. The search_books endpoint accepts author, title, ISBN, or free-text queries and returns up to 20 listings per page, each with price, condition, seller name and location, seller rating, and shipping info. A dedicated get_book_listing endpoint resolves a single listing by its numeric ID with full bibliographic detail.
curl -X GET 'https://api.parse.bot/scraper/17b3e45e-0449-451e-8141-b46d6318c0b9/search_books?page=1&sort=1&query=python+programming&condition=New' \ -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 abebooks-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.
"""AbeBooks SDK — search books, get details, and find sellers."""
from parse_apis.AbeBooks_API import AbeBooks, Sort, Condition, ListingNotFound
client = AbeBooks()
# Search for books sorted by lowest price
for book in client.book_summaries.search(query="python programming", sort=Sort.LOWEST_PRICE, limit=3):
print(book.title, book.price, book.seller_location)
# Drill into first result for full details (ISBNs, publisher)
summary = client.book_summaries.search(query="tolkien", limit=1).first()
if summary:
detail = summary.details()
print(detail.title, detail.isbn13, detail.publisher, detail.condition)
# Direct lookup by listing ID with error handling
try:
listing = client.books.get(listing_id="32048682708")
print(listing.title, listing.author, listing.price)
except ListingNotFound as exc:
print(f"Listing gone: {exc.listing_id}")
# Search for new offers only
for book in client.book_summaries.new_offers(query="data science", limit=3):
print(book.title, book.condition, book.shipping)
# Find sellers by name
for seller in client.sellers.search(name="Raptis", limit=3):
print(seller.name, seller.url, seller.location)
print("exercised: book_summaries.search / details / books.get / new_offers / sellers.search")
Full-text search over AbeBooks listings by author, title, ISBN, or keyword. Supports condition filtering and sort order. Returns up to 20 results per page. Paginates via integer page counter.
| Param | Type | Description |
|---|---|---|
| isbn | string | Book ISBN (ISBN-10 or ISBN-13). |
| page | integer | Page number for pagination. |
| sort | integer | Sort order. |
| query | string | General search keyword. |
| title | string | Book title. |
| author | string | Author name. |
| condition | string | Book condition filter. |
{
"type": "object",
"fields": {
"books": "array of book listing objects with listing_id, title, author, price, condition, seller (name, location, rating), shipping, and url"
},
"sample": {
"data": {
"books": [
{
"url": "https://www.abebooks.com/Python-Programming-Beginners-Illustrated-Guide-Starting/32048682708/bd",
"price": "US$ 1,478.63",
"title": "Python Programming for Beginners: An Illustrated Guide to Starting your Programming Journey",
"author": "Wilson, Kevin",
"seller": {
"name": "Books From California",
"rating": "(4-star seller)Seller rating 4 out of 5 stars",
"location": "Simi Valley, CA, U.S.A."
},
"shipping": "US$ 4.99 shipping",
"condition": "Used - Softcover",
"listing_id": "32048682708"
}
]
},
"status": "success"
}
}About the AbeBooks API
Search and Filter Book Listings
The search_books endpoint is the primary entry point. It accepts query, author, title, and isbn params — at least one is required. Results can be filtered by condition (New or Used) and sorted by relevance, lowest price, or highest price using the sort integer param. Pagination is handled via the page param. Each result object includes listing_id, title, author, price, condition, seller (with name, location, and rating), shipping, and url. The convenience endpoints get_new_offers and get_used_offers mirror this behavior but hard-filter to a single condition, requiring only a query string.
ISBN Lookup and Listing Detail
search_by_isbn accepts either ISBN-10 or ISBN-13 and returns all active listings matching that edition. This is useful when you have a specific edition identifier and want to compare all available copies. For a known listing, get_book_listing accepts a listing_id (a numeric string from search_books results) and returns a richer single-record response: isbn10, isbn13, publisher, condition, price, seller object with name and location, and the listing_id itself. Fields like publisher and ISBN variants are only reliably present in this detail endpoint, not in search result arrays.
Seller Discovery
The search_sellers endpoint accepts a seller name keyword and returns an array of seller objects, each containing name, url, and location. This supports building seller directories or resolving seller identity from a name fragment seen in listing results. It does not return seller rating or inventory count directly — those signals appear on individual listing objects returned by the search endpoints.
The AbeBooks API is a managed, monitored endpoint for abebooks.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when abebooks.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 abebooks.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?+
- Compare prices across all used copies of a specific ISBN before purchasing
- Monitor new-condition listing prices for a book title over time using get_new_offers
- Enrich a book database with publisher and ISBN-10/13 data via get_book_listing
- Build a seller lookup tool that maps seller names to AbeBooks storefront URLs
- Aggregate seller location data from search results to analyze geographic distribution of listings
- Find all active listings for a rare edition by querying search_by_isbn with an ISBN-13
- Filter search results to used condition only and sort by lowest price to surface deals
| 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 AbeBooks have an official developer API?+
What does get_book_listing return that search_books does not?+
get_book_listing endpoint returns isbn10, isbn13, and publisher fields, which are not included in the listing objects returned by search endpoints. It resolves a single listing by its listing_id and is the reliable path to full bibliographic metadata for a specific copy.Does the API return seller inventory counts or full seller profiles?+
search_sellers endpoint returns seller name, url, and location. Individual listing objects include seller rating, but inventory counts, feedback history, and full seller profile pages are not exposed. You can fork this API on Parse and revise it to add a seller detail endpoint covering those fields.How does pagination work, and how many results are returned per page?+
page integer parameter to retrieve subsequent pages. There is no explicit total-count field in the response, so iteration should stop when a page returns fewer than 20 results.Does the API cover AbeBooks listings outside the US, such as UK or European sellers?+
location is included in listing results, so listings from non-US sellers do appear in results. However, there is no region-scoped search parameter to restrict results to a specific country or currency. You can fork this API on Parse and revise it to add region filtering if that constraint matters for your use case.