Thread calculator
An M8 thread has a 1.25 mm pitch and needs a tap drill of about 6.8 mm for a 75 percent thread. Enter a metric or Unified size, pick the standard, and get the diameters before you drill. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Size
- M8
- Standard
- Iso metric
- Size
- M8x1.25
- Series
- coarse
- Designation
- M8 × 1.25
- Major diameter mm
- 8
A screw thread calculator turns a size designation and a published standard into the diameters a machinist actually uses: crest-to-crest pitch, basic pitch diameter, basic minor diameter, and the tap-drill diameter for a seventy-five percent thread. The engine looks the size up in that standard’s table of nominal major diameter and pitch (or threads per inch). When the row exists, the ISO 68-1 and ASME B1.1 sixty-degree identities compute the remaining diameters from major and pitch.
What the table stores and what the 60-degree identities compute
A standard screw thread is not a free-form helix. ISO 261 (metric) and ASME B1.1 (Unified National Coarse and Fine) publish, for each preferred size, a nominal major diameter and a single coarse or fine pitch. This calculator stores those pairs: M8 is 8 millimetres by 1.25 millimetres, 1/4-20 UNC is 0.250 inch at twenty threads per inch, #10-24 UNC is a numbered screw whose major is 0.060 plus 0.013 times ten inches at twenty-four TPI.
Pitch P is either the millimetre figure from the metric row or 25.4 millimetres divided by TPI, using the exact international inch. The thread form is a symmetric sixty-degree V. The height of the fundamental triangle is H equals root-three over two times P.
Basic pitch diameter d2 sits 3√3/8 of P in from the major, which is the ISO 724 and ASME B1.1 identity d2 = d − 0.649519 P. Basic internal minor diameter d1, the valley of a nut thread, sits 5√3/8 of P in from the major: d1 = d − 1.082532 P. External minor d3 trims a further H/6 for the bolt root.
The tap-drill diameter is not the full basic minor: shops tap to about seventy-five percent thread so the tap does not break in tough stock. Machinery’s Handbook writes that as tap = d − (9√3/16) P, which is 0.75 times the American full-thread allowance 3√3/4 P, and it is the figure that lands on a #7 drill for 1/4-20 and about 6.8 millimetres for M8. Those identities are the whole algorithm after the table hit.
They do not pick a commercial drill-bit catalog number; they return the calculated diameter in millimetres and inches so you can choose the nearest bit yourself. Pipe threads, Whitworth, and UNEF are out of scope because they use different angles or tapers and would lie if forced through this sixty-degree table.
Where a thread-dimension calculator earns its keep
Machine shops meet this lookup dozens of times a day: a drawing says M10, the tap-drill chart is in the other room, and the question is the minor and the recommended hole before the spiral-point tap goes in. Maintenance crews pulling Unified fasteners on imported plant need 1/4-20 UNC versus 1/4-28 UNF diameters without flipping Machinery’s Handbook.
CAM and estimating tools embed the same contract so a bill of materials of M6, M8, and 5/16-18 becomes pitch, minor, and tap-drill columns without a spreadsheet of hidden pitch tables that rot when a size is typed wrong. Educators show why M8×1.25 and 5/16-18 are close but not interchangeable, and why a size that is not in the standard table must fail instead of silently using a guessed pitch.
This is not a pitch-unit converter from TPI to millimetres (that is a different search: converting a number you already have), not a fabric thread-count converter, and not a screw-jack mechanical-advantage calculator.
What you can do with it
Tap-drill lookup at the bench
Enter M8, M10×1.5, or 1/4-20 and read pitch, minor diameter, and the 75 percent tap-drill diameter before you open the hole.
BOM and CAM preprocessors
Resolve a list of ISO and Unified designations to millimetre diameters with a deterministic table miss instead of a guessed pitch.
Teaching coarse versus fine series
Show why M8×1.25 and M8×1, or 1/4-20 UNC and 1/4-28 UNF, share a major but not a minor or a tap drill.
FAQ
What happens if the thread size is not in the standard table?
Non-preferred or invented pitches are not guessed, and the failed call is not billed.
Which formula is used for tap-drill diameter?
The result is a diameter, not a catalog drill-bit number; 1/4-20 lands near a #7 (0.201 in) and M8 near 6.8 mm.
Does M8 mean coarse or fine, and how do I force a fine pitch?
Send M8x1 or M8x0.75 to select a tabulated fine pitch. 1/4 with unc is 1/4-20; 1/4 with unf is 1/4-28.
What tap drill do I need for M8 or 1/4-20?
For M8 the calculated tap drill is about 6.8 mm, and for 1/4-20 it lands on a number 7 drill. Both figures give a 75 percent thread, which shops use so the tap does not break in tough stock.
Does it cover pipe threads or Whitworth?
No. It covers ISO metric, Unified coarse and Unified fine threads with the 60-degree form. Pipe threads, Whitworth and extra-fine Unified sizes use other angles or tapers and are left out on purpose.
Related tools
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/build/thread \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"size":"M8","standard":"iso_metric"}'const res = await fetch("https://api.kit.forhosting.com/build/thread", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"size": "M8",
"standard": "iso_metric"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/build/thread",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"size": "M8",
"standard": "iso_metric"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/build/thread", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"size":"M8","standard":"iso_metric"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"size":"M8","standard":"iso_metric"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/build/thread", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"size": "M8",
"standard": "iso_metric"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "build.thread",
"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. |
Technical notes
Enter an ISO metric mark such as M8 or M8×1.25, or a Unified mark such as 1/4-20 or #10-24, and choose iso_metric, unc, or unf. When the size is absent from the table the task fails with invalid_input instead of inventing a non-standard pitch. Each successful API call costs $0.002; failed lookups are not billed.
Input contract, size syntax, and the not-in-table error
Bare 1/4 with unc selects 1/4-20; an explicit TPI that disagrees with the series, such as 1/4-28 on unc, is treated as a table miss. Numbered screws #0 through #12 use the ASME major 0.060 plus 0.013 n inches; a leading hash is optional except for size 1, where 1 means one inch and #1 means the numbered screw. POST a JSON body with two required fields. size is a designation string: M8, M8x1.25, M10x1, 8, 1/4-20, 1/4, #10-24, 10-24, 1-8, or 1-1/4-7. Aliases include thread_size, designation, and thread. standard is one of iso_metric, unc, or unf (aliases std, series, thread_standard) and is painted as a select. Bare M8 or 8 with iso_metric selects the ISO 261 first-choice coarse pitch; an explicit metric pitch such as M8x1 is accepted only when that pair exists as a tabulated fine pitch. Missing size, missing standard, empty strings, and unrecognised designations fail with invalid_input naming the field. A designation that parses but is not in the chosen standard table fails with a message that the thread size is not in that standard table—M9 on iso_metric, M8 on unc, 1/4-20 on unf. Those failures are not billed. On success the body echoes the normalised size, standard, series (coarse or fine), and a printable designation, then major, pitch, TPI, pitch diameter, internal minor, external minor, and tap drill in millimetres and inches, plus thread angle 60, fundamental height H, engagement_percent 75, and the formula string. Pair the free browser run on this page with the priced API when a preprocessor needs the identical diameters; nothing is stored after the response returns.
Where a thread-dimension calculator earns its keep
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — lets you move from a bench check to an automated pipeline without changing the millimetre. Keep engineering judgement for class of fit, coating allowance, and the commercial drill you actually stock; this endpoint returns the geometric diameters the standard defines.
Technical questions
How do I get pitch, minor diameter, and tap drill from a thread size?
Send size (M8, M8x1.25, 1/4-20, #10-24) and standard (iso_metric, unc, or unf). The API looks the pair up in that table and returns pitch, d2, d1, and the 75 percent tap-drill diameter in millimetres and inches.
What does the thread calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; a size that is not in the table is not billed.