Skip to main content
This is the changelog for the Current API (https://api.getcurrent.ca/v1). We note every change that a consumer could perceive — new fields, changed behavior, deprecations, and fixes — and label anything breaking clearly. Subscribe: an RSS feed for this page is generated automatically at /changelog/rss.xml. Point your reader (or a Slack RSS integration) at it to get notified of API changes.
Breaking changes are announced here before they ship, and API-key holders are emailed directly. If a change isn’t marked Breaking, it is additive and safe to adopt at your own pace.
BreakingChanged

Match thresholds now use the 0–1 scale everywhere

Breaking. /search and /sanctions took their match-confidence thresholds as percentages (70–100) while /verify took the same concept as a 0–1 fraction — and every score / matchScore the API reports is 0–1. That meant a confidence value you read out of a response could not be passed back in as a threshold. All thresholds are now 0–1:Both the request and the echo in meta.submitted move together, and GET /search/{id} returns the same shape as POST /search. The accepted range is unchanged in meaning: 0.7–1 where it used to be 70–100. A value outside it returns 400.To migrate, divide your threshold by 100. /verify’s matching thresholds were already 0–1 and are unaffected.

Corrected field types — regenerate your API client

We audited openapi.yaml against the implementation and found 36 field types that the spec got wrong. The API’s behaviour is not changing for any of these — the responses were always shaped this way; the spec described them incorrectly. But if you generate a typed client from our spec, your bindings were wrong and may throw on values the API has always been able to return. Regenerate.

Genuinely different types (8)

The four threshold rows are the behaviour change described above. The rest were mis-documented.StatusFieldMatch is FieldMatch with nullable provided / registry — not every business has a recorded status, business number or entity type.

Documented as non-nullable, but can be null (23)

The most likely source of a null-pointer error in a typed client.

Documented as nullable, but never null (5)

These are omitted when absent rather than returned as null.

POST /sanctions always echoes source

meta.submitted.source was only present when you set source explicitly. It is now always returned, defaulting to "current". The opensanctions path also stopped dropping the rest of your submitted parameters (entityType, countries, sources, dateOfBirth, typoTolerance, nameVariants) from the echo, so both paths now return the same shape. Both are additive.
Added

Search & verify a stored business by id

POST /search and POST /verify now accept a reference to one of your stored business records instead of re-supplying its details. Reference it by our id with businessId, or by your own id on the record with the new businessExternalId — the request fields (name/website for search; legal name, jurisdiction, registration number, address, people for verify) are hydrated from that record. Any field you also send overrides the record for that request only; the stored record is never modified.
  • name (search) and legalName / jurisdiction / registrationNumber (verify) become optional when a reference is provided.
  • An unknown or foreign id returns 404 NOT_FOUND. Supplying both businessId and businessExternalId that point at different records returns 400.
  • A businessId-linked search compares its results against the record (the comparison / discrepancy view), same as a batch search.
Clarification: on /verify, the existing externalId field is your reference id recorded as metadata on the verification result — it is not a business lookup and never modifies the business record. Use the new businessExternalId to look a business up by your own id.All changes are additive — existing requests are unaffected.
Announcement

API changelog is live

We now publish a dedicated changelog for the Current API. Going forward, every release that touches the /v1 surface — endpoints, request or response shapes, webhooks, rate limits, or auth — gets an entry here, categorized as Breaking, Added, Changed, Deprecated, or Fixed.Nothing about the API has changed in this entry — this is the starting point. The current surface is documented in the API Reference.