> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toapis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Analysis & Export

> midi transcription, bpm analysis, alignedLyrics timing, download/wav, generateMp4

```
POST https://toapis.com/v1/music/generations/{operation}
```

<ParamField body="model" type="string" required>Fixed `"suno"`</ParamField>
<ParamField body="task_id" type="string" required>Source task ID</ParamField>
<ParamField body="audio_index" type="number">Source track index</ParamField>

## midi — MIDI transcription (\$0.05)

Transcribes a song into per-instrument note data in `result.instruments[]`:

<ResponseField name="instruments" type="array">
  <Expandable title="Instrument track">
    <ResponseField name="name" type="string">Instrument name, e.g. `Electric Piano 1`</ResponseField>
    <ResponseField name="program" type="integer">General MIDI program number</ResponseField>
    <ResponseField name="is_drum" type="boolean">Drum track (pitch is a drum-note number, not a key)</ResponseField>

    <ResponseField name="notes" type="array">
      Note list: `start`/`end` (seconds), `pitch` (MIDI note 0-127), `velocity` (0-1)
    </ResponseField>
  </Expandable>
</ResponseField>

## bpm — BPM analysis (\$0.0008)

Returns `avg_bpm` / `max_bpm` / `min_bpm` in `result`.

## alignedLyrics — lyrics timing (\$0.0008)

Returns per-line / per-word timing alignment.

## download — multi-format download (\$0.0016)

<ParamField body="formats" type="array">Format list: `mp3` / `m4a` / `wav`</ParamField>
<ParamField body="format" type="string">Single format (provide `formats` or `format`, at least one)</ParamField>

Returns `result.files[]`; files are mirrored to our CDN.

## generateMp4 — lyric video (\$0.004)

Generates an MP4 with lyrics; returns `result.videoUrl` (mirrored to CDN).

## wav — WAV download (\$0.0016, legacy)

<Tip>Deprecated — use `download` with `format: "wav"` instead.</Tip>

## Response

<ResponseField name="task_id" type="string">Task ID</ResponseField>
<ResponseField name="status" type="string">`submitted`</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.