Bend allowance calculator
The bend allowance API returns the arc length of the neutral axis through a sheet metal bend: the extra length a flat blank needs so that, once bent, the part comes out to size.
Run — free
You send the bend angle in degrees, the inside radius, the material thickness and the K-factor, and you get back the bend allowance in the same length units you sent. It is the number press brake operators, fabricators and CAD designers subtract and add every day, computed by a single deterministic formula with no lookup tables, no network calls and no rounding surprises.
What bend allowance is and why it matters
When a flat sheet is bent, the material on the outside of the bend stretches and the material on the inside compresses. Somewhere between those two faces lies the neutral axis, a layer that neither stretches nor compresses, and the bend allowance is the length of that layer measured along the arc of the bend. If you develop a flat pattern without it, every bent dimension drifts: flanges come out short or long, holes miss their mating parts, and assemblies stop fitting. Fabricators used to keep shop-specific tables for this; the bend allowance calculator replaces the table with the formula those tables were built from. Send the bend angle in degrees, the inside radius of the bend, the sheet thickness and the K-factor that describes where the neutral axis sits, and the endpoint returns the arc length in the same units you used for radius and thickness. Millimetres in, millimetres out; inches in, inches out.
How the calculation works
The computation is the standard neutral-axis arc formula: BA = θ × (R + K × T), where θ is the bend angle converted to radians, R is the inside radius, T is the material thickness and K is the K-factor, the fraction of the thickness at which the neutral axis lies. A K-factor of 0.5 puts the neutral axis at mid-thickness, which suits very large radii; real air bending of mild steel usually sits between 0.3 and 0.44, and the endpoint defaults to 0.33 when you omit it. Validation is strict because the formula is only meaningful inside its domain: the radius and the thickness must not be negative, and the K-factor must stay within [0, 1]. Angles may range from -360 to 360 degrees; the sign indicates bend direction, and the allowance itself is reported as a positive arc length. The result is rounded to six decimals so automated comparisons stay stable across machines.
Using the result in a flat pattern
In practice you rarely need the bend allowance alone: you use it to build the flat length of the part. Add the straight leg lengths measured to the tangent points of each bend, then add one bend allowance per bend. Equivalently, if you dimension your part to the outside mould lines, subtract the bend deduction instead — the two are related through the same geometry, and many shops keep both on the traveller. A typical workflow sends each bend of a bracket to this endpoint during quoting, sums the allowances with the leg lengths, and checks the total against the stock size before committing material. The same code runs free in the browser widget on this page, so you can verify a single bend by hand and only pay $0.002 per request when you automate it across a whole BOM or integrate it into your CAD export pipeline.
What you can do with it
Develop a flat pattern for a bracket
Sum the straight legs with one bend allowance per bend to cut the blank to the right length before it ever reaches the press brake.
Quote sheet metal parts from a BOM
Automate bend allowance across every bend in a job to estimate developed lengths, stock usage and cutting time consistently.
Check a CAD flat export
Verify the unfolded length your CAD system produces against an independent computation of the same formula and K-factor.
FAQ
What does it cost?
$0.002 per request. It is also free to run in your browser on this page.
What is the K-factor and what if I don't know it?
The K-factor locates the neutral axis as a fraction of the material thickness. If you omit it, the endpoint uses 0.33, a common value for air bending mild steel; use your shop's measured value when you have one.
Which units does it use?
Whatever units you send. Radius and thickness must share a unit, and the bend allowance comes back in that same unit.
What is the difference between bend allowance and bend deduction?
Bend allowance is the arc length of the neutral axis through the bend, added to tangent-point leg lengths. Bend deduction is what you subtract from outside mould-line dimensions. Both describe the same bend geometry.
When does the API reject my input?
When radius or thickness is negative, the K-factor falls outside [0, 1], the angle exceeds 360 degrees in magnitude, or a required field is missing or not a finite number. Rejected requests are not charged.
Can I bend a zero-radius sharp corner?
Yes. A radius of zero is accepted and models a coined sharp inside corner; the allowance then comes from thickness and K-factor alone.
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/phys/bend-allowance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"angle":90,"radius":5,"thickness":2}'const res = await fetch("https://api.kit.forhosting.com/phys/bend-allowance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"angle": 90,
"radius": 5,
"thickness": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/bend-allowance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"angle": 90,
"radius": 5,
"thickness": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/bend-allowance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"angle":90,"radius":5,"thickness":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"angle":90,"radius":5,"thickness":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/bend-allowance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"angle": 90,
"radius": 5,
"thickness": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.bend_allowance",
"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. |