Thread count converter
200 TPI is 78.740157480315 threads per centimetre. Convert a fabric's thread density between TPI, threads per centimetre, per ten centimetres, per metre and per millimetre, with the factor and steps for a spec sheet or quality check. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 200
- Source unit: tpi
- tpi
- Target unit: tpi
- threads/cm
- Result
- 78.7401574803
- Converted
- 78.7401574803
- Value tpcm
- 78.7401574803
- Factor
- 0.3937007874
A fabric thread count converter turns one linear thread-density magnitude into another everyday textile unit without spreadsheet factors or mental inch–centimetre tables. Enter a finite value plus a source unit and a target unit among threads per inch (TPI), threads per centimetre, threads per ten centimetres, threads per metre, and threads per millimetre; the tool returns the converted thread count, the intermediate in threads per centimetre, the exact unit factor applied, and step-by-step substitution lines you can paste into a fabric specification, quality-control sheet, or design review. Bedding and apparel brands quoting TPI on retail packs, European mills labelling warp and weft per ten centimetres, lab technicians comparing metric and imperial pick counts, and students converting homework thread-density values all need the same deterministic path.
Which thread-count units are supported and how conversion works
This capability converts among five everyday fabric thread-count units that dominate bedding labels, apparel fabric tickets, weaving room boards, and textile coursework. Threads per centimetre is the internal hub: every conversion multiplies the input by how many threads per centimetre equal one source unit, then divides by how many threads per centimetre equal one target unit.
Threads per inch (TPI) use the exact international inch of two point five four centimetres, so one thread per inch equals one divided by two point five four threads per centimetre; fabric shop language also maps ends per inch (EPI) and picks per inch (PPI) to the same linear density when you convert a single warp or weft count. Threads per ten centimetres equal one tenth of a thread per centimetre and appear on many European woven-fabric labels that state warp and weft as paired numbers per ten centimetres.
Threads per metre equal one hundredth of a thread per centimetre. Threads per millimetre equal ten threads per centimetre and suit high-density technical fabrics and microscope work. Same-unit requests succeed and return the input magnitude with a short message that no change of unit was required.
Practical tips, limits, and when to use this landing
Prefer sending bare numbers for value when you control the client; string numbers are accepted only when they match a strict finite numeric pattern without thousand separators or unit suffixes embedded in the number field. Round-trip checks are straightforward: convert A to B and B back to A and confirm you recover the original within the published twelve-decimal rounding.
When teaching or documenting, pair classic examples such as two hundred threads per inch into threads per centimetre, twenty-eight threads per ten centimetres into TPI for a European label, and ten threads per centimetre into threads per millimetre for a dense technical cloth. Remember that retail “thread count” for bedding often multiplies warp and weft or even counts plied yarns twice; this tool converts a single linear density figure and does not invent product marketing math. Stay inside the absolute range so intermediate hub values cannot overflow.
This landing targets people searching for a thread count converter, TPI to threads per cm, fabric threads per inch, or threads per 10 cm conversion online; it is not a yarn linear-density (tex or denier) tool, not a fabric GSM or areal-density calculator, not a stitch-gauge knitter tool, and not a full product-label “total thread count” estimator from warp times weft.
What you can do with it
Retail bedding and apparel labels
Brands convert mill TPI or threads/cm specs into the unit printed on consumer packs so SI and imperial SKUs share one verified linear thread-density figure.
European fabric tickets and mill QC
Quality teams convert threads per 10 cm warp and weft labels to TPI or threads/cm for mixed-unit supplier sheets and lab worksheets.
Homework and textile coursework
Students convert TPI, threads/cm, and per-10-cm homework values with deterministic steps they can compare against hand calculations before submission.
FAQ
What units does the thread count converter support?
Five linear thread-density units: tpi (threads per inch), threads/cm, threads/10cm, threads/m, and threads/mm.
How is TPI converted to threads per centimetre?
Using the exact international inch of 2.54 cm: threads/cm = TPI ÷ 2.54. The inverse multiplies by 2.54. No approximate 2.5 shortcuts are used.
Is this the same as bedding package “thread count”?
Not always. Retail thread count often multiplies warp and weft or counts plies. This tool converts a single linear density (e.g. one warp figure) between units; it does not invent marketing totals.
Is the thread count converter free?
The browser tool is free and runs locally.
Can I convert ends per inch or picks per inch?
Yes. A single warp count in EPI or a single weft count in PPI is a linear density per inch, so enter it as TPI and you get the matching count per centimetre or per ten centimetres.
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/conv/thread-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":200,"from":"tpi","to":"threads/cm"}'const res = await fetch("https://api.kit.forhosting.com/conv/thread-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 200,
"from": "tpi",
"to": "threads/cm"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/thread-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 200,
"from": "tpi",
"to": "threads/cm"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/thread-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":200,"from":"tpi","to":"threads/cm"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":200,"from":"tpi","to":"threads/cm"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/thread-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"value": 200,
"from": "tpi",
"to": "threads/cm"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.thread_count",
"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_abs | 1000000000000 |
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
Unknown unit names fail with a clear invalid_input error instead of silent wrong factors.
Which thread-count units are supported and how conversion works
Common aliases are accepted case-insensitively: tpi, threads per inch, threads/in, epi, and ppi for the imperial form; threads/cm, threads per centimetre, and per cm for the hub; threads/10cm, per 10 cm, and threads per ten centimetres for the decade label; threads/m and threads per metre; and threads/mm with full-word millimetre spellings. If the name is not on that list the solver rejects the request with invalid_input naming the bad field and listing supported units, so clients never guess whether a typo produced a wrong number. Negative values are allowed for signed difference contexts; absolute magnitude must stay within the published one-trillion limit so intermediate products remain finite in IEEE double precision on the Worker and in the browser.
How to call the API and read the response
Value must be a finite number or a strict numeric string within absolute limits of one trillion. Wire this into product information management systems, mobile fabric-spec apps, or batch jobs that already hold a thread-count reading and only need a second unit for retail display, mill comparison, or mixed SI–imperial reports without shipping floating conversion tables in every app binary. Send a JSON body with three required fields: value (aliases amount, count, thread_count, and threads), from (aliases from_unit, unit_from, and source), and to (aliases to_unit, unit_to, and target). From and to must resolve to supported unit names after alias normalization. On success the response echoes the rounded input value, canonical from and to labels, result and converted set to the same rounded target magnitude, value_tpcm as the hub intermediate in threads per centimetre, unit as the target label, factor as the from-to multiplier, formula as the short equation string, message as an English summary, steps as ordered substitution lines, and supported_units as the five canonical identifiers. Failed validation—missing fields, non-finite numbers, values outside absolute limits, or an unknown unit name—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, limits, and when to use this landing
Normalize display labels on your side if you need locale-specific spellings—this API always returns the short canonical tokens tpi, threads/cm, threads/10cm, threads/m, and threads/mm so automated tests stay stable. Prefer this capability when both endpoints are among the five supported linear thread-density units and you need exact inch–centimetre factors and step strings; if you need mass-based yarn counts or fabric weight, use the dedicated converters for those quantities instead. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when clients deliberately probe unknown unit names.
Technical questions
What happens if I send an unknown unit name?
The API returns invalid_input naming the bad field and listing supported units. Failed validation is never charged.