Diamond Weight Calculator
This diamond weight calculator estimates carat weight from a diamond’s length, width, depth, and cut shape.
Run — free
Enter the three measurements in millimetres and select one of ten popular shapes. The calculator applies a shape-specific factor and returns an estimated weight in carats, together with the exact dimensions, factor, and formula used. It is helpful when a diamond is mounted or cannot be placed on a scale, but it is not a substitute for weighing a loose stone on a calibrated gem scale.
Measure length, width, and depth carefully
Use a jeweller’s millimetre gauge or a suitable digital caliper to record the maximum length, maximum width, and total depth of the diamond. Length is the longest face-up measurement. Width crosses the stone at its widest point perpendicular to the length, while depth runs from the highest crown point to the culet or lowest pavilion point. For a round diamond, length and width should usually be similar, but enter both actual readings because even a small difference affects the multiplication. Keep every measurement in millimetres; do not enter centimetres, inches, or a mixture of units. Record useful precision without inventing digits your instrument cannot support. Mounted stones can be difficult to reach, especially beneath prongs, bezels, or halos, so never force a measuring tool into the setting. If part of the depth is hidden, describe the final weight as a rough estimate. The calculator requires all three dimensions to be finite positive numbers and rejects missing, zero, negative, or nonnumeric values rather than returning a misleading result.
Choose the cut and understand its factor
Select the shape that matches the diamond’s actual face-up outline: round, princess, oval, emerald, pear, marquise, cushion, heart, radiant, or asscher. The calculator multiplies length by width by depth and then multiplies that volume-like figure by a factor associated with the chosen cut. These factors summarize typical differences in outline and cutting geometry, making a quick dimensional estimate possible without modelling every crown and pavilion facet. The response shows the chosen factor as well as the formula, so the calculation remains transparent and reproducible. Shape selection matters: a square brilliant outline is generally princess, a square step cut is asscher, and a rectangular cut with cropped corners may be emerald or radiant depending on its faceting style. Unusual, modified, antique, strongly asymmetrical, extremely deep, or extremely shallow diamonds may not conform well to a standard coefficient. For those stones, use the nearest available category only as a documented approximation. The final carat estimate is rounded to four decimal places after the full calculation, which keeps API results stable while retaining useful precision.
Interpret the estimated carat weight responsibly
Carat measures mass, while a caliper measures external dimensions. Diamonds with the same length, width, and depth can still have different weights because cutters distribute material differently through the crown, girdle, pavilion, corners, and culet. A thick girdle can hold more mass without producing a proportionally larger face-up appearance, while a shallow or unusually trimmed stone can depart from the assumptions represented by its standard factor. This calculator therefore produces an estimate, not a grading result or certified weight. It does not determine whether a diamond is natural or laboratory-grown, assess clarity or colour, identify treatments, or establish value. The result is most useful for preliminary jewellery design, inventory checks, setting discussions, and checking whether a stated carat weight is broadly consistent with accessible dimensions. For a sale, insurance valuation, laboratory report, or any decision where exact weight materially affects price, ask a qualified jeweller or gemologist to remove and weigh the loose diamond safely. Keep the returned dimensions, shape, factor, and formula with the estimate so anyone reviewing it can see the assumptions instead of treating the carat figure as an unexplained measurement.
What you can do with it
Estimate a mounted diamond
Approximate carat weight from accessible dimensions when removing the stone from its setting is impractical.
Plan a jewellery setting
Compare the likely weights and physical sizes of popular diamond cuts during early design work.
Review an inventory claim
Check whether a listed diamond weight is broadly consistent with its recorded millimetre dimensions.
FAQ
What does the calculator cost?
It is free to use in the browser, and each API request costs $0.002.
Which units should I use?
Enter length, width, and depth in millimetres. The result is returned in carats.
Is this the diamond’s exact weight?
No. It is a dimensional estimate based on a cut-specific factor; exact mass requires weighing the loose diamond on a calibrated scale.
Which diamond shapes are supported?
The supported shapes are round, princess, oval, emerald, pear, marquise, cushion, heart, radiant, and asscher.
What happens if a dimension is zero or negative?
The request returns an invalid-input error because every dimension must be a finite positive number.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/hobby/diamond-weight \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"shape":"round","length":6.5,"width":6.5,"depth":4}'const res = await fetch("https://api.kit.forhosting.com/hobby/diamond-weight", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"shape": "round",
"length": 6.5,
"width": 6.5,
"depth": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/diamond-weight",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"shape": "round",
"length": 6.5,
"width": 6.5,
"depth": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/diamond-weight", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"shape":"round","length":6.5,"width":6.5,"depth":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"shape":"round","length":6.5,"width":6.5,"depth":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/diamond-weight", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"shape": "round",
"length": 6.5,
"width": 6.5,
"depth": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.diamond_weight",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |