Developer surface

Conversion API and embeds

Use Convematik's no-auth JSON endpoints for single conversions, batch conversions, catalog discovery, unit metadata and lightweight widgets. Error responses use HTTP 400 with JSON shaped as {"error":"..."}.

Run a request

Single conversions use query parameters and return JSON.

GET https://api.convematik.com/convert?value=1&from=kg&to=lb

{
  "value": 1.0,
  "from": "kg",
  "to": "lb",
  "result": 2.20462262185
}

Batch demo

Batch output appears here after the API responds.

Widget embed generator

<iframe
  title="Convematik converter"
  src="https://convematik.com/widget/?value=78&from=kg&to=lb"
  width="360"
  height="420"
  loading="lazy"></iframe>

Open the widget gallery for preset embeds and attribution snippets.

Endpoint reference

All endpoints return JSON. Use https://api.convematik.com in production or http://localhost:8000 for local API development.

GET /health

Example: /health

Success: API status such as {"status":"ok"}.

GET /capabilities

Example: /capabilities

Success: version, tool count, endpoint list and feature states.

GET /tools

Example: /tools

Success: generated tool catalog grouped by category.

GET /search

Example: /search?q=kg

Success: up to 20 matching tool records.

GET /convert

Example: /convert?value=78&from=kg&to=lb

Success: numeric result with original value and unit aliases.

POST /batch

Example: JSON body with conversions array.

Success: ordered result list for up to 100 conversions.

GET /roman

Example: /roman?roman=XIV or /roman?integer=2026

Success: Roman numeral and integer pair.

GET /fraction

Example: /fraction?numerator=42&denominator=56&op=simplify

Success: simplified fraction, decimal or percent result.

GET /table

Example: /table?from=kg&to=lb&start=1&end=10&step=1

Success: conversion table rows.

GET /bmi

Example: /bmi?weight=70&height=1.75&unit=metric

Success: BMI value and category.

GET /electrical

Example: /electrical?watts=1200&volts=120&target=amps

Success: calculated watts, amps or volts.

GET /percentage

Example: /percentage?mode=percent-of&x=20&y=150

Success: percentage result and formula.

GET /age

Example: /age?birth_date=1990-01-15&as_of=2026-06-12

Success: years, months, days and total days.

GET /date-difference

Example: /date-difference?start=2026-06-01&end=2026-06-12

Success: day difference with inclusive flag.

GET /tip

Example: /tip?subtotal=80&tip_percent=20&people=2

Success: tip, total and per-person split.

GET /discount

Example: /discount?price=120&discount_percent=25&tax_percent=8

Success: discount, discounted price, tax and total.

GET /fuel-cost

Example: /fuel-cost?distance=240&efficiency=30&fuel_price=3.75

Success: fuel used and trip fuel cost.

GET /unit-price

Example: /unit-price?price=12.99&quantity=3&unit=lb

Success: price per unit.

GET /units

Example: /units

Success: unit aliases grouped by category for selectors and widgets.

GET /openapi.json

Example: /openapi.json

Success: OpenAPI 3.0 contract for client generation and docs.

Guide & details

How to choose between API, widget and static pages

Use the public API when your app needs structured JSON, the iframe widget when a reader needs a visible converter inside another site, and focused static pages when the goal is search traffic, user education and shareable formulas. All three surfaces should start from the same source-of-truth conversion engine rather than separate hard-coded factors.

Implementation checklist

Validate one conversion manually before automating it, handle HTTP 400 JSON errors, preserve the original input alongside the result, and avoid sending sensitive payloads to API endpoints that are not designed for private text processing. For front-end embeds, include attribution and link users back to the full converter when they need another unit pair.