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 auditedopenapi.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) andlegalName/jurisdiction/registrationNumber(verify) become optional when a reference is provided.- An unknown or foreign id returns
404 NOT_FOUND. Supplying bothbusinessIdandbusinessExternalIdthat point at different records returns400. - A
businessId-linked search compares its results against the record (the comparison / discrepancy view), same as a batch search.
/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.