Shore hardness converter
Translate a durometer reading between seven Shore scales: 70 Shore A is about 29 Shore D, read from a fixed elastomer table with Shore A in the middle, so mixed A and D certificates can be compared. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 70
- From
- Shore a
- To
- Shore d
- Result
- 29 shore_d
- Converted
- 29
- Value shore a
- 70
- Scale from
- Shore A
A Shore hardness converter turns a durometer reading from one ASTM D2240-style scale into another without flipping paper charts or rebuilding spreadsheet tables. Enter a hardness number between zero and one hundred plus a source scale and a target scale among Shore A, Shore D, Shore OO, Shore B, Shore C, Shore O and Shore DO; the tool returns the converted reading, the approximate Shore A pivot used as the intermediate, a multi-scale snapshot, human-readable scale names, and step-by-step interpolation lines you can paste into a materials notebook or quality report. Rubber compounders, gasket designers, foam and gel product teams, and procurement groups that receive mixed Shore A and Shore D certificates all need that same deterministic path.
What Shore durometer scales mean and how conversion works
Shore hardness is an empirical indentation hardness reported on several ASTM D2240 durometer scales that measure resistance of polymers, elastomers, foams and soft plastics under different indenters, springs and dwell times. Shore A is the everyday scale for soft rubber, seals, O-rings and flexible plastics; Shore D is used for hard rubber, rigid plastics and denser compounds; Shore OO covers very soft gels, sponge and foam that would bottom out on the A scale.
Additional type scales B, C, O and DO fill intermediate indenter and spring combinations for specialty compounds and older drawings. These scales are not SI units linked by exact dimensional factors: conversion between them is approximate and material-dependent. This capability implements a fixed elastomer correlation table with Shore A as the pivot.
The solver interpolates piecewise linearly from the source scale to Shore A, then from Shore A to the target scale, using only the published-style table points—no network, no random seeds, and no wall-clock dependence. Values must stay inside the envelope covered by the table for that scale—for example Shore D roughly fifteen through fifty-eight on this chart, Shore OO zero through one hundred—so clients never invent a hardness that the chart never defined.
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 unit suffixes or thousand separators. Treat results as approximate elastomer equivalents, not as a substitute for the original durometer test on the same coupon: different polymers, temperature, dwell time, specimen thickness and surface condition all shift real readings.
Round-trip checks are straightforward: convert seventy Shore A to Shore D and Shore D back toward Shore A and confirm you recover a value near the original within interpolation tolerance of the fixed table. When teaching polymer lab courses, pair classic examples such as seventy Shore A to roughly twenty-nine Shore D under this table, ninety Shore OO toward Shore A near fifty, and eighty Shore A to Shore B near eighty. Stay inside each scale’s published segment so interpolation never extrapolates past the last table node.
This landing targets people searching for a Shore hardness converter, Shore A to Shore D, durometer conversion, Shore OO to Shore A, or rubber hardness scale conversion online; it is not a metal hardness Rockwell–Brinell–Vickers tool, not a water hardness calculator, and not a live durometer instrument driver. Prefer this capability when you need a fast, free, deterministic Shore multi-scale bridge for elastomer-range numbers; if you require certified multi-material laboratory packages or live gauge drivers, use a standards laboratory package instead.
What you can do with it
Rubber and seal compound specifications
Formulators convert Shore A process targets to Shore D or OO callouts so drawings, customer certificates and shop travelers use one deterministic path.
Incoming inspection of mixed durometer reports
QA teams map supplier Shore D or OO readings onto internal Shore A acceptance windows without manual chart lookup.
FAQ
Are the conversions exact?
They are deterministic interpolations on a fixed elastomer correlation table with a Shore A pivot. Shore conversion is always approximate and material-dependent; results are not a substitute for testing on the same specimen.
Why was my Shore D value rejected?
Shore D is only defined on the table envelope roughly 15–58 for this chart. Very soft materials belong on Shore A or Shore OO; extreme hard values may fall outside the published correlation range.
Is the Shore hardness converter free?
The browser tool is free and runs locally.
Which Shore scale fits my material?
Shore A suits soft rubber, seals, O-rings and flexible plastics; Shore D suits hard rubber and rigid plastics; Shore OO suits very soft gels, sponge and foam that would bottom out on the A scale.
Can I see one reading on every scale at once?
Yes. Next to the result you get a snapshot across all seven scales. For 70 Shore A it lists about 96 on OO, 68 on B, 48 on C, 75 on O and 35 on DO.
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/shore-hardness \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":70,"from":"shore_a","to":"shore_d"}'const res = await fetch("https://api.kit.forhosting.com/conv/shore-hardness", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 70,
"from": "shore_a",
"to": "shore_d"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/shore-hardness",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 70,
"from": "shore_a",
"to": "shore_d"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/shore-hardness", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":70,"from":"shore_a","to":"shore_d"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":70,"from":"shore_a","to":"shore_d"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/shore-hardness", 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": 70,
"from": "shore_a",
"to": "shore_d"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.shore_hardness",
"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
min_value | 0 |
max_value | 100 |
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, and values outside a scale’s published chart envelope are rejected the same way.
What Shore durometer scales mean and how conversion works
Common aliases are accepted case-insensitively: shore_a, shore a, a and durometer a for Shore A; shore_d, d and type d for Shore D; shore_oo, oo and shore 00 for Shore OO; plus matching forms for B, C, O and DO. If the name is not on that list the solver rejects the request with invalid_input naming the bad field and listing supported units.
How to call the API and read the response
Value must be a finite number from zero through one hundred, or a strict numeric string in that range. Wire this into compound formulation tools, seal and gasket specification forms, LIMS adapters, mobile clients or batch jobs that already hold one durometer reading and only need a second representation for customer certificates, drawing callouts or regulatory comparison without shipping conversion charts in every app binary. Send a JSON body with three required fields: value (aliases amount, hardness, h, n, reading and durometer), from (aliases from_unit, unit_from, source, from_scale and scale_from), and to (aliases to_unit, unit_to, target, to_scale and scale_to). From and to must resolve to supported Shore scale names after alias normalization; the published enum lists the seven canonical identifiers. 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_shore_a as the Shore A pivot, unit as the target label, scale_from and scale_to as English scale names, formula as a short description of the table interpolation path, message as an English summary, as as a multi-scale snapshot of shore_a, shore_d, shore_oo, shore_b, shore_c, shore_o and shore_do (null where the pivot falls outside that scale’s table segment), steps as ordered substitution lines, and supported_units as the seven canonical identifiers. Failed validation—missing fields, non-finite numbers, values outside zero to one hundred, values outside a scale’s supported range, or an unknown unit name—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item.
Practical tips, limits, and when to use this landing
Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when clients deliberately probe unknown unit names or out-of-range durometer numbers.
Integration use cases
Lab homework and coding kata expected values
Students and developers generate deterministic Shore A↔D↔OO cases plus deliberate unknown-unit rejections for worksheets and unit tests.
Technical questions
Which Shore scales are supported?
Shore A (shore_a), Shore D (shore_d), Shore OO (shore_oo), Shore B (shore_b), Shore C (shore_c), Shore O (shore_o) and Shore DO (shore_do), including common aliases such as A, D, OO, type a and durometer d.
What happens with an unknown unit name?
The API returns invalid_input, names the bad field, and lists supported units. Failed validation is never charged.