jomashop.com APIjomashop.com ↗
Access Jomashop's watch and luxury goods catalog via API. Search products, browse by brand or category, get reviews, pricing, and new arrivals.
curl -X GET 'https://api.parse.bot/scraper/406cfd10-b189-4fe9-a006-9e79e55c4856/get_category_products?page=1&sort_by=bestsellers&page_size=5&category_id=871' \ -H 'X-API-Key: $PARSE_API_KEY'
Browse products by category with pagination, sorting, and filtering. Returns category metadata and a nested products object containing items and total_count.
| Param | Type | Description |
|---|---|---|
| page | integer | Current page number. |
| sort_by | string | Sort criteria: bestsellers, news_from_date, most_viewed, saving, price_asc, price_desc, featured, rating. |
| page_size | integer | Number of products per page. |
| min_rating | number | Minimum customer rating filter (e.g. 4.0). |
| category_id | integer | Category ID (e.g. 871 for Watches, 10709 for Sale). |
{
"type": "object",
"fields": {
"id": "integer category ID",
"name": "string category name",
"products": "object containing items array and total_count"
},
"sample": {
"data": {
"id": 871,
"name": "Watches",
"products": {
"items": [
{
"id": 561875,
"sku": "RLX126610LNBKSO",
"name": "Rolex Submariner Automatic Chronometer Black Dial Men's Watch 126610LNBKSO",
"brand_name": "Rolex"
}
],
"total_count": 5000
}
},
"status": "success"
}
}About the jomashop.com API
The Jomashop API exposes 9 endpoints covering product search, category browsing, brand filtering, and customer reviews from Jomashop's watch and luxury goods catalog. The get_product_details endpoint returns fields like SKU, stock status, description HTML, and gender label for a specific product slug, while search_products delivers paginated results with pricing, discount price, and brand metadata across thousands of listings.
Catalog Browsing and Search
The search_products endpoint accepts a query string (e.g. 'Rolex' or 'luxury automatic watch') with skip and limit pagination controls. Each result in the data array includes id, name, brand, url, image, price, price_discounted, and a payload object that contains the Yotpo domain_key needed for review lookups. The approximate_hits field gives the total estimated match count, and has_more signals whether additional pages exist.
The get_category_products endpoint takes a category_id (e.g. 871 for Watches, 10709 for Sale) along with sort_by options including bestsellers, news_from_date, most_viewed, saving, price_asc, price_desc, featured, and rating. A min_rating filter lets you restrict results to products above a given score. Responses include a products object with an items array and total_count. The get_brand_products endpoint layers a brand filter on top of the same category structure using a brand_name string — use get_watch_brands first to retrieve the exact brand name strings accepted.
Product Detail and Reviews
get_product_details requires a url_key slug (e.g. rolex-submariner-automatic-chronometer-black-dial-mens) and returns the product id, sku, name, image object with label and url_nocache, brand_url, a description object with an html field, moredetails with gender_label and more_details_text, and stock_status. If the slug does not match any product, the endpoint returns a stale_input response with kind: input_not_found.
Customer reviews are served via get_product_reviews, which takes a product_id (the Yotpo domain_key from search results) plus page and per_page parameters. The response includes a reviews array with score, content, title, and user per entry, a bottomline object with total_review, average_score, and star_distribution, and a pagination object. Note that the server may override the requested per_page value.
Navigation and New Arrivals
get_navigation_menu returns the full category tree with each node's id, name, url_key, children_count, and menu_content HTML. This is the cleanest way to discover valid category_id values for other endpoints. get_new_arrivals sorts any category by news_from_date and accepts an optional category_id to scope new arrivals to a specific section. get_sale_products targets category ID 10709 specifically and returns filter_set configuration alongside meta_title.
- Track Rolex and Omega price changes over time using
priceandprice_discountedfields fromsearch_products - Build a watch comparison tool that pulls
sku,stock_status, anddescriptionHTML fromget_product_details - Aggregate customer sentiment by brand using
average_scoreandstar_distributionfromget_product_reviews - Monitor new arrivals for a specific category by polling
get_new_arrivalswith acategory_id - Enumerate all navigable categories and their IDs using
get_navigation_menuto seed downstream category crawls - Filter sale listings by rating using
min_ratingandsort_by: savinginget_category_productswithcategory_id: 10709 - Discover supported brand name strings via
get_watch_brandsbefore queryingget_brand_products
| 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 | 250 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 Jomashop have an official developer API?+
How do I find the product_id needed for get_product_reviews?+
search_products with your query and inspect the payload field on each result item. It contains a metad object with a domain_key value — that string is the product_id accepted by get_product_reviews.Does the API return seller or condition information for individual listings?+
sku, stock_status, price, and price_discounted, but does not expose per-seller data or item condition breakdowns. You can fork this API on Parse and revise it to add an endpoint targeting that data if it becomes accessible.What happens if I pass an invalid url_key to get_product_details?+
stale_input object with kind: input_not_found rather than an HTTP error. Your integration should check for that field before trying to read product fields from the response.Does the API cover Jomashop categories beyond watches — handbags, sunglasses, or fragrance?+
get_navigation_menu endpoint returns the full category tree including non-watch categories, and get_category_products accepts any valid category_id from that tree. However, dedicated convenience endpoints like get_watch_brands are watch-focused. You can fork this API on Parse and revise it to add brand-list or filter endpoints tailored to other product verticals.