Adlibris APIadlibris.com ↗
Search Adlibris's Nordic book catalog, fetch product details, customer reviews, and browse category pages via a simple REST API with 4 endpoints.
What is the Adlibris API?
The Adlibris API gives developers structured access to the Nordic region's largest bookstore catalog through 4 endpoints. Use search_products to query the full catalog by keyword and filter by author or format, get_product_detail to retrieve metadata including ISBN, publisher, page count, and description, and get_product_reviews to pull customer review scores and text by ISBN. A fourth endpoint, browse_category, returns product listings from category and top-list pages.
curl -X GET 'https://api.parse.bot/scraper/e04eb89b-4f1f-482a-bf3d-fe74dc14075a/search_products?page=1&query=Harry+Potter&filters=language%3Asvenska&page_size=5' \ -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 adlibris-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: Adlibris SDK — search books, get details, read reviews, browse top lists."""
from parse_apis.adlibris_api import Adlibris, ProductNotFound
client = Adlibris()
# Search for books — limit caps total items fetched across pages.
for product in client.products.search(query="Harry Potter", limit=3):
print(product.title, product.price, f"rating={product.average_rating}")
# Drill into one product's full details (description, publisher, pages).
product = client.products.search(query="J. K. Rowling", limit=1).first()
if product:
detail = product.details()
print(detail.title, detail.price, detail.description[:80] if detail.description else "")
# List reviews for a product via its sub-resource.
if product:
for review in product.reviews.list(limit=3):
print(review.author, review.score, review.extract)
# Browse top lists — single-page category fetch.
for item in client.categoryproducts.browse(url="https://www.adlibris.com/sv/topplistor", limit=5):
print(item.title, item.author, item.in_stock)
# Typed error handling — catch when a product page is gone.
try:
product = client.products.search(query="nonexistent-xyz-0000", limit=1).first()
if product:
product.details()
except ProductNotFound as exc:
print(f"Product not found: {exc.url}")
print("exercised: products.search / product.details / product.reviews.list / categoryproducts.browse / ProductNotFound")
Search the Adlibris catalog via Algolia. Returns paginated product listings with pricing, ratings, and format. Supports keyword search and facet filters. Price is in SEK. Pagination is 1-based.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| queryrequired | string | Search keyword (e.g. 'Harry Potter', 'Dan Brown'). |
| filters | string | Comma-separated Algolia facet filters to apply (e.g. 'language:svenska,format:Inbunden'). |
| page_size | integer | Number of results per page (max 24). |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"query": "string, the search query used",
"products": "array of product objects with title, author, price, isbn, format, image_url, url, average_rating, total_rating_count, product_type",
"total_hits": "integer, total number of matching results",
"total_pages": "integer, total number of pages available"
},
"sample": {
"data": {
"page": 1,
"query": "Harry Potter",
"products": [
{
"url": "https://www.adlibris.com/sv/bok/harry-potter-och-de-vises-sten-9789129697704",
"isbn": "9789129697704",
"price": "352 kr",
"title": "Harry Potter och de vises sten",
"author": "J. K. Rowling",
"format": "Inbunden",
"image_url": "https://media.adlibris.com/images/9789129697704/harry-potter-och-de-vises-sten.jpg",
"product_type": "PhysicalBook",
"average_rating": 4.9,
"total_rating_count": 72
}
],
"total_hits": 1948,
"total_pages": 200
},
"status": "success"
}
}About the Adlibris API
Search and Filter the Catalog
The search_products endpoint accepts a required query string and optional filters parameter using comma-separated key-value pairs such as author:Dan Brown or format_sv:inbunden. Results are paginated via page and page_size parameters. Each product object in the products array includes title, author, price, isbn, format, publication_year, image_url, url, variants, average_rating, and total_rating_count.
Product Detail and Metadata
get_product_detail takes a full Adlibris product URL and returns a richer data set than search results: a details object containing publisher (förlag), page count (sidor), language (språk), and publication date (utgivningsdatum), plus a description string and a product_key. This endpoint is the right choice when you need bibliographic depth beyond what search surfaces.
Customer Reviews
get_product_reviews accepts an isbn and returns an array of review objects, each with author, score, score_max, date, extract, lang, and a verified_buyer boolean. A next_page_url field is included when additional pages of reviews exist, allowing straightforward cursor-based pagination through a product's full review set.
Category and Top-List Browsing
browse_category accepts any supported Adlibris category or top-list URL — both /sv/topplistor and /se/avdelning/ paths are supported — and returns a products array in the same shape as search results. This makes it straightforward to monitor bestseller lists or extract inventory from a specific genre section.
The Adlibris API is a managed, monitored endpoint for adlibris.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when adlibris.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 adlibris.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 Nordic book price tracker using
search_productswith format and author filters - Aggregate bibliographic metadata (publisher, page count, language) from
get_product_detailfor a library catalog tool - Collect verified customer review scores via
get_product_reviewsto feed a sentiment analysis pipeline - Monitor Adlibris bestseller and top-list rankings with
browse_categoryon topplistor URLs - Compare edition formats and variants for the same ISBN across product listings
- Extract genre-level inventory by crawling
/se/avdelning/category pages withbrowse_category - Enrich an e-commerce product database with Swedish-language descriptions and ISBNs from Adlibris
| 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 Adlibris have an official public developer API?+
What does `get_product_reviews` return beyond the review text?+
author, score, score_max, date, extract, lang, and a verified_buyer boolean indicating whether the reviewer purchased the product on Adlibris. When more reviews exist beyond the first page, next_page_url is populated so you can fetch subsequent pages.What filters does `search_products` support?+
filters parameter accepts comma-separated key-value pairs. Documented examples include author:Dan Brown to narrow by author and format_sv:inbunden to filter by Swedish-language format labels like hardcover. Other filterable dimensions may be available depending on the catalog section.Does the API cover Adlibris markets outside Sweden, such as Finland or Norway?+
/se/). Finnish or Norwegian locale pages are not currently covered. The API covers Swedish product listings, pricing, reviews, and category pages. You can fork it on Parse and revise to add endpoints targeting other Adlibris regional storefronts.Is seller inventory or stock availability returned for products?+
get_product_detail to add stock or availability fields if that data is present on the product page.