Discover/zvab.com API
live

zvab.com APIwww.zvab.com

Search ZVAB.com by ISBN and retrieve used/antiquarian book listings with pricing, condition, seller details, and shipping rates via a simple REST API.

Endpoint health
monitored
get_listing
search_by_isbn
0/2 passing latest checkself-healing
Endpoints
2
Updated
1h ago
Try it
ISBN-10 (10 digits) or ISBN-13 (13 digits). Hyphens are stripped automatically.
Page number for pagination. Each page returns up to 20 listings.
api.parse.bot/scraper/ebfd6eaa-6457-4cc9-8aa0-8a96dd325a14/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ebfd6eaa-6457-4cc9-8aa0-8a96dd325a14/search_by_isbn?isbn=9783518368541&page=1' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 zvab-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.

"""Walkthrough: ZVAB API — search antiquarian books by ISBN and inspect listings."""
from parse_apis.ZVAB_Book_Listings_API import Zvab, ListingNotFound

client = Zvab()

# Search for all listings of a specific ISBN (Homo Faber by Max Frisch)
for listing in client.search_results.search(isbn="9783518368541", limit=5):
    print(listing.title, listing.author, f"{listing.price} {listing.currency}")
    print(f"  Seller: {listing.seller_name}, {listing.seller_location}")
    print(f"  Condition: {listing.condition}, Binding: {listing.binding}")

# Drill-down: get full detail for one listing
summary = client.search_results.search(isbn="9783518368541", limit=1).first()
if summary:
    detail = summary.details()
    print(f"\nFull detail for: {detail.title}")
    print(f"  ISBN-13: {detail.isbn13}, ISBN-10: {detail.isbn10}")
    print(f"  Publisher: {detail.publisher}, Year: {detail.year}")
    print(f"  Description: {detail.description[:120]}")
    for rate in detail.shipping_rates:
        print(f"  Shipping to {rate.destination}: {rate.standard_cost} {rate.standard_currency}")

# Direct lookup by listing ID with error handling
try:
    book = client.listings.get(listing_id="32374088414")
    print(f"\nDirect lookup: {book.title} by {book.author} — {book.price} {book.currency}")
except ListingNotFound as exc:
    print(f"Listing not found: {exc}")

print("\nexercised: search_results.search / listing.details / listings.get")
All endpoints · 2 totalmissing one? ·

Search ZVAB for all active used/antiquarian book listings matching an ISBN-10 or ISBN-13. Returns paginated results (20 per page) sorted by relevance. Each listing includes title, author, publisher, year, price, condition, binding, seller details, and shipping cost to the configured destination. Results are auto-iterated across pages.

Input
ParamTypeDescription
isbnrequiredstringISBN-10 (10 digits) or ISBN-13 (13 digits). Hyphens are stripped automatically.
pageintegerPage number for pagination. Each page returns up to 20 listings.
Response
{
  "type": "object",
  "fields": {
    "isbn": "searched ISBN string",
    "page": "integer current page number",
    "listings": "array of listing summary objects with listing_id, title, author, publisher, year, isbn13, isbn10, price, currency, condition, binding, seller_name, seller_location, shipping, description, listing_url",
    "total_pages": "integer total number of pages",
    "total_results": "integer total number of matching listings"
  },
  "sample": {
    "data": {
      "isbn": "9783518368541",
      "page": 1,
      "listings": [
        {
          "year": "1900",
          "price": 4.46,
          "title": "Homo Faber",
          "author": "max-frisch",
          "isbn10": "3518368540",
          "isbn13": "9783518368541",
          "binding": "Softcover",
          "currency": "EUR",
          "shipping": {
            "cost": 0,
            "text": "Versand nach gratis",
            "currency": "EUR"
          },
          "condition": "Gebraucht - Ausreichend",
          "publisher": "Suhrkamp Verlag (edition )",
          "listing_id": "32374088414",
          "description": "Paperback. Zustand: Fair. The item might be beaten up but readable.",
          "listing_url": "https://www.zvab.com/Homo-Faber-max-frisch-Suhrkamp-Verlag-edition/32374088414/bd",
          "seller_name": "BooksRun",
          "seller_location": "Philadelphia, PA, USA"
        }
      ],
      "total_pages": 6,
      "total_results": 102
    },
    "status": "success"
  }
}

About the zvab.com API

The ZVAB API gives developers access to used and antiquarian book listings from ZVAB.com (Zentrales Verzeichnis Antiquarischer Bücher) across 2 endpoints. Use search_by_isbn to retrieve paginated listings matching any ISBN-10 or ISBN-13, with each result including price, condition, binding, publisher, and seller details. A second endpoint, get_listing, returns the full detail record for any individual listing by its numeric ID or URL.

Endpoints

The search_by_isbn endpoint accepts an ISBN-10 or ISBN-13 (hyphens are stripped automatically) and returns paginated results with up to 20 listings per page. The response includes total_results and total_pages for iterating the full result set. Each listing object in the listings array carries listing_id, title, author, publisher, year, isbn13, isbn10, price, currency, condition, and binding.

Listing Detail

Once you have a listing_id from search results, pass it to get_listing to retrieve the complete record. The detail response adds seller name and location, a full condition description, and per-destination shipping rates — fields that the search summary omits. You can also pass a full ZVAB listing URL directly as the listing_id parameter if you already have one on hand.

Data Coverage

All prices are returned as a numeric price field alongside a currency code, which is typically EUR given ZVAB's German-market focus. The condition field is a free-text string as entered by the seller, so values vary across listings. The binding field is normalised to values such as Softcover or Hardcover. Pagination is controlled by the page integer parameter on search_by_isbn; if page exceeds total_pages, an empty listings array is returned.

Reliability & maintenance

The zvab.com API is a managed, monitored endpoint for www.zvab.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when www.zvab.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 www.zvab.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.

Latest check
0/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Compare used book prices across sellers on ZVAB for a given ISBN before purchasing
  • Build a price-tracking tool that monitors listing prices and condition over time by ISBN
  • Aggregate seller location and shipping rates to estimate landed cost for international buyers
  • Check publication year and publisher fields to verify edition details for academic or library procurement
  • Enrich an existing book catalogue with secondhand market pricing from ZVAB listings
  • Alert users when a specific ISBN drops below a target price by polling search results
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does ZVAB have an official developer API?+
ZVAB does not publish a standalone public developer API. It is part of the AbeBooks group, which does offer an affiliate and partner program, but direct programmatic access to ZVAB listing data is not available through an official endpoint.
What does `get_listing` return that `search_by_isbn` does not?+
search_by_isbn returns summary fields per listing: title, author, publisher, year, ISBNs, price, currency, condition, and binding. get_listing adds the seller's name and geographic location, a full seller-written description, and itemised shipping rates to different destinations — detail that is not included in the search summary objects.
Does the API cover seller reviews or ratings?+
Not currently. The API returns seller name and location via get_listing, but seller ratings or review counts are not included in the response. You can fork the API on Parse and revise it to add a seller-review endpoint if that data is needed.
Is there a limitation on how many results can be retrieved for a single ISBN?+
search_by_isbn returns up to 20 listings per page. The total_results and total_pages fields in the response tell you the full scope of matches, and you iterate by incrementing the page parameter. Very common ISBNs can have hundreds of listings across many pages, so callers should respect total_pages to avoid fetching beyond the available result set.
Can I search by title, author, or keyword rather than ISBN?+
Not currently. The API is scoped to ISBN-based lookup via search_by_isbn. You can fork the API on Parse and revise it to add a title or author search endpoint to cover those discovery patterns.
Page content last updated . Spec covers 2 endpoints from www.zvab.com.
Related APIs in MarketplaceSee all →
ebay.com API
Search and monitor eBay listings across any category, with support for active and completed/sold listings. Retrieve item details, pricing history, seller profiles and feedback, and category data. Filter by keyword, category, condition, seller, and sort order to support price research, market analysis, and inventory monitoring.
willhaben.at API
Search and browse listings across Austria's largest classifieds platform. Access marketplace goods, real estate (for sale and rent), cars, jobs, and full listing details — all from a single API.
mercadolibre.com.ar API
Search for products, cars, and real estate listings on MercadoLibre Argentina and access detailed information including product specifications, customer reviews, and seller profiles. Get comprehensive market data to compare prices, evaluate sellers, and make informed purchasing decisions across multiple categories.
mercadolibre.com API
Search and retrieve product listings, details, customer reviews, categories, and current deals from MercadoLibre across multiple countries to find the best products and prices. Get comprehensive product information including specifications and user feedback to make informed purchasing decisions.
jp.mercari.com API
Search and browse millions of product listings on Mercari Japan with bilingual support, filtering by categories and getting detailed pricing, item specifications, and seller information. Access comprehensive marketplace data including product summaries, category overviews, and individual seller profiles to find exactly what you're looking for.
finn.no API
Search and retrieve listings across Norwegian marketplaces on FINN.no, including vehicles, real estate, jobs, and second-hand items. Access structured listing data such as price, location, images, and category-specific attributes across all major FINN.no verticals.
etsy.com API
Discover what shoppers are searching for on Etsy by accessing real-time trending keywords and popular search terms that can help you identify market demand and optimize your product listings. Get instant access to autocomplete suggestions and "Popular right now" trends to stay ahead of customer interests and improve your shop's visibility.
craigslist.org API
Search and retrieve Craigslist listings for apartments, vehicles, jobs, services, and other categories across all regional sites to find exactly what you're looking for. Get detailed information about specific listings, browse by location and category, and compare options all in one place.