AbeBooks API & Scraper
AbeBooks has no single stock list: one ISBN resolves to a ladder of competing offers, each one a different bookshop's physical copy with its own price, shipping cost, grade and hand-typed condition note.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
`search` covers the whole marketplace by keyword, title, author, publisher or ISBN, with the dealers' own filters: signed, first edition, dust jacket, seller country or region, condition band, binding, language, product type (books, maps, manuscripts, art prints, photographs, periodicals, comics, sheet music), price range, publication-year range, minimum seller rating, free shipping, print-on-demand excluded and listed within the last N days. `detail` takes one ISBN and returns every seller offering it, with price and shipping kept apart, the landed total computed, a price summary and the bibliographic record the sellers agree on. `listing` returns one copy in full with every photograph the bookseller took, its size and weight, the synopsis and the shop's founding date and payment methods. `seller` returns a bookshop's profile and a page of its live inventory, `isbn` prices up to six ISBNs in one call, and `filters` lists the exact token every filter accepts. Shipping is quoted for the destination you pass in `ship_to`, and every row says which one it is.
What an AbeBooks field actually contains
Fields that read differently from how they look. Every row was measured against live AbeBooks responses on 2026-10-08.
| Field | What it holds |
|---|---|
| price, shipping_price, total_price | Three separate fields: the book, the shipping to your `ship_to` destination, and the two added up. On one listing in one minute, with the book at USD 2.20 throughout, shipping was 4.69 to the United States, 40.00 to the United Kingdom, 35.00 to Turkey, 45.00 to Japan and 45.00 to Australia. sort=total_price_asc ranks by what you actually pay. |
| currency | One of 12 currencies you choose. A seller's own list currency is not published, so every price is AbeBooks' conversion. JPY, MXN, TRY, ZAR, BRL and INR are answered by the source in US dollars with no warning, so they are rejected with the reason instead. |
| seller.rating_stars, seller.rating_percent | Two different scales. Search and detail publish stars out of five; listing publishes percent positive. One shop read 5 on search and 98 on its listing page. Only the one the surface publishes is returned, with rating_scale saying which, never merged. |
| book_rating | On a listing page this is the WORK's reader rating (Dune: 4.29 over 1,704,954 ratings), not the seller's. It carries an `about` field saying so. |
| isbn13, isbn10, isbn_missing | Kept apart and check-digit verified. Present on 298 of 400 general rows and on 0 of 150 rows across three antiquarian searches: a book printed before about 1970 has no ISBN, and the row says isbn_missing: true. |
| binding, binding_class | binding is the seller's own word ('Hardback', 'Hardcover', 'hardcover' on one hardcover page); binding_class is the class the filter uses. |
| free_shipping | Zero shipping appeared on 79 of 400 rows and is real free shipping, published as 0.0 with free_shipping: true. A missing price is never published as 0: it is price: null with price_missing: true. |
| total_estimate | The source's own match count is an estimate that drifts within the minute (779,501 / 779,502 / 779,505 / 779,499 in four calls), so it is published with total_is_estimate. |
Title, author, publisher and year are typed by each bookseller: one ISBN's 30 offers spelled the publisher 'Ace', 'Ace Books', 'Ace (edition )' and 'Penguin Publishing Group'. detail publishes the consensus and keeps every other spelling in *_variants.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/abebooks/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "dune frank herbert",
"per_page": 20,
"sort": "total_price_asc",
"currency": "USD",
"ship_to": "USA"
}
}{
"ok": true,
"meta": {
"api": "abebooks",
"endpoint": "search",
"mode": "live",
"latency_ms": 1394.1,
"record_count": 20,
"bytes": 671204,
"cache_hit": false,
"total_estimate": 7587,
"total_is_estimate": true,
"page": 1,
"per_page": 20,
"max_page": 90,
"result_window": 1800,
"currency": "USD",
"ship_to": "USA",
"prices_are_converted": true,
"ship_to_country": "U.S.A.",
"filters_applied": {
"query": "dune frank herbert"
},
"rows_are": "one seller's copy each, not one product",
"source_url": "https://www.abebooks.com/servlet/SearchResults?ds=20&rollup=off&dym=off&sortby=17&kn=dune+frank+herbert&sts=t",
"warnings": [
"the source reports about 7,587 matching listings but will only let 1800 of them be paged through; narrow with a filter to reach the rest. The total is its own estimate and drifts between calls (measured 779,501 / 779,502 / 779,505 / 779,499 on one query in four calls)."
],
"upstream_requests": 1,
"charged_credits": 3,
"version": "1.0.0",
"request_id": "c43114073ad44390",
"queue_ms": 1.2,
"fetched_at": "2026-10-14T18:57:17.402Z"
},
"data": {
"offers": [
{
"listing_id": 32518771816,
"seller_sku": "mon0000190710",
"url": "https://www.abebooks.com/Dune-Herbert-Frank-Ace/32518771816/bd",
"copies_available": 1,
"title": "Dune",
"author": "Herbert, Frank",
"authors": [
"Herbert, Frank"
],
"illustrator": null,
"publisher": "Ace",
"publish_year": 2005,
"edition": null,
"binding": "paperback",
"binding_class": "softcover",
"language": "ENG",
"language_name": "English",
"isbn13": "9780441013593",
"isbn10": "0441013597",
"isbn_missing": false,
"product_type": "book",
"condition": "USED_GOOD",
"condition_label": "Good",
"condition_rank": 5,
"seller_condition": "Good",
"seller_note": "The cover shows normal wear. Fast shipping and order satisfaction guaranteed. A portion of your purchase benefits Non-Profit Organizations, First Aid and Fire Stations!",
"jacket": null,
"jacket_condition": null,
"inscription": null,
"price": 1.2,
"price_missing": false,
"shipping_price": 2.49,
"free_shipping": false,
"total_price": 3.69,
"currency": "USD",
"currency_symbol": "$",
"ships_to": "USA",
"ships_to_country": "U.S.A.",
"shipping_options": [
{
"price": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"min_delivery_days": "[trimmed-depth]",
"max_delivery_days": "[trimmed-depth]"
},
{
"price": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"min_delivery_days": "[trimmed-depth]",
"max_delivery_days": "[trimmed-depth]"
}
],
"is_first_edition": false,
"is_signed": false,
"is_inscribed": false,
"has_dust_jacket": false,
"is_rare": false,
"is_print_on_demand": false,
"has_seller_photos": false,
"attribute_codes": [
"BOOK",
"BOOK_CONDITION_GOOD",
"HAS_AWARD"
],
"images": null,
"image_is_sellers_own": null,
"catalog_image": "https://pictures.abebooks.com/isbn/9780441013593-us._SL300_.jpg",
"seller": {
"id": 64705033,
"name": "New Legacy Books",
"city": "Annandale",
"state": "NJ",
"country": "USA",
"country_name": "U.S.A.",
"rating_stars": 5,
"rating_scale": "stars out of 5, as the search surface publishes it",
"storefront_url": "https://www.abebooks.com/New-Legacy-Books-Annandale-NJ-U.S.A/64705033/sf",
"contact_url": "https://www.abebooks.com/servlet/AskBooksellerQuestion?refnum=32518771816&reftype=B",
"associations": null,
"catalogs": null
},
"series": {
"id": "B0CLKVTH4B",
"title": "Dune",
"position": 1,
"books_in_series": 6,
"url": "https://www.abebooks.com/book-search/series/b0clkvth4b/dune/"
},
"listing_params": {
"listing_id": 32518771816
}
},
{
"listing_id": 32517255618,
"seller_sku": "00110619726",
"url": "https://www.abebooks.com/Dune-House-Atreides-Vol-1-Brian/32517255618/bd",
"copies_available": 1,
"title": "Dune: House Atreides Vol. 1",
"author": "Brian Herbert",
"authors": [
"Brian Herbert"
],
"illustrator": "Pramanik, Dev",
"publisher": "Boom! Studios",
"publish_year": 2021,
"edition": null,
"binding": "Hardback",
"binding_class": "hardcover",
"language": "ENG",
"language_name": "English",
"isbn13": "9781684156894",
"isbn10": "1684156890",
"isbn_missing": false,
"product_type": "book",
"condition": "USED_GOOD",
"condition_label": "Good",
"condition_rank": 5,
"seller_condition": "Good",
"seller_note": "THE OFFICIAL PREQUEL TO THE GROUNDBREAKING DUNE. Welcome to the far future on the desert planet Arrakis where Pardot Kynes seeks its secrets. Meanwhile, a violent coup is planned by the son of Emperor Elrood; an eight-year-old slave Duncan Idaho seeks to escape his cruel masters; and a young man named Leto Atreides begins a fateful journey. These unlikely souls will come together as renegades and soon discover that fate has decreed they will change the very shape of history. The New York Times best-selling Dune: House Atreides comes to comics for the first time, adapted & scripted by Brian Her",
"jacket": null,
"jacket_condition": null,
"inscription": null,
"price": 4.18,
"price_missing": false,
"shipping_price": 0,
"free_shipping": true,
"total_price": 4.18,
"currency": "USD",
"currency_symbol": "$",
"ships_to": "USA",
"ships_to_country": "U.S.A.",
"shipping_options": [
{
"price": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"min_delivery_days": "[trimmed-depth]",
"max_delivery_days": "[trimmed-depth]"
},
{
"price": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"min_delivery_days": "[trimmed-depth]",
"max_delivery_days": "[trimmed-depth]"
}
],
"is_first_edition": false,
"is_signed": false,
"is_inscribed": false,
"has_dust_jacket": false,
"is_rare": false,
"is_print_on_demand": false,
"has_seller_photos": false,
"attribute_codes": [
"BOOK",
"BOOK_CONDITION_GOOD",
"HARDCOVER"
],
"images": null,
"image_is_sellers_own": null,
"catalog_image": "https://pictures.abebooks.com/isbn/9781684156894-us._SL300_.jpg",
"seller": {
"id": 52274160,
"name": "World of Books (was SecondSale)",
"city": "Montgomery",
"state": "IL",
"country": "USA",
"country_name": "U.S.A.",
"rating_stars": 5,
"rating_scale": "stars out of 5, as the search surface publishes it",
"storefront_url": "https://www.abebooks.com/World-of-Books-was-SecondSale-Montgomery/52274160/sf",
"contact_url": "https://www.abebooks.com/servlet/AskBooksellerQuestion?refnum=32517255618&reftype=B",
"associations": null,
"catalogs": null
},
"series": {
"id": "B095WF6W4R",
"title": "Dune: House Atreides",
"position": 2,
"books_in_series": 4,
"url": "https://www.abebooks.com/book-search/series/b095wf6w4r/dune-house-atreides/"
},
"listing_params": {
"listing_id": 32517255618
}
},
{
"listing_id": 32450287445,
"seller_sku": "00098424244",
"url": "https://www.abebooks.com/Wicked-Movie-TieIn-Life-Times-Witch/32450287445/bd",
"copies_available": 18,
"title": "Wicked Movie TieIn The Life and Times of the Wicked Witch of the West",
"author": "Gregory Maguire",
"authors": [
"Gregory Maguire"
],
"illustrator": null,
"publisher": "HarperCollins Publishers Inc",
"publish_year": 2025,
"edition": null,
"binding": "Paperback",
"binding_class": "softcover",
"language": "ENG",
"language_name": "English",
"isbn13": "9780063471740",
"isbn10": "0063471744",
"isbn_missing": false,
"product_type": "book",
"condition": "USED_GOOD",
"condition_label": "Good",
"condition_rank": 5,
"seller_condition": "Good",
"seller_note": "$60",
"jacket": null,
"jacket_condition": null,
"inscription": null,
"price": 4.2,
"price_missing": false,
"shipping_price": 0,
"free_shipping": true,
"total_price": 4.2,
"currency": "USD",
"currency_symbol": "$",
"ships_to": "USA",
"ships_to_country": "U.S.A.",
"shipping_options": [
{
"price": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"min_delivery_days": "[trimmed-depth]",
"max_delivery_days": "[trimmed-depth]"
},
{
"price": "[trimmed-depth]",
"currency": "[trimmed-depth]",
"min_delivery_days": "[trimmed-depth]",
"max_delivery_days": "[trimmed-depth]"
}
],
"is_first_edition": false,
"is_signed": false,
"is_inscribed": false,
"has_dust_jacket": false,
"is_rare": false,
"is_print_on_demand": false,
"has_seller_photos": false,
"attribute_codes": [
"BOOK",
"BOOK_CONDITION_GOOD",
"HAS_CHARACTERS"
],
"images": null,
"image_is_sellers_own": null,
"catalog_image": "https://pictures.abebooks.com/isbn/9780063471740-us._SL300_.jpg",
"seller": {
"id": 52274160,
"name": "World of Books (was SecondSale)",
"city": "Montgomery",
"state": "IL",
"country": "USA",
"country_name": "U.S.A.",
"rating_stars": 5,
"rating_scale": "stars out of 5, as the search surface publishes it",
"storefront_url": "https://www.abebooks.com/World-of-Books-was-SecondSale-Montgomery/52274160/sf",
"contact_url": "https://www.abebooks.com/servlet/AskBooksellerQuestion?refnum=32450287445&reftype=B",
"associations": null,
"catalogs": null
},
"series": {
"id": "B074CDX5VZ",
"title": "The Wicked Years",
"position": 1,
"books_in_series": 4,
"url": "https://www.abebooks.com/book-search/series/b074cdx5vz/the-wicked-years/"
},
"listing_params": {
"listing_id": 32450287445
}
}
],
"summary": {
"scope": "the offers on this page only",
"currency": "USD",
"offers_on_page": 20,
"offers_with_a_price": 20,
"min_price": 1.2,
"max_price": 4.99,
"min_total_price": 3.69,
"max_total_price": 4.99,
"cheapest_listing_id": 32518771816,
"cheapest_total_listing_id": 32518771816,
"conditions": {
"USED_VERYGOOD": 4,
"USED_GOOD": 11,
"USED_FAIR": 5
},
"seller_countries": {
"USA": 20
},
"new_offers": 0,
"signed_offers": 0,
"first_edition_offers": 0,
"free_shipping_offers": 19
}
}
}What the AbeBooks API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search the marketplace. Every row is ONE SELLER'S COPY, not a product — the same edition appears once per bookseller offering it, which is the point of this source. Give at least one of `query`, `title`, `author`, `publisher` or `isbn`, then narrow with any of the dealers' own filters. Every filter here was measured against an unfiltered control and every one of them bites. | Pricing teams call search to search the marketplace. | query, title, author, publisher, isbn, ... |
| detail | One ISBN, every seller offering it. This is the flagship call: the complete competing-offer ladder for an edition, with the price and the shipping cost kept apart, the landed total computed, the bibliographic record the sellers agree on, every spelling they disagree about, and a price summary over the page. Measured on ISBN 9780441172719: 129 offers from sellers in 20 countries, book prices from USD 2.20, shipping from 0.00 to 5.50 within the U.S.A. and 31 to 75 to the United Kingdom. | Marketplace operators call detail to get one ISBN, every seller offering it. | isbn, condition, seller_country, seller_region, min_seller_rating, ... |
| listing | One seller's copy in full, by `listing_id`. Adds what the ladder does not carry: every photograph the bookseller took of THIS copy, the item's size and weight, the publisher's own synopsis of the work, the work's reader rating, and the shop's founding date and accepted payment methods. Note that the seller rating on this page is a PERCENTAGE while the search surface publishes STARS out of five (measured: vendor 61505917 reads 98 here and 5 there) — both are returned under their own name and the row says which scale it is. | Catalog enrichment teams call listing to get one seller's copy in full, by `listing_id`. | listing_id, currency, ship_to |
| seller | One bookseller: the profile the marketplace states for the shop plus a page of its live inventory and the shelves it organises that inventory into. Use it to size a dealer, to watch a competitor's stock, or to pull a whole specialist catalogue. Measured: seller 61505917 ('Orion Tech', Kingwood TX, 5 stars) publishes 198,392 listings. | Retail analysts call seller to get one bookseller. | seller_id, query, condition, sort, page, ... |
| isbn | Up to 6 ISBNs in one call, each answered with the market summary a pricing job needs: how many sellers have it, the cheapest book price, the cheapest LANDED price including shipping to your destination, the price range, the condition spread, how many copies are new, signed or first editions, and a link to the cheapest copy. Your order is kept and the ISBNs nobody is offering are named. | Pricing teams call isbn to get up to 6 ISBNs in one call, each answered with the market summary a pricing job needs. | isbns, currency, ship_to |
| filters | The refinement vocabulary this marketplace actually has, with the exact tokens every filter accepts. Read this instead of guessing. It also states, in writing, the two things AbeBooks does NOT publish: there is no subject or category tree (its search returns no facets at all — `contextualFacets` was empty on every query measured, and `subject=` was tried and does not bite), and there are no facet counts, so no filter here can tell you how many listings it will match before you run it. Answered from measurement, with no upstream call, so it costs nothing and never fails. | Marketplace operators call filters to get the refinement vocabulary this marketplace actually has, with the exact tokens every filter a…. | none |
Call search from your stack
curl -X POST https://api.reefapi.com/abebooks/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"dune frank herbert","per_page":20,"sort":"total_price_asc","currency":"USD","ship_to":"USA"}'import requests
r = requests.post(
"https://api.reefapi.com/abebooks/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "dune frank herbert",
"per_page": 20,
"sort": "total_price_asc",
"currency": "USD",
"ship_to": "USA"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/abebooks/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "dune frank herbert",
"per_page": 20,
"sort": "total_price_asc",
"currency": "USD",
"ship_to": "USA"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.abebooks.search with {"query":"dune frank herbert","per_page":20,"sort":"total_price_asc","currency":"USD","ship_to":"USA"}.Who uses this API and why
- Reprice a used-book inventory against the cheapest landed price for each ISBN, to the destination you sell into.
- Find signed, first-edition or dust-jacketed copies of an author's work from sellers in one country.
- Watch a competing bookshop's stock and prices through its seller id.
- Compare what the same edition costs delivered to the US, the UK and Australia.
- Collect the condition notes and photographs booksellers publish for individual rare copies.
Questions developers ask before integrating
Why does the shipping cost change between calls?
AbeBooks quotes shipping per destination and infers the destination from whoever is asking when nothing pins it. This API always pins it with ship_to (default USA) and stamps it on every row and in meta. On one listing the cheapest shipping to the United Kingdom was 31 against a USD 2.20 book.
Which currencies are supported?
Twelve, chosen with currency. Measured on one listing in one minute: USD 2.20, GBP 1.71, EUR 2.02, CAD 3.23, CZK 49.23. Codes the source silently answers in US dollars are rejected.
How many offers can one ISBN have?
Measured on 2026-10-08: ISBN 9780441172719 had 129 offers from sellers in 20 countries, book prices from USD 2.20, shipping from 0.00 to 5.50 within the United States and from 31 to 75 to the United Kingdom.
How deep can I page through a search?
1,800 listings per query. The 1,801st is an empty page at the source, so a page beyond the window is rejected up front with the real max_page. Narrow with a filter to reach deeper stock.
Do the filters really narrow the results?
Each one was measured against an unfiltered control of 779,501 listings: signed 16,568, first edition 37,871, dust jacket 11,485, seller country UK 84,386, language DEU 4,432, hardcover 144,727, maps 444, condition new 450,004, years 1965-1970 9,074, listed within 7 days 4,260.
Is there a category tree or facet counts?
No. AbeBooks publishes neither: its search returned no facets on any measured query and subject= does not narrow the results. filters returns the refinement vocabulary that does exist, and none was invented.
Can I price many ISBNs at once?
isbn takes up to six ISBNs in one call and returns, for each, the offer count, the cheapest book price, the cheapest landed price to your destination, the price range and the condition spread, keeping your order and naming the ISBNs nobody is offering.
How fresh is the data?
Every call reads AbeBooks live; nothing is cached. In the reliability run 84 of 84 calls succeeded with a median of 699 ms.
What is the AbeBooks API?
AbeBooks API is a ReefAPI endpoint group for the world's marketplace for used, rare and out-of-print books as json: every bookseller's copy of an isbn with its own price, its shipping cost to the destination you name, its grade and the seller's condition note, in 12 currencies. It returns live JSON through POST requests under /abebooks/v1.
Is the AbeBooks API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. AbeBooks calls use the same shared credit balance as every other ReefAPI engine.
Do I need an AbeBooks login or account?
No login to AbeBooks is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the AbeBooks data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the AbeBooks API use?
AbeBooks actions currently cost 1-4 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call AbeBooks from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call abebooks actions with the same key, credit pool and JSON envelope used by normal REST requests.