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

# Flow Music Extend

> Continue a Flow Music clip from a chosen second. $0.09 per request.

`flow-music-extend` continues one of your Flow Music clips from a chosen second, following an instruction.

| Property | Value |
| - | - |
| Model ID | `flow-music-extend` |
| Endpoint | `POST /v1/music/generations` (asynchronous task) |
| Group | Flow Music |
| Input | A clip from one of your earlier tasks, a start second, a length, and an instruction |
| Result | One clip in `result.tracks` |
| Price | \$0.09 per request (9 credits) |

Confirm live rates on the [SnapGen models page](https://snapgen.org/models). Failed tasks are not charged.

<ParamField body="model" type="string" required>
  Set to `flow-music-extend`.
</ParamField>

<ParamField body="source_task_id" type="string" required>
  The `id` of your earlier task that holds the source clip. It must be your own task, must have succeeded, and must come from a model listed in [Source tracks](#source-tracks).
</ParamField>

<ParamField body="source_index" type="integer" default="1">
  Position of the source clip in that task's `result.tracks`, counting from `1` (up to `8`).
</ParamField>

<ParamField body="version" type="string" default="lyria-3-pro">
  Lyria version: `lyria-3-pro` (Lyria 3 Pro) or `lyria-3.5` (Lyria 3.5).
</ParamField>

<ParamField body="extend_from_s" type="number" required>
  Second of the source clip where the extension starts (from 0 to 3,600). Keep it within the clip.
</ParamField>

<ParamField body="extend_s" type="number" required>
  Seconds of new music to add, from 1 to 164.
</ParamField>

<ParamField body="instruction" type="string" required>
  What the continuation should do, up to 2,000 characters, for example `Continue the verse melody and add strings`.
</ParamField>

<ParamField body="title" type="string">
  Title of the new clip, up to 120 characters.
</ParamField>

<ParamField body="seed" type="integer">
  Random seed, from 0 to 4,294,967,295. The same seed and request give similar, not identical, results.
</ParamField>

<ParamField body="webhook" type="string">
  Optional public `https` URL that receives one signed event when the task finishes. See [Task webhooks](/api-reference/webhooks).
</ParamField>

<ParamField body="webhook_secret" type="string">
  Required with `webhook`: 16 to 256 characters, used to sign the delivery.
</ParamField>

## Source tracks

The source task must be your own succeeded task from one of these models:

[`flow-music`](/api-manual/audio/flow-music), [`flow-music-extend`](/api-manual/audio/flow-music-extend), [`flow-music-replace`](/api-manual/audio/flow-music-replace), [`flow-music-cover`](/api-manual/audio/flow-music-cover), [`flow-music-upload`](/api-manual/audio/flow-music-upload).

Send the task `id` as `source_task_id` and pick the clip with `source_index`. Each Flow Music task returns one clip, so `source_index` is normally `1`. Never send provider track or clip IDs. See [Reference earlier tasks](/api-reference/music-generations#reference-earlier-tasks).

## Request

```bash theme={null}
curl https://api.snapgen.org/v1/music/generations \
  -H "Authorization: Bearer $SNAPGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flow-music-extend",
    "source_task_id": "task_2f8KcX1mQpR7vT0yZa9Lb3",
    "extend_from_s": 30,
    "extend_s": 60,
    "instruction": "Continue the verse melody and add strings"
  }'
```

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

## Result

One clip arrives in `result.tracks[0]`, with its `audio_url`; `result.urls` lists the same file. Use this task as the source of later Flow Music operations.

```json theme={null}
{
  "urls": [
    "https://cdn.example.com/music/morning-drive.m4a"
  ],
  "tracks": [
    {
      "index": 1,
      "id": "a41aade4-993e-4d28-b56f-d97e7ef7167c",
      "audio_url": "https://cdn.example.com/music/morning-drive.m4a",
      "wav_url": "https://cdn.example.com/music/morning-drive.wav",
      "duration_seconds": 60.2
    }
  ]
}
```

<Note>
  Result URLs are kept for about 72 hours. Download the files you want to keep.
  See [Music generation tasks](/api-reference/music-generations) for the task lifecycle, result fields, webhooks, and errors.
</Note>
