# Seed Audio 1.0 API

> متن سے چلنے والا تقریر اور آڈیو جنریٹر، 3 حوالہ آڈیو کلپس یا ایک تصویر تک، پچ اور رفتار کے کنٹرول کے ساتھ

2048 حروف تک کے پرامپٹ سے آڈیو تخلیق کرتا ہے۔ پری سیٹ یا کلون کی گئی `voice` منتخب کی جا سکتی ہے، اور پرامپٹ میں زیادہ سے زیادہ 3 حوالہ کلپس کو @Audio1 سے @Audio3 تک کے طور پر شامل کیا جا سکتا ہے؛ اس کے بجائے ایک حوالہ تصویر بھی کام کرتی ہے، مگر آڈیو کے ساتھ نہیں۔ آؤٹ پٹ 8000 سے 48000 Hz تک کی سیمپل ریٹس پر wav، mp3، pcm یا ogg_opus ہوتی ہے۔ رفتار اور والیوم 0.5 سے 2 تک، پچ -12 سے 12 سیمی ٹونز تک تبدیل ہوتی ہے، اور `multilingual` مخلوط زبان کے متن کے لیے ویرینٹ فعال کرتا ہے۔

- Model id: `bytedance/seed-audio-1.0`
- Made by: ByteDance
- Category: Audio
- Output: audio
- Charged by usage (up to $0.154 per run, typical $0.023; the rest of the hold is refunded): $0.1875 / minute of generated audio (cheapest run $0.023 (23 API credits))
- Run: `POST https://api.doitong.com/v1/run/bytedance/seed-audio-1.0`
- Quote: `POST https://api.doitong.com/v1/quote/bytedance/seed-audio-1.0`
- Docs page: https://doitong.com/ur/developers/models/bytedance/seed-audio-1.0

## Pricing

Price: **$0.1875 / minute of generated audio**. Charged by actual usage at $0.1875 / minute of generated audio: up to $0.154 per run (the quote gives the maximum for your input), the rest is refunded automatically after the run. A typical run costs $0.023.

The full example input below holds up to $0.154 = 154 API credits (up to 0.8167 min of generated audio × $0.1875) when it starts; a typical run costs $0.023 (23 API credits).

Prices are the upstream price in USD, paid from the API balance in API credits (1000 API credits = 1 USD). This model is charged by usage: `POST https://api.doitong.com/v1/quote/bytedance/seed-audio-1.0` with the same JSON body returns the most the run can cost for that input (`credits`, debited when the run starts); after the run you pay the usage the model reports and the rest is refunded automatically. An input whose maximum would exceed the per-run limit is refused with 422. 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 |
|---|---|---|---|---|---|---|
| `prompt` |  | string | yes |  | ≤ 2048 characters | تخلیق کا پرامپٹ یا متن، جس میں آڈیو حوالوں کو پہلے ان پٹ کے لیے @Audio1، دوسرے کے لیے @Audio2 اور تیسرے کے لیے @Audio3 کے طور پر ظاہر کیا جائے۔ |
| `voice` |  | string \| null | no |  |  | تخلیق کی آواز منتخب کریں؛ اس کا preset نام یا cloned voice کی صورت میں اس کی ID فراہم کریں۔ |
| `audio_urls` | `audios` | array of audio URL | no |  | ≤ 3 items | زیادہ سے زیادہ 3 URLs کے ذریعے حوالہ آڈیو فراہم کریں؛ ہر فائل wav/mp3/pcm/ogg_opus فارمیٹ میں، 10 MB اور 30 سیکنڈ تک محدود ہو۔ پرامپٹ میں کلپس کی شناخت @Audio1، @Audio2، @Audio3 سے کریں۔ |
| `image_url` | `image` | string (image URL) \| null | no |  |  | صرف اس وقت URL کے ذریعے ایک تصویر کا حوالہ فراہم کریں جب کوئی آڈیو حوالہ نہ دیا گیا ہو۔ تصویر jpeg/png/webp اور 10 MB سے بڑی نہیں ہونی چاہیے۔ |
| `output_format` |  | enum (string) | no | `mp3` | `wav`, `mp3`, `pcm`, `ogg_opus` | تخلیق شدہ آڈیو کا فارمیٹ۔ |
| `sample_rate` |  | enum (integer) | no | `24000` | `8000`, `16000`, `24000`, `32000`, `44100`, `48000` | آؤٹ پٹ آڈیو کی Hz میں sampling frequency۔ |
| `speed` |  | number | no | `1` | 0.5 – 2 | گفتگو کی رفتار کا ملٹی پلائر: 1.0 معمول کی رفتار، 0.5 نصف رفتار اور 2.0 دوگنی رفتار دیتا ہے۔ |
| `volume` |  | number | no | `1` | 0.5 – 2 | حجم کا ملٹی پلائر: 1.0 معمول کا حجم، 0.5 نصف حجم اور 2.0 دوگنا حجم دیتا ہے۔ |
| `pitch` |  | integer | no | `0` | -12 – 12 | آواز کی pitch میں semitones کے لحاظ سے تبدیلی: 0 pitch برقرار رکھتا ہے، -12 اسے ایک octave نیچے اور 12 ایک octave اوپر کرتا ہے۔ |
| `multilingual` |  | boolean | no | `false` |  | ماڈل variant کا انتخاب: multilingual variant فعال کرنے سے مختلف زبانوں والے یا English کے علاوہ زبان میں لکھے پرامپٹس بہتر طور پر سنبھالے جاتے ہیں۔ |
| `enable_safety_checker` |  | boolean | no | `true` |  | false سیٹ کر کے اسکریننگ نرم کی جا سکتی ہے، بشرطیکہ کال کرنے والا مجاز ہو۔ |

File parameters (`audios`, `image`) 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
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
```

A fuller example:

```json
{
  "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
```

## 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/bytedance/seed-audio-1.0?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# 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/bytedance/seed-audio-1.0?wait=20", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }),
});
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 = {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}

# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bytedance/seed-audio-1.0", 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": "bytedance/seed-audio-1.0",
      "input": {
        "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
      },
      "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": "bytedance/seed-audio-1.0",
  "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": 154,
    "usd": "0.154",
    "charged": 154,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "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,
      "duration": 5,
      "channels": 1,
      "sample_rate": 1,
      "bitrate": "string"
    }
  },
  "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, duration, channels, sample_rate, bitrate} | تخلیق سے تیار کردہ آڈیو فائل۔ |

## Related models

- [MMAudio V2](https://doitong.com/developers/models/mmaudio-v2.md) (`mmaudio-v2`): $0.001 / second
- [DeepFilterNet 3](https://doitong.com/developers/models/deepfilternet3.md) (`deepfilternet3`): $0.001 / second of input audio
- [Demucs](https://doitong.com/developers/models/demucs.md) (`demucs`): $0.0007 / second of input audio
- [ElevenLabs Audio Isolation](https://doitong.com/developers/models/elevenlabs/audio-isolation.md) (`elevenlabs/audio-isolation`): $0.10 / minute of input file
- [Elevenlabs Sound Effects V2](https://doitong.com/developers/models/elevenlabs/sound-effects/v2.md) (`elevenlabs/sound-effects/v2`): $0.002 / second
- [ElevenLabs Voice Changer](https://doitong.com/developers/models/elevenlabs/voice-changer.md) (`elevenlabs/voice-changer`): $0.30 / minute of input audio
- [FFmpeg API \[Merge Audios\]](https://doitong.com/developers/models/ffmpeg-api/merge-audios.md) (`ffmpeg-api/merge-audios`): $0.00017 / second of processing time
- [Ffmpeg Api · Loudnorm](https://doitong.com/developers/models/ffmpeg-api/loudnorm.md) (`ffmpeg-api/loudnorm`): $0.00017 / second of processing time

## Links

- HTML page: https://doitong.com/developers/models/bytedance/seed-audio-1.0
- 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=bytedance/seed-audio-1.0
- Errors: https://doitong.com/developers/docs/errors
- Model details as JSON: https://api.doitong.com/v1/models/bytedance/seed-audio-1.0
