UnifyUnits Developers

Changelog

2026-10-10 — Daily usage chart

  • The account usage page now shows a 30-day daily conversions chart. GET /v1/account returns usage.daily, 30 UTC days of successful conversions (or null when usage telemetry is unavailable)

2026-10-10 — Public latest currency rates

  • Added GET /v1/currency/rates/latest: the latest ECB euro reference rates without an API key, open to browser origins and shared-cached for up to an hour. It powers the live currency converter on the website

2026-10-10 — Documentation corrections

  • Added reference pages for GET /v1/currency/convert and GET /v1/substance/convert
  • Key rotation: an account has one active key and rotating revokes the old one immediately (see Key rotation)
  • Completed per-endpoint error lists, the rate-limit cost table, batch failed items, input limits, and the 429 versus QUOTA_EXCEEDED guidance
  • Pricing now describes upgrading and managing paid plans from the account Usage page
  • PHP client install uses the GitHub repository until the package is on Packagist; client guides note which endpoints the clients cover

2026-10-10 — MCP currency discovery and hardening

  • Added the list_currencies MCP tool: supported currencies with their ECB euro reference rates and publication date
  • The MCP server now rejects requests that carry a browser Origin header or an unsupported MCP-Protocol-Version, and measures the request size limit in bytes

2026-10-06 — MCP server

  • Added a remote MCP server so AI agents can call convert, parse, normalize, currency, substances, and unit price as tools with your API key (see MCP server)

2026-10-05 — Substances, unit price, and locale formatting

  • Added POST /v1/substance/convert (GET also supported) and GET /v1/substances: mass-volume conversion with sourced reference densities for 55 substances (see Substances)
  • Added POST /v1/unit-price to compare offers by price per unit (see Unit price)
  • New format_locale option adds a formatted display string to results on convert, batch, parse, currency, and substance conversion (see Locale formatting)
  • Substance conversion, unit price, and locale formatting require the Developer plan or higher; the substance catalogue is open to every plan. New error code: UNKNOWN_SUBSTANCE

2026-10-04 — Account area

  • The account page is now three pages: Profile, API keys, and Usage & billing. /account/ redirects to your profile.
  • Signed-in users get an account menu in the header with links to each page, billing, theme, and sign out. Pages show loading placeholders and progress states while data loads or an action runs.

2026-10-04 — Normalize and currency

  • Added POST /v1/normalize: turns quantities such as 2x500ml, 1 lb 4 oz, 10-12 cm, and approx 5kg into one canonical structure (see Normalize)
  • Added POST /v1/currency/convert (GET also supported) and GET /v1/currency/rates using ECB reference rates (see Currency)
  • Historical rates via date require the Developer plan or higher and return PLAN_REQUIRED otherwise
  • New error codes: UNKNOWN_CURRENCY, PLAN_REQUIRED, RATE_NOT_FOUND
  • Account billing uses Paddle Checkout and the customer portal instead of Stripe

2026-10-03 — Monthly quotas and Business plan

  • Each plan now has a monthly quota of successful conversions: Free 10,000, Developer 250,000, Pro 2,000,000, Business 10,000,000
  • Over quota, convert, batch, and parse return QUOTA_EXCEEDED (HTTP 429). Failed conversions are not counted, and a batch that does not fit in the remaining quota is rejected whole
  • The account page shows plan, monthly usage, and upgrade or billing actions when billing is available

2026-10-03 — Rounding and usage counts

  • decimals now rounds once from the exact result. Non-terminating results (for example 1 m in ft) and results with more than 40 significant digits previously rounded twice and could differ in the last digit
  • Account usage now counts successful conversions, including POST /v1/parse requests that set to, instead of all HTTP requests
  • Public discovery routes are limited to 120 requests per 60 seconds per IP address

2026-09-30 — Parse endpoint

  • Added authenticated POST /v1/parse for written measurements such as 12.5 kg, 100km/h, and 5 ft 11 in
  • Optional to converts the parsed value in the same request; ambiguous regional words return AMBIGUOUS_UNIT candidates

2026-09-30 — Optional result rounding

  • Optional decimals (0-40) on convert and batch items rounds result.value with half-even rounding
  • Omit decimals for full engine precision

2026-09 — API v1 public documentation

  • Public Measurement API v1 documentation site
  • Endpoints: convert, batch, categories, units, health, OpenAPI
  • Decimal-string values, Bearer auth, burst rate limits