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

# Editing

> Edit Suno clips: replace a section, crop, remove a section, fade, change speed, reverse, or stitch an extended song together. See parameters, pricing, and API examples.

Edit an existing clip. Every operation returns a new clip and leaves the original untouched. All edits are free except **Replace Section**, which generates new audio.

## Models

| Model             | What it does                                               | Billed |
| ----------------- | ---------------------------------------------------------- | ------ |
| `suno-ai/infill`  | Regenerates a time range with new lyrics (replace section) | Yes    |
| `suno-ai/crop`    | Keeps only a range, or removes a range                     | No     |
| `suno-ai/fade`    | Adds a fade in, a fade out, or both                        | No     |
| `suno-ai/speed`   | Changes tempo, optionally keeping pitch                    | No     |
| `suno-ai/reverse` | Reverses the clip                                          | No     |
| `suno-ai/concat`  | Stitches an extended clip into one full song               | No     |

## Replace Section

Model: `suno-ai/infill`

| Parameter           | Type    | Required | Description                                                                  |
| ------------------- | ------- | -------- | ---------------------------------------------------------------------------- |
| `clip_id`           | string  | Yes      | Clip to edit                                                                 |
| `mv`                | string  | Yes      | Model version, see [Model Versions](/models/audio/suno/music#model-versions) |
| `start_s`           | number  | Yes      | Start of the section to replace, in seconds                                  |
| `end_s`             | number  | Yes      | End of the section to replace, in seconds                                    |
| `lyrics`            | string  | No       | Lyrics for the new section. Omit for instrumental                            |
| `context_start_s`   | number  | No       | Start of the surrounding context. Default: `start_s`                         |
| `context_end_s`     | number  | No       | End of the surrounding context. Default: end of the clip                     |
| `tags`              | string  | No       | Genre/style tags                                                             |
| `title`             | string  | No       | Title for the new clip                                                       |
| `make_instrumental` | boolean | No       | Replace with instrumental only                                               |
| `negative_tags`     | string  | No       | Styles to avoid                                                              |

Ranges that fall outside the clip are rejected before generation. Sections that start and end on bar boundaries blend best.

```bash theme={null}
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "suno-ai/infill",
    "input": {
      "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d",
      "mv": "chirp-fenix",
      "start_s": 15,
      "end_s": 35,
      "lyrics": "Hello darkness, my old friend"
    }
  }'
```

## Crop / Remove Section

Model: `suno-ai/crop`

| Parameter | Type    | Required | Description                                                                                       |
| --------- | ------- | -------- | ------------------------------------------------------------------------------------------------- |
| `clip_id` | string  | Yes      | Clip to edit                                                                                      |
| `start_s` | number  | Yes      | Range start in seconds                                                                            |
| `end_s`   | number  | Yes      | Range end in seconds                                                                              |
| `remove`  | boolean | No       | `false` keeps only the range (crop). `true` cuts the range out (remove section). Default: `false` |
| `title`   | string  | No       | Title for the new clip                                                                            |

```bash theme={null}
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "suno-ai/crop",
    "input": {
      "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d",
      "start_s": 0,
      "end_s": 30
    }
  }'
```

## Fade

Model: `suno-ai/fade`

| Parameter    | Type   | Required | Description                               |
| ------------ | ------ | -------- | ----------------------------------------- |
| `clip_id`    | string | Yes      | Clip to edit                              |
| `fade_in_s`  | number | No\*     | Fade-in length in seconds from the start  |
| `fade_out_s` | number | No\*     | Fade-out length in seconds before the end |
| `title`      | string | No       | Title for the new clip                    |

\* Provide at least one of `fade_in_s` or `fade_out_s`.

```bash theme={null}
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "suno-ai/fade",
    "input": {
      "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d",
      "fade_in_s": 3,
      "fade_out_s": 5
    }
  }'
```

## Speed

Model: `suno-ai/speed`

| Parameter          | Type    | Required | Description                                           |
| ------------------ | ------- | -------- | ----------------------------------------------------- |
| `clip_id`          | string  | Yes      | Clip to edit                                          |
| `speed_multiplier` | number  | Yes      | `0.25` to `4.0`                                       |
| `keep_pitch`       | boolean | No       | Preserve pitch while changing tempo. Default: `false` |
| `title`            | string  | No       | Title for the new clip                                |

```bash theme={null}
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "suno-ai/speed",
    "input": {
      "clip_id": "1901ec96-72c6-4c26-8e56-91028ca6070d",
      "speed_multiplier": 1.25,
      "keep_pitch": true
    }
  }'
```

## Reverse

Model: `suno-ai/reverse`

| Parameter | Type   | Required | Description            |
| --------- | ------ | -------- | ---------------------- |
| `clip_id` | string | Yes      | Clip to reverse        |
| `title`   | string | No       | Title for the new clip |

## Get Full Song

Model: `suno-ai/concat`

[Extend](/models/audio/suno/extend) returns only the new segment. Pass that extended clip here to receive one continuous song.

| Parameter | Type   | Required | Description             |
| --------- | ------ | -------- | ----------------------- |
| `clip_id` | string | Yes      | ID of the extended clip |

```bash theme={null}
curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "suno-ai/concat",
    "input": {
      "clip_id": "e69f5332-af8d-489e-b6ce-4a08a7f6429a"
    }
  }'
```

## Response

```json theme={null}
{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "processing"
  }
}
```

The completed task returns `clips` with the edited result, the same shape as [Music Generation](/models/audio/suno/music).

<Note>
  **Volume discounts** are available for almost all models. Reach out at [contact@unifically.com](mailto:contact@unifically.com) to discuss custom pricing.
</Note>
