Seed Audio 1.0 API: Pricing, Documentation

by BytePlus

Seed Audio 1.0 API is an asynchronous programmatic interface designed to generate speech, environmental ambience, and multi-speaker audio tracks directly from text inputs. evelopers can fine-tune the resulting audio files by configuring structural payload parameters, which support formats like WAV or MP3, custom sample rates up to 48,000 Hz, and precise adjustments for speech speed, volume amplification, and vocal pitch.

Get API Key
Seed Audio API

Models Version

WELCOME BONUS

Get $5 Free Credit on First Payment

No strings attached — add funds and get $5 bonus instantly

Claim Your $5 →

Seed Audio 1.0 API Documentation

Generate audio from text only. Omit references for text-only generation. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED. Output is capped at 120 seconds of audio per request.

POST https://gateway.pixazo.ai/seed-audio-1-0/v1/text-to-audio

Authentication

All requests require an API key passed via header.

HeaderTypeRequiredDescription
Ocp-Apim-Subscription-KeystringYesYour API subscription key

Text to Audio - BytePlus Seed Audio 1.0

Request Code

POST https://gateway.pixazo.ai/seed-audio-1-0/v1/text-to-audio
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "model": "seed-audio-1.0",
  "text_prompt": "A rainy late-night convenience store ambience with two characters speaking softly.",
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}
import requests

url = "https://gateway.pixazo.ai/seed-audio-1-0/v1/text-to-audio"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "model": "seed-audio-1.0",
  "text_prompt": "A rainy late-night convenience store ambience with two characters speaking softly.",
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
const res = await fetch("https://gateway.pixazo.ai/seed-audio-1-0/v1/text-to-audio", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "model": "seed-audio-1.0",
  "text_prompt": "A rainy late-night convenience store ambience with two characters speaking softly.",
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
})
});
console.log(await res.json());
curl -X POST 'https://gateway.pixazo.ai/seed-audio-1-0/v1/text-to-audio' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"model": "seed-audio-1.0", "text_prompt": "A rainy late-night convenience store ambience with two characters speaking softly.", "audio_config": {"format": "mp3", "sample_rate": 24000, "speech_rate": 0, "loudness_rate": 0, "pitch_rate": 0}, "watermark": {}}'

Output

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

HeaderRequiredDescription
X-Webhook-URLTo enableHTTPS URL to receive the Webhook callback.
X-Webhook-ModeNoterminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks).

Example: enable Webhook

curl -X POST 'https://gateway.pixazo.ai/seed-audio-1-0/v1/text-to-audio' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"model": "seed-audio-1.0", "text_prompt": "A rainy late-night convenience store ambience with two characters speaking softly.", "audio_config": {"format": "mp3", "sample_rate": 24000, "speech_rate": 0, "loudness_rate": 0, "pitch_rate": 0}, "watermark": {}}'

Callback Payload (success)

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "seed-audio-1-0",
  "output": {
    "media_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/byteplus-audio/1782800000000-019dxxxx.mp3",
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-06-30T10:00:00.000Z",
  "completed_at": "2026-06-30T10:00:18.000Z"
}

Failure callback shape

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "seed-audio-1-0",
  "error": "Description of the failure"
}

Delivery semantics

  • terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
  • sync mode: a Webhook callback on each status change.
  • Callbacks are idempotent on request_id — de-duplicate on it.
  • Respond 200 within a few seconds; the Webhook endpoint must be HTTPS.

Request Parameters

ParameterRequiredTypeDefaultAllowed values / rangeDescription
modelNostringseed-audio-1.0seed-audio-1.0Model identifier.
text_promptYesstring≤ 2048 charsPrompt / text describing the audio to synthesize.
audio_configNoobjectOutput audio configuration (see fields below).
audio_config.formatNostringwavwav, mp3, pcm, ogg_opusOutput audio format.
audio_config.sample_rateNointeger240008000, 16000, 24000, 32000, 44100, 48000Sample rate (Hz).
audio_config.speech_rateNointeger0-50 to 100Speed. 100 = 2.0×, -50 = 0.5×.
audio_config.loudness_rateNointeger0-50 to 100Loudness. 100 = 2.0×, -50 = 0.5×.
audio_config.pitch_rateNointeger0-12 to 12Pitch shift.
watermarkNoobject{}Watermark configuration. An empty object is accepted.

Example Request

{
  "model": "seed-audio-1.0",
  "text_prompt": "A rainy late-night convenience store ambience with two characters speaking softly.",
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}

Example Response

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
Ocp-Apim-Subscription-KeyYesYour API subscription key.
X-Webhook-URLNoEnable Webhook callbacks (see Webhook section).

Response Handling

Status CodeMeaning
202Accepted — request queued; returns request_id and polling_url.
400Bad request — invalid/missing parameters (e.g. missing text_prompt or reference).
401Unauthorized — missing or invalid subscription key.
402Insufficient balance.
403Forbidden.
429Too many requests.
500Internal server error.

Error Responses

{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}

A failed generation is reported via the status endpoint (or Webhook) with status: "ERROR" and an error message.

Retrieving Results

Poll the status endpoint with the request_id from the submit response until status is COMPLETED (or FAILED/ERROR).

curl 'https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'

Completed response

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "seed-audio-1-0",
  "output": {
    "media_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/byteplus-audio/1782800000000-019dxxxx.mp3",
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-06-30T10:00:00.000Z",
  "completed_at": "2026-06-30T10:00:18.000Z"
}

Response Fields

FieldTypeDescription
request_idstringUnique request identifier.
statusstringQUEUED, PROCESSING, COMPLETED, FAILED, or ERROR.
model_idstringThe model that handled the request.
output.media_urlstringPermanent URL of the generated audio.
output.media_typestringAudio MIME type (e.g. audio/mpeg, audio/wav).
created_atstringRequest creation timestamp.
completed_atstringCompletion timestamp.
polling_urlstringStatus URL for this request.
errorstringError message when status is FAILED/ERROR.

Status Values & Flow

QUEUEDPROCESSINGCOMPLETED (success) or FAILED/ERROR (failure).

Pricing

Billed at $0.15 per minute of generated audio, rounded up to the whole minute, based on output length (capped at 120 seconds / $0.30 per request).

Seed Audio 1.0 API Pricing

ResolutionPrice (USD)
Per minute (rounded up to the next full minute)$0.15
Audio to Audio (Voice Reference Audio to Audio)

Seed Audio 1.0 API Documentation

Generate audio conditioned on 1–3 audio references (voice cloning / speaker). Reference them in text_prompt via @Audio1@Audio3. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED. Output is capped at 120 seconds of audio per request.

POST https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio

Authentication

All requests require an API key passed via header.

HeaderTypeRequiredDescription
Ocp-Apim-Subscription-KeystringYesYour API subscription key

Reference to Audio - BytePlus Seed Audio 1.0

Request Code

POST https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "model": "seed-audio-1.0",
  "text_prompt": "Use @Audio1 as the narrator voice and read the following line naturally: Welcome to the store.",
  "references": [
    {
      "audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"
    }
  ],
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}
import requests

url = "https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "model": "seed-audio-1.0",
  "text_prompt": "Use @Audio1 as the narrator voice and read the following line naturally: Welcome to the store.",
  "references": [
    {
      "audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"
    }
  ],
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
const res = await fetch("https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "model": "seed-audio-1.0",
  "text_prompt": "Use @Audio1 as the narrator voice and read the following line naturally: Welcome to the store.",
  "references": [
    {
      "audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"
    }
  ],
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
})
});
console.log(await res.json());
curl -X POST 'https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"model": "seed-audio-1.0", "text_prompt": "Use @Audio1 as the narrator voice and read the following line naturally: Welcome to the store.", "references": [{"audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"}], "audio_config": {"format": "mp3", "sample_rate": 24000, "speech_rate": 0, "loudness_rate": 0, "pitch_rate": 0}, "watermark": {}}'

Output

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

HeaderRequiredDescription
X-Webhook-URLTo enableHTTPS URL to receive the Webhook callback.
X-Webhook-ModeNoterminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks).

Example: enable Webhook

curl -X POST 'https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"model": "seed-audio-1.0", "text_prompt": "Use @Audio1 as the narrator voice and read the following line naturally: Welcome to the store.", "references": [{"audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"}], "audio_config": {"format": "mp3", "sample_rate": 24000, "speech_rate": 0, "loudness_rate": 0, "pitch_rate": 0}, "watermark": {}}'

Callback Payload (success)

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "seed-audio-1-0",
  "output": {
    "media_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/byteplus-audio/1782800000000-019dxxxx.mp3",
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-06-30T10:00:00.000Z",
  "completed_at": "2026-06-30T10:00:18.000Z"
}

Failure callback shape

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "seed-audio-1-0",
  "error": "Description of the failure"
}

Delivery semantics

  • terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
  • sync mode: a Webhook callback on each status change.
  • Callbacks are idempotent on request_id — de-duplicate on it.
  • Respond 200 within a few seconds; the Webhook endpoint must be HTTPS.

Request Parameters

ParameterRequiredTypeDefaultAllowed values / rangeDescription
modelNostringseed-audio-1.0seed-audio-1.0Model identifier.
text_promptYesstring≤ 2048 charsText to synthesize. Reference the audio items by order using @Audio1, @Audio2, @Audio3.
referencesYesarray1–3 itemsAudio references. Each item must contain exactly ONE of speaker, audio_data, or audio_url. Each reference audio ≤ 30s and ≤ 10 MB; formats wav, mp3, pcm, ogg_opus. You may also pass the flat fields audio_url / audio_urls / speaker.
references[].speakerstringVoice ID (a supported Doubao TTS voice or a voice-clone ID).
references[].audio_urlstringPublic URL of a reference audio file.
references[].audio_datastringBase64-encoded reference audio.
audio_configNoobjectOutput audio configuration (see fields below).
audio_config.formatNostringwavwav, mp3, pcm, ogg_opusOutput audio format.
audio_config.sample_rateNointeger240008000, 16000, 24000, 32000, 44100, 48000Sample rate (Hz).
audio_config.speech_rateNointeger0-50 to 100Speed. 100 = 2.0×, -50 = 0.5×.
audio_config.loudness_rateNointeger0-50 to 100Loudness. 100 = 2.0×, -50 = 0.5×.
audio_config.pitch_rateNointeger0-12 to 12Pitch shift.
watermarkNoobject{}Watermark configuration. An empty object is accepted.

Example Request

{
  "model": "seed-audio-1.0",
  "text_prompt": "Use @Audio1 as the narrator voice and read the following line naturally: Welcome to the store.",
  "references": [
    {
      "audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"
    }
  ],
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}

Example Response

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
Ocp-Apim-Subscription-KeyYesYour API subscription key.
X-Webhook-URLNoEnable Webhook callbacks (see Webhook section).

Response Handling

Status CodeMeaning
202Accepted — request queued; returns request_id and polling_url.
400Bad request — invalid/missing parameters (e.g. missing text_prompt or reference).
401Unauthorized — missing or invalid subscription key.
402Insufficient balance.
403Forbidden.
429Too many requests.
500Internal server error.

Error Responses

{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}

A failed generation is reported via the status endpoint (or Webhook) with status: "ERROR" and an error message.

Retrieving Results

Poll the status endpoint with the request_id from the submit response until status is COMPLETED (or FAILED/ERROR).

curl 'https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'

Completed response

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "seed-audio-1-0",
  "output": {
    "media_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/byteplus-audio/1782800000000-019dxxxx.mp3",
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-06-30T10:00:00.000Z",
  "completed_at": "2026-06-30T10:00:18.000Z"
}

Response Fields

FieldTypeDescription
request_idstringUnique request identifier.
statusstringQUEUED, PROCESSING, COMPLETED, FAILED, or ERROR.
model_idstringThe model that handled the request.
output.media_urlstringPermanent URL of the generated audio.
output.media_typestringAudio MIME type (e.g. audio/mpeg, audio/wav).
created_atstringRequest creation timestamp.
completed_atstringCompletion timestamp.
polling_urlstringStatus URL for this request.
errorstringError message when status is FAILED/ERROR.

Status Values & Flow

QUEUEDPROCESSINGCOMPLETED (success) or FAILED/ERROR (failure).

Pricing

Billed at $0.15 per minute of generated audio, rounded up to the whole minute, based on output length (capped at 120 seconds / $0.30 per request).

Seed Audio 1.0 API Pricing

ResolutionPrice (USD)
Per minute (rounded up to the next full minute)$0.15
Reference to Audio (Image + Voice Reference Audio to Audio)

Seed Audio 1.0 API Documentation

Generate audio conditioned on a single image reference. text_prompt contains the text to synthesize. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED. Output is capped at 120 seconds of audio per request.

POST https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio/image

Authentication

All requests require an API key passed via header.

HeaderTypeRequiredDescription
Ocp-Apim-Subscription-KeystringYesYour API subscription key

Image Reference to Audio - BytePlus Seed Audio 1.0

Request Code

POST https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio/image
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "model": "seed-audio-1.0",
  "text_prompt": "Read this scene description in a restrained suspense style.",
  "references": [
    {
      "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg"
    }
  ],
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}
import requests

url = "https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio/image"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "model": "seed-audio-1.0",
  "text_prompt": "Read this scene description in a restrained suspense style.",
  "references": [
    {
      "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg"
    }
  ],
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
const res = await fetch("https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio/image", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "model": "seed-audio-1.0",
  "text_prompt": "Read this scene description in a restrained suspense style.",
  "references": [
    {
      "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg"
    }
  ],
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
})
});
console.log(await res.json());
curl -X POST 'https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio/image' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"model": "seed-audio-1.0", "text_prompt": "Read this scene description in a restrained suspense style.", "references": [{"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg"}], "audio_config": {"format": "mp3", "sample_rate": 24000, "speech_rate": 0, "loudness_rate": 0, "pitch_rate": 0}, "watermark": {}}'

Output

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

HeaderRequiredDescription
X-Webhook-URLTo enableHTTPS URL to receive the Webhook callback.
X-Webhook-ModeNoterminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks).

Example: enable Webhook

curl -X POST 'https://gateway.pixazo.ai/seed-audio-1-0/v1/reference-to-audio/image' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"model": "seed-audio-1.0", "text_prompt": "Read this scene description in a restrained suspense style.", "references": [{"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg"}], "audio_config": {"format": "mp3", "sample_rate": 24000, "speech_rate": 0, "loudness_rate": 0, "pitch_rate": 0}, "watermark": {}}'

Callback Payload (success)

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "seed-audio-1-0",
  "output": {
    "media_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/byteplus-audio/1782800000000-019dxxxx.mp3",
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-06-30T10:00:00.000Z",
  "completed_at": "2026-06-30T10:00:18.000Z"
}

Failure callback shape

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "seed-audio-1-0",
  "error": "Description of the failure"
}

Delivery semantics

  • terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
  • sync mode: a Webhook callback on each status change.
  • Callbacks are idempotent on request_id — de-duplicate on it.
  • Respond 200 within a few seconds; the Webhook endpoint must be HTTPS.

Request Parameters

ParameterRequiredTypeDefaultAllowed values / rangeDescription
modelNostringseed-audio-1.0seed-audio-1.0Model identifier.
text_promptYesstring≤ 2048 charsText to synthesize for the referenced image scene.
referencesYesarrayexactly 1 itemA single image reference. The item must contain exactly ONE of image_url or image_data. Image ≤ 10 MB; formats jpeg, png, webp. Cannot be combined with audio references. You may also pass the flat field image_url.
references[].image_urlstringPublic URL of a reference image.
references[].image_datastringBase64-encoded reference image.
audio_configNoobjectOutput audio configuration (see fields below).
audio_config.formatNostringwavwav, mp3, pcm, ogg_opusOutput audio format.
audio_config.sample_rateNointeger240008000, 16000, 24000, 32000, 44100, 48000Sample rate (Hz).
audio_config.speech_rateNointeger0-50 to 100Speed. 100 = 2.0×, -50 = 0.5×.
audio_config.loudness_rateNointeger0-50 to 100Loudness. 100 = 2.0×, -50 = 0.5×.
audio_config.pitch_rateNointeger0-12 to 12Pitch shift.
watermarkNoobject{}Watermark configuration. An empty object is accepted.

Example Request

{
  "model": "seed-audio-1.0",
  "text_prompt": "Read this scene description in a restrained suspense style.",
  "references": [
    {
      "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg"
    }
  ],
  "audio_config": {
    "format": "mp3",
    "sample_rate": 24000,
    "speech_rate": 0,
    "loudness_rate": 0,
    "pitch_rate": 0
  },
  "watermark": {}
}

Example Response

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
Ocp-Apim-Subscription-KeyYesYour API subscription key.
X-Webhook-URLNoEnable Webhook callbacks (see Webhook section).

Response Handling

Status CodeMeaning
202Accepted — request queued; returns request_id and polling_url.
400Bad request — invalid/missing parameters (e.g. missing text_prompt or reference).
401Unauthorized — missing or invalid subscription key.
402Insufficient balance.
403Forbidden.
429Too many requests.
500Internal server error.

Error Responses

{
  "error": "Insufficient Balance",
  "message": "Your wallet does not have enough balance."
}

A failed generation is reported via the status endpoint (or Webhook) with status: "ERROR" and an error message.

Retrieving Results

Poll the status endpoint with the request_id from the submit response until status is COMPLETED (or FAILED/ERROR).

curl 'https://gateway.pixazo.ai/v2/requests/status/seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'

Completed response

{
  "request_id": "seed-audio-1-0_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "seed-audio-1-0",
  "output": {
    "media_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/byteplus-audio/1782800000000-019dxxxx.mp3",
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-06-30T10:00:00.000Z",
  "completed_at": "2026-06-30T10:00:18.000Z"
}

Response Fields

FieldTypeDescription
request_idstringUnique request identifier.
statusstringQUEUED, PROCESSING, COMPLETED, FAILED, or ERROR.
model_idstringThe model that handled the request.
output.media_urlstringPermanent URL of the generated audio.
output.media_typestringAudio MIME type (e.g. audio/mpeg, audio/wav).
created_atstringRequest creation timestamp.
completed_atstringCompletion timestamp.
polling_urlstringStatus URL for this request.
errorstringError message when status is FAILED/ERROR.

Status Values & Flow

QUEUEDPROCESSINGCOMPLETED (success) or FAILED/ERROR (failure).

Pricing

Billed at $0.15 per minute of generated audio, rounded up to the whole minute, based on output length (capped at 120 seconds / $0.30 per request).

Seed Audio 1.0 API Pricing

ResolutionPrice (USD)
Per minute (rounded up to the next full minute)$0.15

⚡ Performance

Live usage measured on Pixazo's gateway, split by model version. Generation time is how long a generation takes end-to-end (lower is better). Success rate is the percent of generations that complete (higher is better).

Show data for the last
Generations
100last 30d
~3 per day
Success rate
100.0%
of completed generations
Generation time
80.2savg
p95 80.2s
Requests
Aug 1max 100Aug 30
Seed Audio 1.0Avg 3/day
Generation Time
Aug 1max 80.2sAug 30
Seed Audio 1.0Avg 80.2s
Error Rate
Aug 1max 5.0%Aug 30
Seed Audio 1.0Avg 0.0%

〰 Uptime

Percent of generations that succeeded over the selected period, per model version.

Avg. Success Rate (30d)
100.00%
across all generations of this model family
Uptime
Aug 1max 100%Aug 30
SuccessfulAvg 100.00%