NomonoPlatform docs

Getting started

Limits

Requests, files, sessions and jobs have limits, and going past one returns an error or ends the job.

Request bodies

Request bodies can be at most 1 MiB, or 1,048,576 bytes, on both the API and the MCP server, and the audio you upload doesn't count toward it.

413 Content Too Large
{  "error": {    "code": "payload_too_large",    "message": "The request body is larger than 1 MiB"  }}

Files and uploads

LimitValueBeyond it
File size4 GiB (4,294,967,296 bytes)400 validation_error when you create the upload: "size_bytes must be between 1 and 4294967296 bytes"
File lengthAt least one second422 source_rejected when you complete the upload: "Audio is shorter than one second"
Part size64 MiB (67,108,864 bytes), with the rest of the file in the last partThe part's URL rejects any other length
count on POST /v1/uploads/{upload_id}/parts1 to 100400 validation_error
Upload expiry24 hours after creation, with its URLs404 not_found "Upload has expired"
Source not in a sessionExpires 7 days after its upload was completedWe delete it soon after

Sessions

LimitValueBeyond it
Length1 hour (3600 seconds), measured by the longest source400 validation_error: "A session's longest source may be at most 3600 seconds"
Microphones1 to 4, or none with a mixdown422 session_invalid
BedsAt most 1, and only with microphones422 session_invalid
MixdownsAt most 1, alone in its session422 session_invalid
Lengths of the microphones and the bedThe same, within 2.7 milliseconds422 session_invalid, naming the source furthest off
labelAt most 200 characters400 validation_error
retention_days1 to 3650, or none400 validation_error

Jobs

LimitValueBeyond it
Processing with no progress3 hoursThe job fails, as described in Jobs
Assembling ADM files3 hoursThe job fails
Output download URLs24 hours from the request that listed themList the outputs again for new URLs
Idempotency-Key1 to 128 characters, kept 24 hours400 validation_error. After 24 hours, the same key creates a new job.

Lists and usage

LimitValueBeyond it
limit on GET /v1/sessions and GET /v1/jobs1 to 200, 50 by default400 validation_error
Date range of GET /v1/usageAt most 366 days400 validation_error

Queueing

We process a limited number of jobs at a time, so when we're busy a new job waits in queued until there's room for it. You can cancel it until processing starts, and a cancelled job isn't billed.

Polling

Poll a job every few seconds at most, or use webhooks to be told when it ends.