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

# Simple replace

> task=replace_simple — clip and range only; stored as replace_section

Replace a span when you do not want to build `infill_context_range` or the full aligned lyrics yourself. The server snaps the range, widens it if needed, and stores, bills, and reports the task as **`replace_section`**.

`POST /suno/v2/generate` returns `{ "taskId" }`. Poll [Get Task Status](/api-reference/suno/task). Schema: `GET /suno/v2/generate/schema?task=replace_simple`.

## What the server does

* Range snaps to a 40ms grid.
* A span shorter than 4 seconds is widened around its center. The result is still capped at **120 seconds**.
* A song shorter than 4 seconds is **HTTP 400**.
* Context is about **±15 seconds** around the span. Do not send `infill_context_range` — it is ignored and not allowed.
* Omit `title` and `tags` to keep the original song’s title and style.
* `infill_type` is deprecated. `smart`, `classic`, and `fixed` all become infill.

## Lyrics, in order

The server picks the first rule that applies:

1. `continued_aligned_prompt` — you already wrote the full lyrics with the new lines in place.
2. Otherwise the original lyrics, swapping `original_infill_lyrics` for `infill_lyrics` (a one-line change).
3. Otherwise the original lyrics unchanged (music-only; the words stay).
4. Otherwise **HTTP 400** — the clip has no lyrics and you did not send `continued_aligned_prompt`.

## Parameters

| Field | Required | Notes |
| - | - | - |
| `task` | Yes | `"replace_simple"` |
| `model` | Yes | `chirp-v6` recommended |
| `clip_id` | Yes | Clip to edit |
| `range` | Yes | `{ "start_s", "end_s" }` |
| `continued_aligned_prompt` | No | Full lyrics. Wins over the other lyric fields |
| `original_infill_lyrics` | No | Exact line(s) to find in the original |
| `infill_lyrics` | No | Replacement line(s) |
| `title` / `tags` | No | Omit to keep the original |
| `persona` | No | Optional artist infill |

## Examples

Music only. The original words stay:

```json theme={null}
{
  "task": "replace_simple",
  "model": "chirp-v6",
  "clip_id": "3e7e9538-c474-45a7-8181-3da327bd654b",
  "range": { "start_s": 30, "end_s": 45 }
}
```

Swap one line:

```json theme={null}
{
  "task": "replace_simple",
  "model": "chirp-v6",
  "clip_id": "3e7e9538-c474-45a7-8181-3da327bd654b",
  "range": { "start_s": 30, "end_s": 45 },
  "original_infill_lyrics": "old line here",
  "infill_lyrics": "new line here"
}
```

You already have the full lyric sheet:

```json theme={null}
{
  "task": "replace_simple",
  "model": "chirp-v6",
  "clip_id": "3e7e9538-c474-45a7-8181-3da327bd654b",
  "range": { "start_s": 30, "end_s": 45 },
  "continued_aligned_prompt": "[Verse]\nSunshine on my face today\n[Chorus]\nBrand new chorus line"
}
```


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