Python
Prefer the official client for server-side apps. Values stay decimal strings; the package does not ship conversion factors. Source: unifyunits-python.
The client covers convert, batch, categories, units, and health. For
parse, normalize, currency, substances, unit price,
decimals, and
format_locale, use raw HTTP (see
API reference).
Install
Python 3.9+. Until PyPI publication, install from the tagged release:
bash
python -m pip install "unifyunits @ git+https://github.com/unifyunits/[email protected]"
After PyPI publication, use python -m pip install unifyunits.
Convert with the SDK
python
import os
from unifyunits import UnifyUnits
with UnifyUnits(api_key=os.environ["UNIFYUNITS_API_KEY"]) as client:
result = client.convert("1", "ft", "m")
print(result["data"]["result"]) # {"value": "0.3048", "unit": "m"}
Batch with the SDK
python
import os
from unifyunits import UnifyUnits
with UnifyUnits(api_key=os.environ["UNIFYUNITS_API_KEY"]) as client:
result = client.convert_batch(
[
{"value": "10", "from": "kg", "to": "lb"},
{"value": "100", "from": "km", "to": "mi"},
]
)
for item in result["data"]:
if item["status"] == "success":
print(f"Item {item['index']}: {item['result']['value']} {item['result']['unit']}")
else:
print(f"Item {item['index']} failed: {item['error']['code']}")
Error handling
python
import os
from unifyunits import ApiError, UnifyUnits
with UnifyUnits(api_key=os.environ["UNIFYUNITS_API_KEY"]) as client:
try:
client.convert("1", "ft", "kg")
except ApiError as error:
raise ValueError(f"{error.error_code}: {error}") from error
Same calls with raw HTTP
Use these when you cannot install the client, or when debugging against the OpenAPI contract.
python
import os
import requests
response = requests.get(
"https://api.unifyunits.com/v1/convert",
params={"value": "1", "from": "ft", "to": "m"},
headers={"Authorization": f"Bearer {os.environ['UNIFYUNITS_API_KEY']}"},
timeout=10,
)
response.raise_for_status()
data = response.json()
print(data["data"]["result"]["value"]) # "0.3048"