Candle Wax Amount Calculator
This candle wax amount calculator converts the usable volume of one container into the wax weight required for a complete batch.
Run — free
Enter the container volume, choose milliliters, liters, or US fluid ounces, supply the density of your wax in grams per milliliter, and set the number of matching containers. The result reports the total volume and required wax in grams, kilograms, and ounces, making it useful for test pours, production planning, purchasing, and comparing wax blends without relying on a generic volume-to-weight assumption.
Measure the space the candle will actually occupy
Start with the usable fill volume of one container, not its advertised exterior size or its brim-full capacity. A vessel sold as 300 milliliters may need a lower candle fill line because space is reserved for the wick assembly, safe handling, a lid, or the visual finish you want. The most reliable workshop method is to fill one prepared container with water to the intended wax line and measure that water in a graduated vessel. Dry the container completely afterward. Enter that measured amount as the container volume and select the matching unit. The calculator accepts milliliters, liters, and US fluid ounces, then normalizes the batch internally to milliliters. Use one calculation only for containers that share the same usable volume. If a batch combines several jar sizes, calculate each size separately and add the wax weights. This keeps the estimate tied to real fill space and prevents a large vessel from being hidden inside an average that does not describe any actual candle.
Use the density for the wax you will pour
Volume alone cannot determine wax weight because waxes and blends do not all have the same density. Enter density in grams per milliliter using a supplier specification, a technical data sheet, or a measurement made for your own blend. If you measure it yourself, weigh a known volume with the container weight removed, then divide the wax mass in grams by the measured volume in milliliters. Keep the measurement conditions consistent with the material data you use, since temperature, additives, fragrance, dye, and blend composition can change the practical relationship between volume and mass. The calculator multiplies the normalized total volume by the supplied density; it does not silently substitute a universal wax value. That explicit density field makes the result traceable and lets you compare soy, paraffin, beeswax, coconut blends, or a custom formulation. When the recipe changes, run the calculation again with the density appropriate to the new mixture rather than reusing an old batch weight.
Turn the result into a practical batch plan
The reported wax weight is the mathematical amount needed to occupy the stated volume across the selected number of containers. It is a planning baseline, not an automatic allowance for wax left in a pouring pitcher, spills, test samples, shrinkage behavior, or a deliberate reserve. If your workshop normally adds an overage, apply that policy after reading the calculated weight and document the percentage separately so the underlying fill requirement remains visible. The output includes grams for precise scales, kilograms for larger purchasing and production runs, and ounces for shops using customary weight units. Do not confuse the US fluid ounce input with the ounce output: the first is volume, while the second is mass. For repeatable production, save the container measurement, wax density, count, and calculated result with the batch record. Recalculate whenever the fill line, vessel, wax blend, or container count changes. A small test pour remains valuable because real processes include tolerances that a deterministic volume-times-density calculation cannot observe.
What you can do with it
Plan a small candle batch
Convert one jar's measured fill volume into the total wax weight for every matching jar in a test or production run.
Compare wax formulations
Change the density while keeping container volume and count fixed to see how different waxes or blends affect required mass.
Prepare purchasing quantities
Use the kilogram result as a clear baseline when estimating how much wax to obtain for a planned run before adding workshop overage.
FAQ
What does the calculator cost through the API?
Each request costs $0.002. The same deterministic calculation can also run in the browser for a quick workshop estimate.
Why does wax density matter?
Density converts volume into mass. Two waxes can occupy the same container volume but require different weights, so a single universal conversion would be misleading.
Can I enter fluid ounces?
Yes. Choose us_fl_oz for US fluid ounces. The calculator converts that volume to milliliters before applying density.
Does the result include extra wax for spills or pitcher residue?
No. It reports the mathematical fill requirement. Add any workshop overage separately according to your process and historical losses.
Can I calculate several container sizes together?
Run one calculation for each container size, then add the wax weights. The container count in a single request assumes equal usable volume.
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/craft-candle-wax \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"container_volume":250,"wax_density_g_per_ml":0.9,"containers":12}'const res = await fetch("https://api.kit.forhosting.com/hobby/craft-candle-wax", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"container_volume": 250,
"wax_density_g_per_ml": 0.9,
"containers": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/craft-candle-wax",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"container_volume": 250,
"wax_density_g_per_ml": 0.9,
"containers": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/craft-candle-wax", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"container_volume":250,"wax_density_g_per_ml":0.9,"containers":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"container_volume":250,"wax_density_g_per_ml":0.9,"containers":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/craft-candle-wax", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"container_volume": 250,
"wax_density_g_per_ml": 0.9,
"containers": 12
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.craft_candle_wax",
"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.
Limits
max_containers | 1000000 |
max_volume_ml | 1000000000 |
max_density_g_per_ml | 10 |
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. |