Wiley APIwiley.com ↗
Search Wiley's book catalog by keyword and locale, and fetch ISBN, page count, and descriptions from product pages via two structured endpoints.
What is the Wiley API?
The Wiley.com API provides 2 endpoints for querying Wiley's academic and professional book catalog. Use search_books to run keyword searches across titles, authors, editions, formats, and prices — with locale filtering for US and UK markets — then pass any result's product_url to get_book_metadata to retrieve the ISBN, page count, and full description for that title.
curl -X GET 'https://api.parse.bot/scraper/902d00c5-40f9-4a46-8ec2-cd409265ab53/search_books?page=1&query=Calculus&locale=en-us' \ -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 wiley-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: Wiley Book Search API — search books, drill into metadata."""
from parse_apis.wiley_book_search_api import Wiley, Locale, BookNotFound
client = Wiley()
# Search for calculus textbooks in the US locale, capped at 5 results.
for book in client.books.search(query="Calculus", locale=Locale.EN_US, limit=5):
print(book.title, book.price, book.currency, book.formats)
# Drill into the first result's metadata (ISBN, page count, description).
book = client.books.search(query="Python", limit=1).first()
if book and book.product_url:
metadata = client.bookmetadatas.get(url=book.product_url)
print(metadata.isbn, metadata.pages)
if metadata.description:
print(metadata.description[:120])
# Search in the UK locale for a different topic.
for book in client.books.search(query="Nursing", locale=Locale.EN_GB, limit=3):
print(book.title, book.author, book.edition)
# Typed error handling: catch BookNotFound for an invalid product URL.
try:
client.bookmetadatas.get(url="https://www.wiley.com/en-us/NonExistentBook-p-00000000")
except BookNotFound as exc:
print(f"Book not found: {exc.url}")
print("exercised: books.search / bookmetadatas.get / Locale enum / BookNotFound error")Full-text search over Wiley.com's book catalog. Returns paginated results including title, author, edition, available formats, pricing, and product URLs. Results include both journals and books depending on the query. Pagination is page-number based.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| queryrequired | string | Search keyword (e.g. 'Nursing', 'Calculus', 'Python'). |
| locale | string | Locale for search results. Accepted values include 'en-us', 'en-gb'. |
{
"type": "object",
"fields": {
"items": "array of book objects with keys: title, author, edition, publish_date, formats, price, currency, item_id, product_url, image_url",
"query": "string echoed search query",
"locale": "string echoed locale",
"current_page": "integer current page number",
"total_results": "integer total number of matching results"
},
"sample": {
"data": {
"items": [
{
"price": "54.00",
"title": "Calculus: Single and Multivariable, 8th Edition",
"author": "Deborah Hughes-Hallett, Andrew M. Gleason, William G. McCallum",
"edition": "8",
"formats": [
"Print",
"Knewton Alta",
"E-Book",
"WileyPLUS"
],
"item_id": "00098515",
"currency": "USD",
"image_url": "https://media.wiley.com/product_data/coverImage300/50/11196965/1119696550.jpg",
"product_url": "https://www.wiley.com/en-us/Calculus%3A+Single+and+Multivariable%2C+8th+Edition-p-00098515",
"publish_date": "nov 2020"
}
],
"query": "Calculus",
"locale": "en-us",
"current_page": 1,
"total_results": 0
},
"status": "success"
}
}About the Wiley API
Search the Wiley Catalog
The search_books endpoint accepts a required query string (e.g. 'Nursing', 'Python', 'Calculus') and an optional locale parameter ('en-us' or 'en-gb') to scope results to a regional catalog. Responses are paginated using a 1-based page integer. Each item in the returned items array carries title, author, edition, publish_date, formats, price, currency, item_id, product_url, and image_url. The total_results field tells you how many matches exist so you can calculate how many pages to walk.
Fetching Book Metadata
The get_book_metadata endpoint takes a single url — the full Wiley product page URL, typically sourced directly from product_url in a search_books response. It returns isbn, pages, and description (as HTML). All three fields may be null if the data is absent from the product page, so callers should handle null values. This endpoint is suited for building enriched records after a bulk search pass.
Scope and Coverage
Results from search_books can include both books and journals depending on the query term. The locale parameter affects which regional pricing and catalog edition surfaces in results, so queries against 'en-gb' may return different editions or prices than 'en-us' for the same keyword. There is no built-in filter for content type (book vs. journal) within the search response itself.
The Wiley API is a managed, monitored endpoint for wiley.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when wiley.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 wiley.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 textbook price tracker comparing Wiley US and UK edition prices using the
localeparameter and theprice/currencyfields. - Compile an enriched academic reading list by searching a subject keyword and then resolving ISBNs via
get_book_metadata. - Automate catalog ingestion for a library system by querying subject-area keywords and collecting
isbn,author,edition, andpublish_date. - Monitor new Wiley titles in a discipline by regularly querying a keyword and comparing
publish_datefields across pagination runs. - Populate a course materials database with cover images and descriptions using
image_urland thedescriptionfield fromget_book_metadata. - Cross-reference Wiley ISBNs against other book databases to identify overlapping editions or alternate formats.
| 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 Wiley have an official developer API?+
What does `search_books` return beyond basic title and author?+
edition, publish_date, formats (an array of available format types such as print or e-book), price, currency, item_id, product_url, and image_url. The total_results and current_page fields are returned at the top level to support pagination.Can I filter search results to books only, excluding journals?+
search_books endpoint does not expose a content-type filter parameter. Results may include journals alongside books depending on the query. You can fork the API on Parse and revise it to add a content-type filter parameter if your use case requires book-only results.