WatchMaxx APIwatchmaxx.com ↗
Access WatchMaxx product listings, brand catalogs, pricing, specs, and images via 8 endpoints. Browse, search, and filter luxury watches by brand, series, and facets.
What is the WatchMaxx API?
The WatchMaxx API exposes 8 endpoints covering the full product catalog at watchmaxx.com, including brand browsing, keyword search, category listings, and detailed watch specifications. The get_product_detail endpoint returns fields like movement, case_material, water_resistant, sale_price, and breadcrumb navigation for a single SKU or slug. Combined with filter_products, developers can build precise queries across facets such as dial color, gender, and series without manual pagination logic.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/92226fc0-2c5a-43ce-b6b4-a1e4e9c607bf/get_all_brands' \ -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 watchmaxx-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: WatchMaxx SDK — browse brands, search watches, get details."""
from parse_apis.watchmaxx_api import WatchMaxx, Sort, CategorySlug, ProductNotFound
client = WatchMaxx()
# List all available brands
for brand in client.brands.list(limit=5):
print(brand.name, brand.slug)
# Explore a specific brand's series/collections
omega = client.brand("omega")
for s in omega.series(limit=5):
print(s.name, s.readable, s.count)
# Search across all products, drill into the first result
product = client.products.search(query="speedmaster", sort=Sort.RELEVANCE, limit=1).first()
if product:
print(product.code, product.brand, product.name, product.sale_price)
# Get full product detail
info = product.detail()
print(info.item_info, info.bread_crumb_data)
# Get all product images
for url in product.images(limit=5):
print(url)
# Browse by category using the enum
for watch in client.products.by_category(category_slug=CategorySlug.MENS, sort=Sort.POPULAR, limit=3):
print(watch.name, watch.gender, watch.case_material)
# Apply complex filters with typed error handling
try:
for filtered in client.products.filter(filters={"brand": ["Omega"]}, sort=Sort.PRICE_DESC, limit=3):
print(filtered.code, filtered.name, filtered.price, filtered.save_percent)
except ProductNotFound as exc:
print(f"Not found: {exc}")
print("exercised: brands.list / brand.series / products.search / product.detail / product.images / products.by_category / products.filter")
Returns the full list of watch brands available on WatchMaxx. Each brand includes a display name and URL slug suitable for use with get_products_by_brand and get_brand_series.
No input parameters required.
{
"type": "object",
"fields": {
"brands": "array of brand objects with name (display name) and slug (URL slug for other endpoints)"
},
"sample": {
"data": {
"brands": [
{
"name": "Omega",
"slug": "omega"
},
{
"name": "Seiko",
"slug": "seiko"
},
{
"name": "Tag Heuer",
"slug": "tag-heuer"
}
]
},
"status": "success"
}
}About the WatchMaxx API
Browse and Discover Watches
The get_all_brands endpoint returns every brand available on WatchMaxx as an array of objects with name and slug fields. Those slugs feed directly into get_products_by_brand and get_brand_series. get_brand_series extracts collection-level data — name, readable display name, and count of products per series — from a single brand, making it straightforward to map a brand's full lineup before fetching individual listings.
Listings and Search
get_products_by_brand, get_products_by_category, and search_products all return the same core product shape: code, name, brand, series, price, sale_price, image_file, item_url, gender, case_material, and condition. Each call also returns facets — named filter groups with per-value counts — and a num_hits total. Pages cap at 36 items. Accepted sort values across all three are popular, price_asc, price_desc, and relevance.
Filtering and Product Detail
filter_products accepts a filters object mapping facet names (e.g., brand, gender, dial_color, movement) to arrays of accepted values. Facet names and values are discoverable from any listing endpoint's facets array. The link parameter scopes the filter context to a category or brand slug. For a single item, get_product_detail accepts either a slug or a sku and returns the full item_info object along with more_choices (related variants) and bread_crumb_data.
Images
get_product_images takes a product slug and returns an array of full CDN URL strings — the main image first, followed by additional angles. This endpoint is separate from the listing calls, so image resolution is not constrained by the listing response.
The WatchMaxx API is a managed, monitored endpoint for watchmaxx.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when watchmaxx.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 watchmaxx.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 luxury watch price tracker that monitors
sale_pricechanges across brands usingget_products_by_brand. - Aggregate a brand's full series catalog with
get_brand_seriesto populate a structured collection navigator. - Power a filtered watch finder using
filter_productswith facets likemovement,case_material, anddial_color. - Create a cross-brand comparison tool that pulls
condition,price, andwater_resistantfields fromget_product_detail. - Index all product images for a visual search tool using
get_product_imagesto retrieve high-resolution CDN URLs. - Build a clearance deal feed by hitting
get_products_by_categorywithcategory_slug: 'clearance'sorted byprice_asc. - Sync a watch inventory database by iterating brands from
get_all_brandsand paginating through each brand's product list.
| 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 WatchMaxx have an official developer API?+
What does `get_product_detail` return beyond basic listing fields?+
get_product_detail returns the full item_info object, which includes specification fields like movement, water_resistant, case_material, series, sale_price, and brand alongside more_choices (related product variants with their own item_url, image_file, and sale_price) and bread_crumb_data for navigation context. It accepts either a slug or a sku; if only the SKU is provided, the product is resolved via a search lookup.How do I discover which filter values are valid for `filter_products`?+
get_products_by_brand, get_products_by_category, or search_products — and inspect the facets array in the response. Each facet object contains a name (the filter key) and a values array with name, count, and readable fields. Pass those name values directly as keys and values in the filters object of filter_products.Does the API return user reviews or seller ratings for watches?+
Is historical pricing or price-drop data available through the API?+
price and sale_price at the time of the request; the API does not store or return historical price records. You can fork it on Parse and revise to build a price-history layer by persisting responses over time in your own data store.