---
title: "Search the store diamonds for the showroom"
method: POST
path: "/v3/showroom/diamond/search"
tags: ["Showroom"]
---

# Search the store diamonds for the showroom

`POST /v3/showroom/diamond/search`

## Request

- Base URL: `https://api.rhinoartisan.com`
- URL: `https://api.rhinoartisan.com/v3/showroom/diamond/search`
- Auth: API key in header `apikey`
- TypeScript: <https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/docs/v3/showroom/diamond/search/post.ts> (a function with typed inputs; its response is checked against the schema)

Filtered, paginated search over every diamond of the organization (all its groups), with retail prices (active markup applied). Same contract as the public webcomponent search, for showroom members.

## Request body

- object
  - `shapes` string[], nullable
  - `types` string[], nullable
  - `labs` string[], nullable: GIA, IGI, GCAL…
  - `cut` string[], nullable
  - `color` string[], nullable
  - `clarity` string[], nullable
  - `carat_min` number, nullable
  - `carat_max` number, nullable
  - `price_min` number, nullable: Over the retail price
  - `price_max` number, nullable: Over the retail price
  - `sort_mode` 'price-asc' | 'price-desc' | 'date-asc' | 'date-desc' | 'carat-asc' | 'carat-desc' | 'color-asc' | 'color-desc', nullable
  - `page` integer, nullable
  - `page_size` integer, nullable

## Response `200`

Paginated diamonds with retail prices

- object
  - `total` integer
  - `page` integer
  - `page_size` integer
  - `items` object[]

## Other responses

- `400`: NO_ACTIVE_MARKUP
- `403`: Forbidden

## Changes

- **2026-10-15** `598bac108453`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/changes/v3/showroom/diamond/search/post.md)

---

[API](https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api.md) - [All operations](https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/revisions/f0e1d3d69cfb?raw)
