Concepts
Outputs
When a job is done, you download its files from signed URLs and, if you asked for one, read its analysis.
Listing outputs
GET /v1/jobs/{job_id}/outputs lists the files of a job that's done, each with a download URL. In the curl sample, OUTPUT_URL stands for one of them.
curl "https://platform-api.nomono.co/v1/jobs/job_01a14471b2d47f19b6a3c0e5d8f9a1b2/outputs" \ -H "Authorization: Bearer $NOMONO_API_KEY"curl -o host.wav "$OUTPUT_URL"{ "outputs": [ { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a17", "type": "tracks", "label": "Host", "source_id": "src_01a1446f235c7448abbe096c9b9adf6c", "format": "wav", "profile": null, "size_bytes": 176084204, "url": "https://....s3.eu-west-1.amazonaws.com/...?X-Amz-Expires=86400&X-Amz-Signature=...", "expires_at": "2026-10-17T09:45:20Z" }, { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a18", "type": "tracks", "label": "Host", "source_id": "src_01a1446f235c7448abbe096c9b9adf6c", "format": "opus", "profile": null, "size_bytes": 21208733, "url": "https://...", "expires_at": "2026-10-17T09:45:20Z" }, { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a19", "type": "tracks", "label": "Host", "source_id": "src_01a1446f235c7448abbe096c9b9adf6c", "format": "waveform", "profile": null, "size_bytes": 21402, "url": "https://...", "expires_at": "2026-10-17T09:45:20Z" }, { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a1a", "type": "tracks", "label": "Guest", "source_id": "src_01a1446f8e8f7b23a4c06d1c3e5f7a90", "format": "wav", "profile": null, "size_bytes": 176084204, "url": "https://...", "expires_at": "2026-10-17T09:45:20Z" }, { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a1b", "type": "tracks", "label": "Guest", "source_id": "src_01a1446f8e8f7b23a4c06d1c3e5f7a90", "format": "opus", "profile": null, "size_bytes": 20995120, "url": "https://...", "expires_at": "2026-10-17T09:45:20Z" }, { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a1c", "type": "tracks", "label": "Guest", "source_id": "src_01a1446f8e8f7b23a4c06d1c3e5f7a90", "format": "waveform", "profile": null, "size_bytes": 21388, "url": "https://...", "expires_at": "2026-10-17T09:45:20Z" }, { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a1d", "type": "mix", "label": null, "source_id": null, "format": "stereo", "profile": null, "size_bytes": 352168364, "url": "https://...", "expires_at": "2026-10-17T09:45:20Z" }, { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a1e", "type": "mix", "label": null, "source_id": null, "format": "opus", "profile": null, "size_bytes": 23110587, "url": "https://...", "expires_at": "2026-10-17T09:45:20Z" }, { "output_id": "out_01a144729c0e7b31a8f45d2c6e9b0a1f", "type": "mix", "label": null, "source_id": null, "format": "waveform", "profile": null, "size_bytes": 21455, "url": "https://...", "expires_at": "2026-10-17T09:45:20Z" } ], "analysis": { "session_id": "ses_01a14471a03b7c56a1e28d9f4b6c7d8e", "duration_s": 1834.21, "sources": [ { "source_id": "src_01a1446f235c7448abbe096c9b9adf6c", "label": "Host", "loudness_lufs": -23.8205141512005, "peak": 0.5196996978667562, "duration_s": 1834.21, "problems": [] }, { "source_id": "src_01a1446f8e8f7b23a4c06d1c3e5f7a90", "label": "Guest", "loudness_lufs": -16.402177630913, "peak": 0.9994, "duration_s": 1834.21, "problems": ["clipping"] } ] }}Until the job is done, this returns 404 not_found, "Outputs not found", with the job's status in the hint.
{ "error": { "code": "not_found", "message": "Outputs not found", "hint": "Outputs are available once the job is done; it is assembling" }}Next to the outputs, the response has an analysis, which is null unless the job asked for one. Each output has these fields:
| Field | What it holds |
|---|---|
output_id | The output's ID, starting out_. |
type | tracks, mix or adm. |
label | For a track, the label its source has in the session, and null otherwise. |
source_id | For a track, the source it was made from, and null otherwise. |
format | What the file is, one of the kinds of output. |
profile | ebu or dolby for an ADM file, and null otherwise. |
size_bytes | The file's size in bytes. |
url | A signed download URL. |
expires_at | When url expires. |
Downloading
Download each url with a plain GET and without your API key. The URLs expire after 24 hours, and listing the outputs again gives you new ones. The files themselves are deleted along with their session.
Kinds of output
type | format | The file |
|---|---|---|
tracks | wav | The processed track of one microphone, or of the mixdown, as a WAV file. |
tracks | opus | The track's compressed copy, in Opus. |
tracks | waveform | The track's waveform data as JSON, for drawing it in a player. |
mix | stereo or binaural | The mix as a WAV file. |
mix | opus | The mix's compressed copy, in Opus. |
mix | waveform | The mix's waveform data as JSON. |
adm | wav, with profile ebu | An EBU ADM file. |
adm | wav, with profile dolby | A Dolby Atmos ADM file. |
A track of digital silence has only its WAV file, without an Opus copy or waveform data.
The analysis
analysis.sources has one entry for each processed track, in session order. Every value in it is measured on the processed audio.
| Field | What it holds |
|---|---|
source_id | The source the track was made from. |
label | The source's label in the session, or null. |
loudness_lufs | The track's integrated loudness in LUFS, or null when the track is silent. |
peak | The track's absolute sample peak, linear from 0 to 1, which is null or 0 when the track is silent. |
duration_s | The processed track's length in seconds. |
problems | silent for a track of digital silence and clipping for a peak of 0.999 or more, about −0.01 dBFS. The list is empty when neither applies. |
Binaural mixes
A binaural mix is a stereo mix for headphones with the voices placed around the listener. It needs products.spatialization and a session with a bed.
Warning
For now, every binaural mix is rendered with stage, which arranges the voices in an arc, whatever positions you set. ADM files always use the measured positions.
ADM files
An adm output is an ADM master for Dolby Atmos or EBU workflows. The voices are objects placed at the speakers' measured positions, and each microphone's label names its objects in the metadata. profile sets the file type:
profile | The file | bed_config | Default |
|---|---|---|---|
ebu | An EBU ADM file, which is a BW64 or WAV file with axml and chna chunks. | bformat, 7.1.2, 5.1 or 2.0 | bformat |
dolby | A Dolby Atmos ADM file, which has a dbmd chunk as well. | 7.1.2, 5.1 or 2.0 | 7.1.2 |
bed_config sets how the bed's recording of the room is written into the file, either as 4-channel first-order ambisonics with bformat or decoded to a 7.1.2, 5.1 or 2.0 channel bed.
ADM files come without an Opus copy or waveform data:
{ "outputs": [ { "output_id": "out_01a14473e5b17c02b9a4d6e8f0c2a4b6", "type": "adm", "label": null, "source_id": null, "format": "wav", "profile": "ebu", "size_bytes": 2113262180, "url": "https://...", "expires_at": "2026-10-17T10:02:41Z" }, { "output_id": "out_01a14473e5b17c02b9a4d6e8f0c2a4b7", "type": "adm", "label": null, "source_id": null, "format": "wav", "profile": "dolby", "size_bytes": 3698090114, "url": "https://...", "expires_at": "2026-10-17T10:02:41Z" } ], "analysis": null}