JSON API
Free, fast, CORS-enabled JSON API for unit conversions. No key required for basic GETs. All responses are edge-cached for 24 hours and use NIST-exact factors where defined.
Endpoints
GET /api/v1/convert— single conversionGET /api/v1/table— reference tableGET /api/v1/units— unit catalogGET /api/v1/formula— formula data for a pair
/api/v1/convert
GET https://convertnavi.com/api/v1/convert?value=10&from=kg&to=lbParameters:
value(number, required) — input valuefrom(slug or alias, required) — source unitto(slug or alias, required) — target unitprecision(0-12, optional) — decimal digitsingredient(slug, optional) — for volume↔mass cooking conversionslocale(BCP-47 tag, optional) — for `formatted` string formatting
Sample response:
{
"ok": true,
"from": {
"slug": "kilogram",
"name": "Kilogram",
"symbol": "kg",
"system": "SI"
},
"to": {
"slug": "pound",
"name": "Pound",
"symbol": "lb",
"system": "imperial"
},
"input": 10,
"output": 22.046226218487757,
"formatted": "22.0462",
"exact": true,
"source": "NIST: 1 lb = 0.45359237 kg exact.",
"lastValidatedAt": "2026-06-14T15:53:07.581Z"
}/api/v1/table
GET https://convertnavi.com/api/v1/table?from=celsius&to=fahrenheit&values=0,25,100
GET https://convertnavi.com/api/v1/table?from=kg&to=lb&range=0-100&step=10&format=csvSample response:
{
"ok": true,
"from": "celsius",
"to": "fahrenheit",
"rows": [
{
"input": 0,
"output": 32,
"formatted": "32"
},
{
"input": 25,
"output": 77,
"formatted": "77"
},
{
"input": 100,
"output": 212,
"formatted": "212"
}
]
}/api/v1/units
GET https://convertnavi.com/api/v1/units
GET https://convertnavi.com/api/v1/units?category=pressureReturns a list of all available units with slug, name, symbol, aliases, category, system and source.
Rate limits & terms
Basic use is free and unauthenticated. We aggressively cache at the edge — please add a polite User-Agent so we can reach you if your traffic looks unusual. For production volume, contact us about pinned SLA & higher rate limits.