Skip to content
Sign in

/docs · General · Intro

Changes and deprecation: what changes, when, and how you find out

The promise behind /v1, what counts as a change that needs notice, how we announce it, and what is deprecated today.


If you build on the API, this page is the fixed address for one question: what can change under me, and how will I know? The address will not move.

The promise

Today the API has one version, /v1. Within it:

  • Nothing is removed, renamed or retyped without notice. A field you read today keeps its name, its type and its meaning.
  • New fields arrive behind an opt-in. An answer you already parse does not grow a key you did not ask for: round and measureStatus are the first two opt-ins, and without them your answers are byte for byte what they were. If a field ever has to appear in the default answer, it is announced in the changelog first and arrives as one new key, never inside an existing object.
  • Error codes keep their meaning. A new situation can get a new code, so branch on error.code and keep a default for codes you do not know. Never branch on the wording of message.

What counts as a change

Happens at any timeAnnounced first, with at least 90 days
A new routeRemoving or renaming a field
A new opt-in optionChanging a field’s type, unit or meaning
A new status, margin or explanation in the documentationRemoving a route or an option
A faster analysis with the same numbersA rule that was not enforced before starts to be enforced
A new error code for a new situation

When we change how a measure is calculated, so that its numbers move, the changelog says which measures move and by how much. Such a change comes behind an opt-in first and becomes the default only after the notice period.

How you find out

You do not have to read this page again to notice a change.

  1. The response itself. Every successful analysis response, single or batch, carries X-AudioLab-Changelog: https://audiolab.tools/changelog and Link headers to the documentation, the OpenAPI document and the error pages. A response that contains a deprecated name also carries Deprecation: true, a Sunset header with the date, and a Link with rel="deprecation" to the changelog.
  2. The changelog. /changelog has one entry for every change, with the date.
  3. What’s new. The latest API changes sit at the top of /api and /docs.
  4. Your account. For about six weeks after each announcement, /account shows a notice with what changed or will change, and who it affects.

A change that can break a working integration is announced in the changelog, in What’s new and in your account before it happens. When it touches a field, the responses that carry that field say so in their headers.

What is deprecated today

The Dutch field names

Some answers still carry a Dutch field name next to the English one. The English name carries the same value, and the Dutch one keeps its old value and shape until the sunset. They stay until 31 January 2027 (the Sunset header says Sun, 31 Jan 2027 23:59:59 GMT). From 1 February 2027 only the English names are in the answers.

Deprecated nameUse instead
bronsource
meetVerschilmeasurementCaveat
bewijssourceUrl
gecontroleerdverifiedOn
aanvalSterkteattackStrength
matenbars
tempoSterktetempoStrength
keuzeMargecandidateMargin
bpmRuwbpmRaw
octavenoctaveCandidates
naadVerhoudingseamRatio
randStilteedgeSilence
voorMsstartMs
naMsendMs
allesall

The explain route also accepts vraag next to question until the same date.

Of the three routes in Compare voice-agent and TTS vendors, only mixlab/analyze is affected: platformNormalisation[] carries bron and meetVerschil next to source and measurementCaveat. Nothing in that guide reads them. The responses of voicelab/qa and signallab carry no deprecated name.

Withdrawn measures stay in the answer

A measure whose claim failed its test is marked Withdrawn, and its field stays in the answer so that nothing breaks. Today that is roomEchoScore, which is not a reverb measure. If a withdrawn field is ever removed, it follows the notice above.

Make your integration hard to break

  • Read fields by name, never by position, and ignore keys you do not know.
  • Branch on error.code, with a default.
  • Log the Deprecation and Sunset headers if your client sees them. They are the earliest warning.
  • Ask for measureStatus and watch the statuses of the measures you use. A measure that moves from Proxy to Validated, or the other way, shows there first.
  • Keep a small test of your own: call the three routes with a short file and compare the field names and types with what you read today.

Recent changes

  • 12 October 2026. GET /v1/usage, a Python client, ready calls in the spec, a reference you can try, and two new guides. Read the entry.
  • 12 October 2026. Errors have codes and links, two opt-in options, and the Dutch field names stay until 31 January 2027. Read the entry.

Questions

Write to support@audiolab.tools with what you build on and which route you call. If a change would hurt you, say so before the date in the notice.