# ACE Step Audio Inpaint API

> גענערירט ווידער אַ אויסגעקליבענעם צייט־אינטערוואַל פֿון אַן עקזיסטירנדיקן אַודיאָ־טעקע מיט נייע טאַגס און ליריקס

נעמט אַן `audio_url` און שרײַבט איבער בלויז דעם אָפּטייל צווישן `start_time` און `end_time`, וואָס ווערן ביידע געמאסטן אין סעקונדעס פֿון 0 ביז 240. יעדער צייט קען ווערן באַשטימט רעלאַטיוו צו דעם אָנהייב אָדער סוף פֿונעם קליפּ. נײַע `tags` און `lyrics` פירן דעם איבערגעביטענעם טייל, און `variance` קאָנטראָלירט ווי פֿאַרשיידנאַרטיק דער רעזולטאַט איז. די געוויינטלעכע גיידאַנס־ און סטעפּ־באַשטעטיקונגען זענען בנימצא.

- Model id: `ace-step/audio-inpaint`
- Made by: ACE Studio
- Category: Text to Music
- Output: audio
- Price per second of your input audio: $0.0002 / second of input audio (cheapest run $0.001 (1 API credit))
- Run: `POST https://api.doitong.com/v1/run/ace-step/audio-inpaint`
- Quote: `POST https://api.doitong.com/v1/quote/ace-step/audio-inpaint`
- Docs page: https://doitong.com/yi/developers/models/ace-step/audio-inpaint

## Pricing

Price: **$0.0002 / second of input audio**. Price per second of your input audio: the input files are measured before the run (length, resolution, frame rate). The quote measures the same files and is exactly what the run charges.

The full example input below costs $0.002 = 2 API credits (10 s input audio × $0.0002).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). `POST https://api.doitong.com/v1/quote/ace-step/audio-inpaint` with the same JSON body returns the exact price for that input; the quote is exactly what a run charges. Invalid input is never charged and failed or canceled requests are refunded automatically.

## Input parameters

Send either the canonical name or the native field name (not both). Canonical names are the same across models.

| Parameter | Canonical name | Type | Required | Default | Allowed values / range | Description |
|---|---|---|---|---|---|---|
| `audio_url` | `audio` | string (audio URL) | yes |  |  | URL פון דער אַודיאָ־פֿײַל פֿאַר אינפּיינטינג. |
| `start_time_relative_to` |  | enum (string) | no | `start` | `start`, `end` | רעפֿערענץ־פּונקט פֿאַר דער אָנהייב־צײַט: אָדער דער אָנהייב פון אַודיאָ, אָדער זײַן סוף. |
| `start_time` |  | number | no | `0` | 0 – 240 | אינפּיינטינג־אָנהייבצײַט, געמאסטן אין סעקונדעס. |
| `end_time_relative_to` |  | enum (string) | no | `start` | `start`, `end` | רעפֿערענץ־פּונקט פֿאַר דער סוף־צײַט: אָדער דער אָנהייב פון אַודיאָ, אָדער זײַן סוף. |
| `end_time` |  | number | no | `30` | 0 – 240 | אינפּיינטינג־סוףצײַט, געמאסטן אין סעקונדעס. |
| `tags` |  | string | yes |  |  | אַודיאָ-סטיל־טאַגס, צוגעשטעלט ווי קאָמאַ־אָפּגעטיילטע זשאַנערס; `prompt` איז אַן אַלטערנאַטיווע וועג זיי צו צושטעלן. |
| `lyrics` |  | string | no | `` |  | געזונגעןע ליריקס, מיט ליד־אָפּטיילן אָרגאַניזירט דורך קאָנטראָלן ווי [verse], [chorus] און [bridge]. פֿאַר אַודיאָ אָן געזונגעןע ליריקס, לאזט דעם אַרײַנגעבונג אויס אָדער צושטעלט בלויז [inst] אָדער [instrumental]. |
| `variance` |  | number | no | `0.5` | 0 – 1 | אינפּיינטינג־וואַריאַנץ קאָנטראָלירט ווי דייווערס די רעזולטאַטן קענען זײַן; איר פאַרגרעסערן קען צוגעבן מער וואַריאַציע. |
| `number_of_steps` |  | integer | no | `27` | 3 – 60 | צאָל שריט וואָס ווערן גענוצט בעת אַודיאָ־גענערירונג. |
| `seed` |  | integer \| null | no |  |  | סיד פֿאַר רעפּראָדוצירבאַרע גענערירונג; ווערט ראַנדאָם אויסגעקליבן סיידן איר צושטעלט אַ ווערט. |
| `scheduler` |  | enum (string) | no | `euler` | `euler`, `heun` | סקעדזשולער וואָס ווערט גענוצט בעת גענערירונג. |
| `guidance_type` |  | enum (string) | no | `apg` | `cfg`, `apg`, `cfg_star` | CFG־טיפּ וואָס ווערט גענוצט בעת גענערירונג. |
| `granularity_scale` |  | integer | no | `10` | -100 – 100 | גראַנולאַריטעט־סקאלה וואָס ווערט געווענדט בעת גענערירונג. איר פאַרגרעסערן קען רעדוצירן אַרטעפאַקטן. |
| `guidance_interval` |  | number | no | `0.5` | 0 – 1 | דער טייל פון דעם גענערירונג־סקעדזשול וואָס באַקומען גיידאַנס: 0.5 באַגרענעצט עס צו שריט פון 0.25 * infer_steps ביז 0.75 * infer_steps, און לאזט דעם אָנהייב און סוף אָן גיידאַנס. |
| `guidance_interval_decay` |  | number | no | `0` | 0 – 1 | גיידאַנס־פאַרקלענערונג אין דעם גענערירונג־אינטערוואַל: 0.0 האלט די פאַרקלענערונג אויסגעשלאָסן; אַנדערש ווערט די סקאלה קלענער איבער דעם אינטערוואַל פון guidance_scale ביז min_guidance_scale. |
| `guidance_scale` |  | number | no | `15` | 0 – 200 | סקאלה פון דער גיידאַנס וואָס ווערט געווענדט בעת גענערירונג. |
| `minimum_guidance_scale` |  | number | no | `3` | 0 – 200 | נידעריקסטע גיידאַנס־סקאלה וואָס ווערט דערגרייכט נאָך פאַרקלענערונג בעת גענערירונג. |
| `tag_guidance_scale` |  | number | no | `5` | 0 – 10 | סקאלה פון טאַג־גיידאַנס וואָס ווערט געווענדט בעת גענערירונג. |
| `lyric_guidance_scale` |  | number | no | `1.5` | 0 – 10 | סקאלה פון ליריקס־גיידאַנס וואָס ווערט געווענדט בעת גענערירונג. |

File parameters (`audio`) take a public `https://` URL, a `data:` URI up to 10 MB, or the `file_url` of an upload from `POST /files`.

## Example input

Required parameters only:

```json
{
  "tags": "lofi, hiphop, drum and bass, trap, chill",
  "audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
}
```

A fuller example:

```json
{
  "tags": "lofi, hiphop, drum and bass, trap, chill",
  "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
}
```

## Run it

Set `DOITONG_API_KEY` to a key from https://doitong.com/developers/dashboard#keys. `?wait=20` returns the finished request in the same call when it is ready within 20 seconds; otherwise poll `GET /requests/{id}` (it also accepts `?wait=`), or pass `webhook_url`.

### curl

```bash
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ace-step/audio-inpaint?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tags": "lofi, hiphop, drum and bass, trap, chill",
    "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

### JavaScript

```javascript
const API = "https://api.doitong.com/v1";
const headers = {
  "Authorization": "Bearer " + process.env.DOITONG_API_KEY,
  "Content-Type": "application/json",
};

// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/ace-step/audio-inpaint?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "tags": "lofi, hiphop, drum and bass, trap, chill",
    "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  }),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);

// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
  res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
  request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
```

### Python

```python
import os
import requests

API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}

payload = {
    "tags": "lofi, hiphop, drum and bass, trap, chill",
    "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/ace-step/audio-inpaint", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
    raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])

# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
    request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
    raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
```

### MCP

The MCP server at `https://api.doitong.com/v1/mcp` exposes the tools `search_models`, `get_model`, `quote`, `run`, `get_request`, `cancel_request`, `list_requests`, `create_upload` and `get_account`. A `run` call for this model:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "run",
    "arguments": {
      "model_id": "ace-step/audio-inpaint",
      "input": {
        "tags": "lofi, hiphop, drum and bass, trap, chill",
        "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
      },
      "wait_seconds": 20
    }
  }
}
```

## Response

Every call returns a request object. `status` is one of `queued`, `running`, `succeeded`, `failed`, `canceled`. `outputs` lists the generated files with URLs on our storage (kept forever, or 7 days with `?storage=temporary`; `storage` says which); `output` is the model's own result object with the same URLs.

```json
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "ace-step/audio-inpaint",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 2,
    "usd": "0.002",
    "charged": 2,
    "refunded": 0
  },
  "input": {
    "tags": "lofi, hiphop, drum and bass, trap, chill",
    "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  },
  "output": {
    "audio": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
      "content_type": "audio/mpeg",
      "file_name": "0-output.mp3",
      "file_size": 1843200
    },
    "seed": 42,
    "tags": "lofi, hiphop, drum and bass, trap, chill",
    "lyrics": "[inst]"
  },
  "outputs": [
    {
      "type": "audio",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
      "content_type": "audio/mpeg",
      "file_size": 1843200,
      "duration": 12,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

### Output fields (`output`)

| Field | Type | Description |
|---|---|---|
| `audio` | object {url, content_type, file_name, file_size} | אַודיאָ־פֿײַל געשאַפֿן דורך גענערירונג. |
| `seed` | integer | ראַנדאָם סיד וואָס ווערט גענוצט בעת גענערירונג. |
| `tags` | string | זשאַנער־טאַגס וואָס ווערן געווענדט בעת גענערירונג. |
| `lyrics` | string | ליריקס וואָס ווערן געווענדט בעת גענערירונג. |

## Related models

- [ACE Step](https://doitong.com/developers/models/ace-step.md) (`ace-step`): $0.0002 / second
- [ACE Step Audio Outpaint](https://doitong.com/developers/models/ace-step/audio-outpaint.md) (`ace-step/audio-outpaint`): $0.0002 / second of output audio
- [ACE Step Audio To Audio](https://doitong.com/developers/models/ace-step/audio-to-audio.md) (`ace-step/audio-to-audio`): $0.0002 / second of input audio
- [ACE Step Prompt To Audio](https://doitong.com/developers/models/ace-step/prompt-to-audio.md) (`ace-step/prompt-to-audio`): $0.0002 / second
- [MiniMax Music 3](https://doitong.com/developers/models/minimax/music-3.md) (`minimax/music-3`): $0.002 / second
- [DiffRhythm: Lyrics to Song](https://doitong.com/developers/models/diffrhythm.md) (`diffrhythm`): $0.001 / second
- [Elevenlabs Music](https://doitong.com/developers/models/elevenlabs/music.md) (`elevenlabs/music`): $0.60 / minute of output audio
- [Elevenlabs Music v2](https://doitong.com/developers/models/elevenlabs/music/v2.md) (`elevenlabs/music/v2`): $0.60 / minute of output audio

## Links

- HTML page: https://doitong.com/developers/models/ace-step/audio-inpaint
- All models and guides for AI agents: https://doitong.com/developers/llms.txt
- OpenAPI 3.1 with this model's typed request body: https://doitong.com/developers/openapi.json?model=ace-step/audio-inpaint
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/ace-step/audio-inpaint
