cleanorigin.com APIcleanorigin.com ↗
Access Clean Origin's lab-grown diamond listings, engagement ring settings, jewelry categories, and customer reviews via 7 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/5dec1c22-0722-4d0b-b8aa-5be0fed5e42d/search_diamonds?page=1&shape=Round' \ -H 'X-API-Key: $PARSE_API_KEY'
Search and filter lab-grown diamonds with support for shape, carat, price, color, clarity, and pagination. Returns up to 40 results per page.
| Param | Type | Description |
|---|---|---|
| cut | string | Cut grade filter, comma-separated for multiple values (e.g. Excellent, Very Good, Good, Ideal) |
| page | integer | Page number for pagination |
| color | string | Color grade filter, comma-separated for multiple values (e.g. D,E,F,G,H,I,J) |
| shape | string | Diamond shape filter (e.g. Round, Oval, Princess, Pear, Marquise, Cushion, Emerald, Radiant, Asscher, Heart) |
| clarity | string | Clarity grade filter, comma-separated for multiple values (e.g. IF,VVS1,VVS2,VS1,VS2,SI1,SI2) |
| max_carat | number | Maximum carat weight |
| max_price | number | Maximum price in USD |
| min_carat | number | Minimum carat weight |
| min_price | number | Minimum price in USD |
| creation_method | string | Filter by creation method: Lab or Natural. Omitting defaults to Lab. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"diamonds": "array of diamond objects with sku, url, shape, carat, cut, color, clarity, price, original_price",
"total_count": "integer total number of matching diamonds"
},
"sample": {
"data": {
"page": 1,
"diamonds": [
{
"cut": "Excellent",
"sku": "1488603",
"url": "https://www.cleanorigin.com/diamonds/oval-lab-grown-diamond-3888ade9e608/",
"carat": "1.00",
"color": "D",
"price": "330",
"shape": "Oval",
"clarity": "VS2",
"original_price": "440"
}
],
"total_count": 68370
},
"status": "success"
}
}About the cleanorigin.com API
The Clean Origin API exposes 7 endpoints for querying lab-grown diamonds, engagement ring settings, jewelry subcategories, and customer reviews from cleanorigin.com. The search_diamonds endpoint accepts filters for shape, carat range, color, clarity, cut, and price, returning up to 40 results per page with SKU, grading details, and pricing. Separate endpoints cover individual diamond detail pages, ring product specs, and Yotpo-sourced customer reviews.
Diamond Search and Detail
The search_diamonds endpoint accepts up to eight filter parameters: shape (Round, Oval, Cushion, and seven others), cut, color, clarity, min_carat, max_carat, max_price, and page. Each result in the diamonds array includes sku, url, shape, carat, cut, color, clarity, price, and original_price, making it straightforward to compare grading tiers or detect discounts. The total_count field lets you calculate page counts for full traversal. For a single stone, get_diamond_detail takes a URL slug and returns the same grading fields plus an images array.
Engagement Rings and Jewelry Products
search_engagement_rings filters settings by metal (e.g. 14K White Gold, 14K Rose Gold), style (Solitaire, Halo, Three Stone, Vintage, Classic), price range, and sort order. Each product object in the products array carries name, url, price, original_price, sku, image, and tags. get_product_detail accepts a slug that includes the category path (e.g. engagement/kendall-ring-ajr04662-e) and returns richer data: specifications as a key-value object, a description field, and a full images array. This same endpoint covers wedding rings and other jewelry items.
Subcategories and Reviews
get_engagement_ring_subcategories and get_jewelry_subcategories each return a flat list of name and url pairs — useful for building navigation or seeding batch product queries. The get_product_reviews endpoint queries Yotpo reviews. Pass a sku for product-level reviews or omit it for site-wide reviews; both paths support page and limit pagination. Each review object includes id, user, date, title, content, rating, and product.
- Build a diamond comparison tool filtering by cut, color, clarity, and carat range using
search_diamonds - Track price changes on specific lab-grown diamond SKUs over time using
get_diamond_detail - Populate an engagement ring configurator with setting options filtered by metal type and style
- Aggregate customer sentiment by pulling site-wide Yotpo reviews via
get_product_reviews - Generate a structured jewelry catalog by enumerating subcategories and fetching product specs with
get_product_detail - Identify discounted diamonds by comparing
priceagainstoriginal_priceacross paginated search results
| 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 Clean Origin have an official developer API?+
What grading fields does `search_diamonds` return for each diamond?+
search_diamonds returns shape, carat, cut, color, clarity, price, and original_price for each result, along with a sku and url. For images you need to call get_diamond_detail with the diamond's slug.Can I filter engagement rings by metal types other than 14K White Gold and 14K Rose Gold?+
search_engagement_rings endpoint currently documents 14K White Gold and 14K Rose Gold as accepted metal values. Other metal options (such as 18K or platinum) are not listed as supported filter values. You can fork this API on Parse and revise it to add any additional metal filter values if Clean Origin's catalog expands.Does the API expose ring sizing, stone pairing, or 360-degree video assets?+
get_product_detail returns images (an array of image URLs), specifications, description, price, and sku, but does not include ring size options, diamond pairing flows, or video assets. You can fork the API on Parse and revise it to add the missing endpoint if those fields become accessible.How does pagination work across the search endpoints?+
search_diamonds and search_engagement_rings return up to 40 results per page. The response includes a total_count field so you can compute how many pages exist and iterate using the page parameter. get_product_reviews supports both page and a limit parameter for finer control.