Discover/Books-A-Million API
live

Books-A-Million APIbooksamillion.com

Access Books-A-Million bestseller lists, book details, customer reviews, keyword search, and store locations via a structured JSON API.

Endpoint health
verified 3d ago
get_book_details
get_bestsellers
get_bestselling_fiction
get_book_reviews
get_bestselling_manga
11/11 passing latest checkself-healing
Endpoints
11
Updated
25d ago

What is the Books-A-Million API?

The Books-A-Million API covers 11 endpoints that expose book catalog data across bestseller categories, new releases, search, and physical store locations. The get_book_details endpoint returns ISBN-13, current price, retail price, savings, availability, publisher, publish date, page count, and dimensions for any product page URL. Review data, category-specific bestseller lists, and ZIP-code store lookup round out the full surface.

Try it

No input parameters required.

api.parse.bot/scraper/1d8eab97-d399-48dd-a9c5-1bc55a352b95/<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/1d8eab97-d399-48dd-a9c5-1bc55a352b95/get_bestsellers' \
  -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 booksamillion-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.books_a_million_api import BooksAMillion, BookSummary, Book, Store

bam = BooksAMillion()

# Browse bestselling fiction
for book in bam.booksummaries.bestselling_fiction(limit=5):
    print(book.title, book.author, book.price)

# Search for books by keyword
for result in bam.booksummaries.search(query="science fiction", limit=3):
    print(result.title, result.url)

# Get full details for a book by navigating from a summary
top_book = next(iter(bam.booksummaries.bestsellers(limit=1)))
detail = top_book.details()
print(detail.title, detail.isbn, detail.price)

# Fetch book details directly by URL
book = bam.books.get(url="https://www.booksamillion.com/p/Project-Hail-Mary/Andy-Weir/9780593135228")
print(book.title, book.author, book.isbn)

# Get reviews for a book
for page in book.reviews(limit=1):
    print(page.page_id, page.rollup.average_rating, page.rollup.review_count)

# Find a nearby store
store = bam.stores.locate(zip="35801")
print(store.name, store.address, store.city, store.distance_miles)
All endpoints · 11 totalmissing one? ·

Fetches the overall bestsellers list from Books-A-Million. Returns all books currently featured on the main bestsellers page, across all categories. Single-page response containing the full list.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "count": "integer total number of items returned",
    "items": "array of book objects with title, author, price, format, image, and url"
  },
  "sample": {
    "data": {
      "count": 100,
      "items": [
        {
          "url": "https://www.booksamillion.com/p/Daggermouth/H-M-Wolfe/9798330520572",
          "image": "https://covers1.booksamillion.com/covers/bam/9/79/833/052/9798330520572_w.jpg",
          "price": "$23.99",
          "title": "Daggermouth",
          "author": "H. M. Wolfe",
          "format": "Paperback"
        }
      ]
    },
    "status": "success"
  }
}

About the Books-A-Million API

Bestseller Lists and New Releases

Six category-specific endpoints — get_bestsellers, get_bestselling_fiction, get_bestselling_nonfiction, get_bestselling_manga, get_bestselling_ya, and get_bestselling_kids — each return an array of book objects with title, author, price, format, image, and url. The category endpoints also return a category string identifier. get_new_releases follows the same shape and requires no inputs. All list endpoints return a count field alongside the items array.

Book Search and Detail

search_books accepts a required query string and returns up to 20 results per page, including a retail_price field in addition to the standard book fields, allowing price-vs-retail comparisons directly from search results. For deeper data, pass any product page URL to get_book_details to retrieve isbn, savings, availability, and a details object containing ISBN-10, Publisher, Publish Date, Dimensions, and Page Count.

Reviews and Store Locations

get_book_reviews accepts an ISBN-13 (obtainable from get_book_details) and optional from and limit parameters for pagination. The response includes a paging object with total_results, pages_total, page_size, current_page_number, and next_page_url, plus a results array with rollup summary data and individual reviews containing ratings, comments, and reviewer info. get_store_locator takes a US ZIP code and returns the nearest store's name, address, city, state, phone, latitude, longitude, and internal store number.

Reliability & maintenanceVerified

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

Last verified
3d ago
Latest check
11/11 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
  • Track Books-A-Million bestseller rankings across fiction, nonfiction, manga, YA, and kids categories for publishing market analysis.
  • Build a price comparison tool using the retail_price and price fields from search_books or get_book_details.
  • Monitor new release listings and surface fresh titles with cover images and author data for a book discovery app.
  • Aggregate customer review sentiment and ratings via get_book_reviews pagination across large ISBNs sets.
  • Power a store finder feature using get_store_locator to return the nearest Books-A-Million location by ZIP code.
  • Enrich book records with publisher, page count, dimensions, and availability data from get_book_details.
  • Build a manga-specific bestseller tracker using the dedicated get_bestselling_manga endpoint.
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 Books-A-Million have an official developer API?+
Books-A-Million does not publish a public developer API or documentation for third-party access to its catalog or store data.
What does get_book_reviews return and how do I paginate through results?+
The endpoint returns a paging object with total_results, pages_total, page_size, current_page_number, and next_page_url, plus a results array containing a rollup summary and individual review objects with ratings, written comments, and reviewer info. Use the from parameter to set the starting index and limit to control page size.
Does the search endpoint support filtering by format, price range, or publication date?+
Currently search_books accepts only a keyword query and returns up to 20 results per page with title, author, price, retail_price, format, image, and URL. Filter parameters are not exposed. You can fork this API on Parse and revise it to add filtering support if your use case requires it.
Does get_store_locator return multiple nearby stores or just the single nearest one?+
The endpoint returns data for the single nearest Books-A-Million store to the provided ZIP code, including address, phone, city, state, latitude, longitude, and store number. Multi-store radius results are not currently returned. You can fork this API on Parse and revise it to return a list of stores within a given radius.
Are e-book or audiobook listings included in bestseller and search results?+
The format field in book objects can reflect different product formats, but dedicated e-book or audiobook catalog endpoints are not included. The API covers the main Books-A-Million print and format listings as shown on the site. You can fork this API on Parse and revise it to add format-specific filtering or separate audiobook endpoints.
Page content last updated . Spec covers 11 endpoints from booksamillion.com.
Related APIs in EcommerceSee all →
barnesandnoble.com API
Search for books and discover detailed information including metadata, pricing, and customer reviews from Barnes & Noble's catalog. Browse bestsellers by category and access comprehensive book details to find your next read or compare prices and ratings.
bookshop.org API
Search for books by keyword or category, view detailed information like metadata and pricing, discover curated reading lists, and find independent bookstores near you on Bookshop.org. Filter results by format and browse new releases to discover your next read.
booksrun.com API
Search millions of books and get instant buyback quotes on BooksRun. Browse bestsellers and categories, view detailed book information, and check condition guidelines to understand buyback prices and acceptance criteria.
alibris.com API
Search for books and retrieve seller listings from Alibris. Access detailed book information including title, author, condition, pricing, and seller data across the platform.
kobo.com API
Search and browse millions of eBooks and audiobooks from Kobo, discover bestsellers and daily deals across different categories, and get detailed information about specific books and authors. Find free eBooks, explore category collections, and use autocomplete to quickly locate titles that interest you.
amzn.to API
Search Amazon products and retrieve detailed information including pricing, reviews, and specifications, plus discover current best sellers across categories. Get real-time product data to compare options and find trending items on Amazon.
abebooks.com API
Search for books by title or ISBN, view detailed listing information, and discover available sellers offering new and used copies. Find the best deals by comparing prices across multiple sellers and browsing their inventory.
indiebound.org API
Discover independent bookstores near you, search for books across curated bestseller and Indie Next lists, and explore book recommendations from IndieBound's community. Access detailed book information, find locally-owned bookstores, and browse the latest indie bookstore news and events.