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.

Models Version
Get $5 Free Credit on First Payment
No strings attached — add funds and get $5 bonus instantly
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-audioAuthentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your 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.
| Header | Required | Description |
|---|---|---|
| X-Webhook-URL | To enable | HTTPS URL to receive the Webhook callback. |
| X-Webhook-Mode | No | terminal (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
200within a few seconds; the Webhook endpoint must be HTTPS.
Request Parameters
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
model | No | string | seed-audio-1.0 | seed-audio-1.0 | Model identifier. |
text_prompt | Yes | string | — | ≤ 2048 chars | Prompt / text describing the audio to synthesize. |
audio_config | No | object | — | — | Output audio configuration (see fields below). |
audio_config.format | No | string | wav | wav, mp3, pcm, ogg_opus | Output audio format. |
audio_config.sample_rate | No | integer | 24000 | 8000, 16000, 24000, 32000, 44100, 48000 | Sample rate (Hz). |
audio_config.speech_rate | No | integer | 0 | -50 to 100 | Speed. 100 = 2.0×, -50 = 0.5×. |
audio_config.loudness_rate | No | integer | 0 | -50 to 100 | Loudness. 100 = 2.0×, -50 = 0.5×. |
audio_config.pitch_rate | No | integer | 0 | -12 to 12 | Pitch shift. |
watermark | No | object | {} | — | 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
| Header | Required | Description |
|---|---|---|
| Content-Type | Yes | application/json |
| Ocp-Apim-Subscription-Key | Yes | Your API subscription key. |
| X-Webhook-URL | No | Enable Webhook callbacks (see Webhook section). |
Response Handling
| Status Code | Meaning |
|---|---|
| 202 | Accepted — request queued; returns request_id and polling_url. |
| 400 | Bad request — invalid/missing parameters (e.g. missing text_prompt or reference). |
| 401 | Unauthorized — missing or invalid subscription key. |
| 402 | Insufficient balance. |
| 403 | Forbidden. |
| 429 | Too many requests. |
| 500 | Internal 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
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique request identifier. |
| status | string | QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR. |
| model_id | string | The model that handled the request. |
| output.media_url | string | Permanent URL of the generated audio. |
| output.media_type | string | Audio MIME type (e.g. audio/mpeg, audio/wav). |
| created_at | string | Request creation timestamp. |
| completed_at | string | Completion timestamp. |
| polling_url | string | Status URL for this request. |
| error | string | Error message when status is FAILED/ERROR. |
Status Values & Flow
QUEUED → PROCESSING → COMPLETED (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
| Resolution | Price (USD) |
|---|---|
| Per minute (rounded up to the next full minute) | $0.15 |
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-audioAuthentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your 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.
| Header | Required | Description |
|---|---|---|
| X-Webhook-URL | To enable | HTTPS URL to receive the Webhook callback. |
| X-Webhook-Mode | No | terminal (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
200within a few seconds; the Webhook endpoint must be HTTPS.
Request Parameters
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
model | No | string | seed-audio-1.0 | seed-audio-1.0 | Model identifier. |
text_prompt | Yes | string | — | ≤ 2048 chars | Text to synthesize. Reference the audio items by order using @Audio1, @Audio2, @Audio3. |
references | Yes | array | — | 1–3 items | Audio 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[].speaker | — | string | — | — | Voice ID (a supported Doubao TTS voice or a voice-clone ID). |
references[].audio_url | — | string | — | — | Public URL of a reference audio file. |
references[].audio_data | — | string | — | — | Base64-encoded reference audio. |
audio_config | No | object | — | — | Output audio configuration (see fields below). |
audio_config.format | No | string | wav | wav, mp3, pcm, ogg_opus | Output audio format. |
audio_config.sample_rate | No | integer | 24000 | 8000, 16000, 24000, 32000, 44100, 48000 | Sample rate (Hz). |
audio_config.speech_rate | No | integer | 0 | -50 to 100 | Speed. 100 = 2.0×, -50 = 0.5×. |
audio_config.loudness_rate | No | integer | 0 | -50 to 100 | Loudness. 100 = 2.0×, -50 = 0.5×. |
audio_config.pitch_rate | No | integer | 0 | -12 to 12 | Pitch shift. |
watermark | No | object | {} | — | 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
| Header | Required | Description |
|---|---|---|
| Content-Type | Yes | application/json |
| Ocp-Apim-Subscription-Key | Yes | Your API subscription key. |
| X-Webhook-URL | No | Enable Webhook callbacks (see Webhook section). |
Response Handling
| Status Code | Meaning |
|---|---|
| 202 | Accepted — request queued; returns request_id and polling_url. |
| 400 | Bad request — invalid/missing parameters (e.g. missing text_prompt or reference). |
| 401 | Unauthorized — missing or invalid subscription key. |
| 402 | Insufficient balance. |
| 403 | Forbidden. |
| 429 | Too many requests. |
| 500 | Internal 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
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique request identifier. |
| status | string | QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR. |
| model_id | string | The model that handled the request. |
| output.media_url | string | Permanent URL of the generated audio. |
| output.media_type | string | Audio MIME type (e.g. audio/mpeg, audio/wav). |
| created_at | string | Request creation timestamp. |
| completed_at | string | Completion timestamp. |
| polling_url | string | Status URL for this request. |
| error | string | Error message when status is FAILED/ERROR. |
Status Values & Flow
QUEUED → PROCESSING → COMPLETED (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
| Resolution | Price (USD) |
|---|---|
| Per minute (rounded up to the next full minute) | $0.15 |
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/imageAuthentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your 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.
| Header | Required | Description |
|---|---|---|
| X-Webhook-URL | To enable | HTTPS URL to receive the Webhook callback. |
| X-Webhook-Mode | No | terminal (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
200within a few seconds; the Webhook endpoint must be HTTPS.
Request Parameters
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
model | No | string | seed-audio-1.0 | seed-audio-1.0 | Model identifier. |
text_prompt | Yes | string | — | ≤ 2048 chars | Text to synthesize for the referenced image scene. |
references | Yes | array | — | exactly 1 item | A 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_url | — | string | — | — | Public URL of a reference image. |
references[].image_data | — | string | — | — | Base64-encoded reference image. |
audio_config | No | object | — | — | Output audio configuration (see fields below). |
audio_config.format | No | string | wav | wav, mp3, pcm, ogg_opus | Output audio format. |
audio_config.sample_rate | No | integer | 24000 | 8000, 16000, 24000, 32000, 44100, 48000 | Sample rate (Hz). |
audio_config.speech_rate | No | integer | 0 | -50 to 100 | Speed. 100 = 2.0×, -50 = 0.5×. |
audio_config.loudness_rate | No | integer | 0 | -50 to 100 | Loudness. 100 = 2.0×, -50 = 0.5×. |
audio_config.pitch_rate | No | integer | 0 | -12 to 12 | Pitch shift. |
watermark | No | object | {} | — | 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
| Header | Required | Description |
|---|---|---|
| Content-Type | Yes | application/json |
| Ocp-Apim-Subscription-Key | Yes | Your API subscription key. |
| X-Webhook-URL | No | Enable Webhook callbacks (see Webhook section). |
Response Handling
| Status Code | Meaning |
|---|---|
| 202 | Accepted — request queued; returns request_id and polling_url. |
| 400 | Bad request — invalid/missing parameters (e.g. missing text_prompt or reference). |
| 401 | Unauthorized — missing or invalid subscription key. |
| 402 | Insufficient balance. |
| 403 | Forbidden. |
| 429 | Too many requests. |
| 500 | Internal 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
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique request identifier. |
| status | string | QUEUED, PROCESSING, COMPLETED, FAILED, or ERROR. |
| model_id | string | The model that handled the request. |
| output.media_url | string | Permanent URL of the generated audio. |
| output.media_type | string | Audio MIME type (e.g. audio/mpeg, audio/wav). |
| created_at | string | Request creation timestamp. |
| completed_at | string | Completion timestamp. |
| polling_url | string | Status URL for this request. |
| error | string | Error message when status is FAILED/ERROR. |
Status Values & Flow
QUEUED → PROCESSING → COMPLETED (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
| Resolution | Price (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).
〰 Uptime
Percent of generations that succeeded over the selected period, per model version.