Skip to main content
POST
Suno MIDI
suno-midi transcribes one of your tracks into MIDI note data. Confirm live rates on the SnapGen models page. Failed tasks are not charged.
string
required
Set to suno-midi.
string
required
The id of your earlier task that holds the source track. It must be your own task, must have succeeded, and must come from a model listed in Source tracks.
integer
default:"1"
Position of the source track in that task’s result.tracks, counting from 1 (up to 8).
string
Optional public https URL that receives one signed event when the task finishes. See Task webhooks.
string
Required with webhook: 16 to 256 characters, used to sign the delivery.

Source tracks

The source task must be your own succeeded task from one of these models: suno-music, suno-inspo, suno-sounds, suno-upload, suno-upload-cover, suno-upload-extend, suno-extend, suno-cover, suno-remaster, suno-add-vocals, suno-add-instrumental, suno-add-stem, suno-replace-section, suno-remove-section, suno-crop, suno-fade-in, suno-fade-out, suno-speed, suno-concat, suno-mashup, suno-sample. Send the task id as source_task_id and pick the track with source_index. Never send provider track or clip IDs. See Reference earlier tasks.

Request

The response is HTTP 202 with a task object and a Location: /v1/tasks/{id} header. Poll GET /v1/tasks/{id} every 10 to 20 seconds until status is succeeded or failed.

Result

Note data arrives in result.midi, with state and instruments[]; each instrument has a name and notes[] with pitch, start, end, and velocity. No .mid file URL is returned.
See Music generation tasks for the task lifecycle, result fields, webhooks, and errors.