Toroid inductance calculator
This toroid inductance calculator estimates the ideal inductance of a coil wound around a homogeneous toroidal magnetic core.
Run — free
Enter the number of turns, the core's relative permeability, its effective cross-sectional area in square metres, and the mean magnetic path length in metres. The result is returned in henries, millihenries, and microhenries using the standard magnetic-circuit approximation. It is useful for quick design checks, datasheet comparisons, education, and repeatable automated calculations when the core remains below saturation and behaves close to its stated permeability.
Choose inputs that describe the magnetic core
Start with the total number of turns in the winding, then use the effective magnetic dimensions supplied by the core manufacturer whenever possible. The cross-sectional area is the area carrying magnetic flux through the core, not the window area inside the toroid and not the copper wire area. The mean magnetic path length is the average distance followed by flux around the ring; it is commonly listed as an effective path length on a datasheet. Relative permeability is dimensionless and describes how much more permeable the material is than free space. Use the permeability appropriate to the material, frequency, flux level, and temperature of interest, because a catalog headline value may not represent your operating point. Enter area in square metres and path length in metres. If a datasheet uses square millimetres, multiply by 0.000001 to obtain square metres. If it gives path length in millimetres, multiply by 0.001. Consistent SI units prevent silent scale errors that can otherwise change the answer by factors of thousands or millions.
Understand the equation and returned values
The calculator applies L = μ₀ × μᵣ × N² × A ÷ lₘ. Here μ₀ is the permeability of free space, μᵣ is the core's relative permeability, N is the turn count, A is effective core cross-sectional area, and lₘ is mean magnetic path length. The squared turn term is especially important: doubling the turns produces four times the ideal inductance when every other input remains fixed. Doubling area or relative permeability doubles inductance, while doubling the path length halves it. The response includes inductance in henries, millihenries, and microhenries so you can use the scale most convenient for a schematic or component specification. It also reports the absolute permeability calculated from μ₀μᵣ and echoes the normalized inputs, which makes an automated result easier to audit. Precision controls decimal rounding in each inductance unit, but it does not make uncertain core data more accurate. Keep enough digits for comparison, then round according to the tolerances of the material and winding rather than treating every displayed decimal as physically significant.
Know when the ideal toroid model is appropriate
This calculation assumes a homogeneous, closed, ungapped toroidal core with magnetic flux confined to a uniform effective cross section. It is a useful first estimate for many ferrite and powdered-core designs, but real components depart from that ideal. Permeability may vary with frequency, temperature, manufacturing tolerance, DC bias, and AC flux density. A deliberate or accidental air gap can dominate magnetic reluctance and substantially reduce inductance. At high excitation the core may approach saturation, making inductance nonlinear, while leakage flux and fringing become relevant when geometry is not well represented by one path length and one area. The equation also excludes winding resistance, skin and proximity effects, parasitic capacitance, core loss, and self-resonance. For production design, compare the estimate with the manufacturer's inductance factor or material curves and measure a wound sample under representative conditions. Use this tool to screen dimensions, check unit conversions, explore how turns affect the ideal result, or provide a deterministic baseline. Do not use the output alone to establish current rating, stored-energy safety margins, thermal performance, or high-frequency impedance.
What you can do with it
Estimate a first winding
Compare turn counts for a known toroidal core before building and measuring a prototype.
Check datasheet dimensions
Verify the inductance implied by effective core area, path length, and material permeability.
Automate design comparisons
Calculate a consistent ideal baseline across candidate cores through the API for $0.002 per request.
FAQ
What formula does the calculator use?
It uses L = μ₀μᵣN²A/lₘ, the ideal magnetic-circuit expression for a homogeneous toroidal core.
Should I enter relative or absolute permeability?
Enter dimensionless relative permeability. The calculator multiplies it by the permeability of free space and returns the resulting absolute permeability.
What units should area and path length use?
Enter cross-sectional area in square metres and mean magnetic path length in metres.
Does this calculate saturation current?
No. Saturation requires additional material data and flux or current analysis; this capability calculates only ideal small-signal inductance.
Does it support an air-gapped toroid?
No. The model assumes an ungapped closed core. A gap changes total reluctance and should be included with a gap-aware magnetic-circuit calculation.
What does an API calculation cost?
Each API request costs $0.002; the browser calculator can run free on the page.
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/elec/toroid-inductance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number_of_turns":100,"relative_permeability":2000,"cross_sectional_area_m2":0.0001,"mean_magnetic_path_length_m":0.1}'const res = await fetch("https://api.kit.forhosting.com/elec/toroid-inductance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number_of_turns": 100,
"relative_permeability": 2000,
"cross_sectional_area_m2": 0.0001,
"mean_magnetic_path_length_m": 0.1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/toroid-inductance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number_of_turns": 100,
"relative_permeability": 2000,
"cross_sectional_area_m2": 0.0001,
"mean_magnetic_path_length_m": 0.1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/toroid-inductance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number_of_turns":100,"relative_permeability":2000,"cross_sectional_area_m2":0.0001,"mean_magnetic_path_length_m":0.1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number_of_turns":100,"relative_permeability":2000,"cross_sectional_area_m2":0.0001,"mean_magnetic_path_length_m":0.1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/toroid-inductance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"number_of_turns": 100,
"relative_permeability": 2000,
"cross_sectional_area_m2": 0.0001,
"mean_magnetic_path_length_m": 0.1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.toroid_inductance",
"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_turns | 1000000000 |
max_relative_permeability | 1000000000 |
max_area_m2 | 1000000000 |
max_path_length_m | 1000000000 |
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. |