---
title: "Check audio against a loudness target (Spotify, EBU, podcast, etc.)"
method: POST
path: "/v1/mixlab/check-target"
tags: ["MixLab"]
---

# Check audio against a loudness target (Spotify, EBU, podcast, etc.)

`POST /v1/mixlab/check-target`

## Request

- Base URL: `https://audiolab.tools`
- URL: `https://audiolab.tools/v1/mixlab/check-target`
- Auth: HTTP bearer

Run MixLab and verify against a delivery target. Returns pass/fail, per-metric
deltas, issue messages, and an ffmpeg loudnorm command when it fails. Presets:
spotify, apple-music, youtube, tidal, amazon-music, podcast, ebu-broadcast,
atsc-broadcast. Use custom with lufs+tp.

## Request body

- object
  - `url` string, uri: Public http(s) URL to the audio file.
  - `objectPath` string: Path returned by /api/upload-url, for audio that has no public URL. Readable only by the key that uploaded it, and kept for about an hour so a follow-up question about the same file does not need a re-upload.
  - `target` string, required: Preset name or "custom".
  - `lufs` number: Custom target LUFS (when target="custom").
  - `tp` number: Custom target dBTP (when target="custom").

## Response `200`

Target check complete.

- CheckTargetResult: Pass/fail verdict for a loudness target check, with concrete deltas and an ffmpeg loudnorm fix command.
  - `pass` boolean, required: True only if both LUFS within ±0.5 LU of target and true-peak ≤ target+0.5 dB.
  - `target` object, required
    - `lufs` number: Target integrated loudness (LUFS).
    - `tp` number: Target maximum true-peak (dBTP).
    - `label` string: Human-readable target name (e.g. "Spotify").
    - `source` 'published' | 'measured': published: the platform documents the figure. measured: taken from outside measurements, so it can shift.
    - `sourceUrl` string, uri: Where the platform publishes the figure. Present on published targets.
    - `verifiedOn` string, date: Date the published figure was last checked at sourceUrl.
    - `measurementCaveat` string: How the platform's own measurement differs from integrated loudness. Present only where it does (atsc-broadcast).
    - `bron` 'published' | 'measured': Deprecated Dutch alias of source; removed after 2026-10-31.
    - `bewijs` string: Deprecated Dutch alias of sourceUrl; removed after 2026-10-31.
    - `gecontroleerd` string: Deprecated Dutch alias of verifiedOn; removed after 2026-10-31.
    - `meetVerschil` string: Deprecated Dutch alias of measurementCaveat; removed after 2026-10-31.
  - `measurements` object, required
    - `integratedLufs` number
    - `truePeakDb` number
    - `lufsDelta` number: measured - target.
    - `tpDelta` number: measured - target.
  - `issues` object[], required
    - `metric` 'integratedLufs' | 'truePeakDb'
    - `issue` 'too_loud' | 'too_quiet' | 'true_peak_exceeded'
    - `delta` number
    - `message` string
  - `ffmpegFix` string, nullable: ffmpeg loudnorm one-liner to fix when failing; null when passing.

## Other responses

- `400`: Malformed request, a URL we could not use, or a parameter that is not valid. Codes: url_not_allowed, url_fetch_failed, invalid_json, missing_input, invalid_parameter, batch_too_large, upload_not_found.
- `401`: Invalid or revoked API key. /v1/batch and /v1/usage always need a key; the analysis routes also run without one, as a small keyless trial. Codes: invalid_api_key.
- `402`: A limit of your plan was reached: the calls or the data of the month, or a preset that needs a paid plan. The body carries usage where it applies. Codes: quota_exceeded, data_quota_exceeded, profile_requires_paid_plan, voice_minutes_exhausted.
- `413`: File too large for the route, or a recording too long to decode. Codes: file_too_large, track_too_long.
- `429`: Too many requests this minute. See Retry-After. Codes: rate_limited.
- `500`: Something went wrong on our side. The details are logged and never sent to you. Codes: storage_unavailable, analysis_error.

---

[API](https://skmtc.dev/audiolab/apis/audiolab-api.md) · [All operations](https://skmtc.dev/audiolab/apis/audiolab-api/llms.txt) · [OpenAPI document](https://skmtc.dev/audiolab/apis/audiolab-api/revisions/69ff81f4f4ba?raw)
