Open Diamond Pricing API
OpenFacet provides public, unauthenticated access to structured price data for natural, GIA-certified round diamonds with 3EX grading (cut, polish, symmetry) and non-fluorescent.
The API supports valuation, algorithmic pricing, and liquidity modeling by exposing core components of OpenFacet’s transparent pricing methodology. All responses are JSON-formatted and timestamped in UTC. Endpoints are served from: https://openfacet.net/api/
.
GET /api/index.json – Composite Index & Basket
Returns the current Diamond Composite Index (DCX) and a representative basket of actively traded specifications.
Example: /api/index.json
Sample Response
{
"dcx": 3568.6,
"specs": [
{
"carat": 0.5,
"clarity": "SI1",
"color": "H",
"cut": "Excellent",
"log": 7.428,
"per_carat": 1682.38,
"price": 841.19,
"weight": 0.22
},
...
],
"trend": 0.13,
"ts": "2025-05-19T13:26:49Z"
}
Fields
dcx
: Composite per-carat price in USD.specs[]
: Sample stones with:price
: Total price in USDper_carat
: USD per caratlog
: $\log(\text{price})$ for interpolationweight
: Basket contribution
trend
: 24h change indcx
, in percent (e.g.0.13
= +0.13%)ts
: Timestamp in ISO 8601 format
GET /api/matrix.json – Price Matrices
Returns per-carat log price matrices across clarity and color, grouped by fixed carat bands.
Example: /api/matrix.json
Key Fields
l
: Map of carat band → flat array of $\log(\text{per-carat price})$ values. Each array is of lengthrows × cols
, where:rows
= number of color grades (r
)cols
= number of clarity grades (c
)
c
: Clarity grade list (columns)r
: Color grade list (rows)s
: Shape[rows, cols]
=[len(r), len(c)]
Price Calculation
To compute per-carat price:
$$ \text{price} = \exp(\log_\text{price}) $$
To interpolate $\log(\text{per-carat price})$ for non-discrete carat weights:
$$ \log_i = (1 - \lambda) \cdot \log(p_1) + \lambda \cdot \log(p_2) $$
Where:
- $p_1, p_2$ are per-carat prices at carat bands $c_1, c_2$
- $\lambda = \frac{c - c_1}{c_2 - c_1}$, with $c$ the target carat
After interpolation, apply Math.exp(log_i)
to obtain the interpolated per-carat price.
GET /api/depth.json – Market Depth
Reports inventory depth across dimensions of carat, color, and clarity. Useful for liquidity-aware models or filtering.
Example: /api/depth.json
Structure
clarity[carat][clarity]
: Listings count per clarity grade at given caratcolor[carat][color]
: Listings count per color grade at given caratcolclar[color][clarity]
: Total listings for each color × clarity pairts
: Snapshot timestamp
Example
"1.0": {
"VS2": 1232
}
There are 1232 listings for 1.0ct VS2 diamonds at the snapshot time.
Data Freshness
Snapshots are updated periodically, typically once per 24h. Check the ts
field in each response to ensure data recency.
For methodology details, see the About OpenFacet & DCX Methodology page.