/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:
roundandmeasureStatusare 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.codeand keep a default for codes you do not know. Never branch on the wording ofmessage.
What counts as a change
| Happens at any time | Announced first, with at least 90 days |
|---|---|
| A new route | Removing or renaming a field |
| A new opt-in option | Changing a field’s type, unit or meaning |
| A new status, margin or explanation in the documentation | Removing a route or an option |
| A faster analysis with the same numbers | A 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.
- The response itself. Every successful analysis response, single or batch, carries
X-AudioLab-Changelog: https://audiolab.tools/changelogandLinkheaders to the documentation, the OpenAPI document and the error pages. A response that contains a deprecated name also carriesDeprecation: true, aSunsetheader with the date, and aLinkwithrel="deprecation"to the changelog. - The changelog. /changelog has one entry for every change, with the date.
- What’s new. The latest API changes sit at the top of /api and /docs.
- 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 name | Use instead |
|---|---|
bron | source |
meetVerschil | measurementCaveat |
bewijs | sourceUrl |
gecontroleerd | verifiedOn |
aanvalSterkte | attackStrength |
maten | bars |
tempoSterkte | tempoStrength |
keuzeMarge | candidateMargin |
bpmRuw | bpmRaw |
octaven | octaveCandidates |
naadVerhouding | seamRatio |
randStilte | edgeSilence |
voorMs | startMs |
naMs | endMs |
alles | all |
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
DeprecationandSunsetheaders if your client sees them. They are the earliest warning. - Ask for
measureStatusand 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.