---
title: "Search available loose lab diamonds"
method: GET
path: "/api/v1/diamonds"
tags: ["Catalog"]
---

# Search available loose lab diamonds

`GET /api/v1/diamonds`

## Request

- Base URL: `https://www.adadiamonds.com`
- URL: `https://www.adadiamonds.com/api/v1/diamonds`
- Auth: one of:
  - none
  - API key in header `X-Ada-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://www.adadiamonds.com/oauth/authorize`, token URL `https://www.adadiamonds.com/api/oauth/token`; client credentials, token URL `https://www.adadiamonds.com/api/oauth/token`, scopes: `catalog:read`)

Returns a page of Ada's live loose lab grown diamond inventory, filtered by shape, carat, price, color, clarity, and cut. Stones sell continuously, so treat results as a snapshot and call `getDiamond` to re-check a specific stone before quoting it. Prices are US dollars for the loose stone only; add a setting from `listEngagementRings` to quote a finished ring.

## Query parameters

- `shape` string
- `min_carat` number
- `max_carat` number
- `min_price` number
- `max_price` number
- `color` string
- `clarity` string
- `cut` string
- `sort` 'price_asc' | 'price_desc' | 'carat_asc' | 'carat_desc'
- `limit` integer
- `offset` integer

## Response `200`

A page of available diamonds.

- DiamondList
  - `object` 'list', required
  - `currency` 'USD', required
  - `data` Diamond[], required
    - `object` 'diamond': Present on single-item responses.
    - `currency` 'USD'
    - `id` string, required
    - `name` string, required
    - `url` string, uri, required
    - `price` number, nullable, required: USD, loose stone only.
    - `carat` number, nullable
    - `shape` string, nullable
    - `color` string, nullable
    - `clarity` string, nullable
    - `cut` string, nullable
    - `certificate` string, nullable: Grading report number.
    - `lab` string, nullable: Grading laboratory (GCAL, IGI, GIA).
    - `measurements` string, nullable
    - `lengthToWidthRatio` number, nullable
  - `pagination` Pagination, required
    - `total` integer, required: Matches before pagination.
    - `limit` integer, required
    - `offset` integer, required
    - `has_more` boolean, required: Whether `offset + limit` would return more.

## Other responses

- `429`: Over the rate limit. Wait `Retry-After` seconds; a credential raises the limit.
- `502`: A catalog or content feed is temporarily unavailable. Retry in a few seconds.

---

[API](https://skmtc.dev/adadiamonds/apis/ada-diamonds-agent-api.md) · [All operations](https://skmtc.dev/adadiamonds/apis/ada-diamonds-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adadiamonds/apis/ada-diamonds-agent-api/revisions/2b2ed3201815?raw)
