CHANGELOG

What's new.

API releases, dated by the day they shipped. To follow document and regulation changes, add a webhook from your dashboard.

2026-09-29

Customs classification: Sonnet 5.5 reranker and a gate per model

apicustoms

The model that picks among the retrieved tariff lines is configurable, with a Haiku fallback. The classified gate now applies the thresholds of the model that answered: a floor of 0.9 for Sonnet 5.5, 0.92 for Opus 5.5 and 0.7 for Haiku. provenance.reranker names the answering model; production responses captured on 29 September 2026 show bedrock-sonnet-5.5. (cleo-legal-api #451, #452)

2026-09-29

National tariff line by tree descent

apicustoms

Once the HS6 is settled, POST /v2/customs/classifications can read every national line under it and choose along the official tree, asking for a missing product fact when the split depends on one. It runs behind the CUSTOMS_TREE_DESCENT flag; when it runs, the response carries provenance.tree_descent. (cleo-legal-api #454)

2026-09-28

Failed requests cost 0 units, one error envelope, webhook retries

apibillingwebhooks

Only 2xx responses are billed; 4xx and 5xx responses are refunded. Every /v2 error carries error.code, error.message, status, reason, kind, hint, alternatives and request_id. Quota refusals: 402 for the monthly and lifetime caps, 429 for the per-minute limit. Webhook deliveries retry any non-2xx or network error on the 1m, 5m, 30m, 2h, 12h schedule (6 attempts). (cleo-legal-api #446)

2026-09-28

MCP over /mcp/sse, search limit and date filters

apimcp

GET /mcp/sse serves the legacy SSE transport again and POST /mcp/sse answers over Streamable HTTP, next to /mcp. /v2/search returns exactly limit results and applies date_from and date_to (undated documents only with include_undated=true). ?cursor= is accepted as an alias of after. (cleo-legal-api #447)

2026-09-28

Sanctions search reads the live lists

api

/v2/sanctions now searches the base tables of every authority, including words inside long names. Queries such as rosneft returned 0 hits before. (cleo-legal-api #440)

2026-09-28

A stricter classified status

apicustoms

A classification is classified only when independent signals agree: retrieval similarity, rank among the candidates, and a margin over other headings and chapters. English descriptions are detected as English. When classification times out inside POST /v2/compliance/check, the answer says the code is provisional. (cleo-legal-api #444, #443)

2026-09-26

TypeScript SDK 0.9.0

sdk

Customs classification, batches, dossiers, human review, the full compliance decision, webhook V2 verification and the catalog connectors. Published as a GitHub release on 28 September 2026 (cleo-customs-examples, tag sdk-v0.9.0); npm still serves 0.7.0. (cleo-legal-api #432)

2026-09-25

Customs Classification API

apicustoms

POST /v2/customs/classifications with product facts, missing-attribute questions and kits; evidence quoted verbatim from HS and CN notes; asynchronous batches with CSV in and out; dossier export in JSON and PDF; human review and account history; nomenclature change detection with a webhook; Shopify and CSV connectors; national catalogs added by bloc and country. Idempotency-Key on synchronous POSTs, GET /v2/me/quota, and Starter enforced at 60 requests per minute and 100,000 units per month. (cleo-legal-api #416 to #438)

2026-09-23

Customs coverage per territory

apicustoms

GET /v2/customs/coverage/countries says, for each of 249 ISO territories, whether a lookup answers at the national tariff line or at HS6 only. GET /v2/customs/codes/validate checks a code against its catalog. (cleo-legal-api #413, #415)

2026-06-01

TypeScript SDK 0.7.0 on npm

sdk

Amendments, as-of-date reads, sanctions and customs rate history in @cleo-legal/sdk, the version npm serves today. (cleo-legal-api #321)

2026-05-28

Public site redesign

site

New product landing, pricing with Starter tier, redesigned playground with public demo mode, and a 3-step dashboard onboarding.

2026-05-21

/v2/translate endpoint

api

Translate any clause into 4 languages. Cached for 14 days. Counts as 1 call per language pair.

2026-05-15

Customs duty calculator

apicustoms

POST /v2/customs/landed-cost now returns line-by-line duty + VAT breakdown for EU, US, and EAEU shipments.