VidMage

VidMage is an AI video and image creation platform for creators. Turn your ideas and images into videos and fresh visuals.

Open the creator tools
Explore APIs
AI Video APIsAI Image APIsAI Audio APIsAI 3D APIsAI Face Swap APIsAI Effects APIs
Build with VidMage
QuickstartAPI keysVidMage MCPError reference
Your account
Developer consoleAbout VidMagePlans and creditsAPI billingContact support
© 2026 VidMage. All rights reserved.
Privacy PolicyTerms of ServiceReport Abuse
Skip to content
VidMage/Developers
Overview
APIs
All APIsAI Video APIsAI Image APIsAI Audio APIsAI 3D APIsAI Face Swap APIsAI Effects APIs
DocumentationVidMage MCPOpen console
Developers/AI Voice Design API for Described Speech

AI Voice Design API for Described Speech

Add custom voice generation to your app with a script and a text description of the voice. Retrieve the generated speech without supplying a reference recording.

Get API keyView API docs
Abstract illustration for AI Voice Design API for Described Speech
PlaygroundAPIPricingGuideFAQs

AI Voice Design API Playground

Use your existing API key and subscription. Submitting a generation uses credits; uploading and preparing a request does not start a generation.

API access is available to subscribers only. Your subscription credits are shared across the website and the API.

View plans

Parameter

2 parameters

Text to synthesize (max 500 chars).

Description of the desired voice / tone.

Request code

#!/usr/bin/env bash
set -euo pipefail
# Set this once per intended task; preserve it and the body for transport retries.
: "${VIDMAGE_IDEMPOTENCY_KEY:?Set a unique key for this task}"

SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/voice-design/submit" \
  -H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
  -H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
  -H "Content-Type: application/json" \
  --data-raw '{
  "textContent": "Welcome to VidMage.",
  "toneDescription": "Warm, clear, and conversational."
}')"
TASK_ID="$(printf '%s' "$SUBMIT_RESPONSE" | jq -er '.["taskId"]')"

while true; do
  QUERY_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/voice-design/query" \
    -H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
    -H "Content-Type: application/json" \
    --data-raw "{\"taskId\":\"${TASK_ID}\"}")"
  STATUS="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.status // .data.status // "") | ascii_downcase')"
  case "$STATUS" in
    success|succeeded|completed)
      RESULT="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.result // .["audioUrl"] // .data["audioUrl"] // empty)')"
      if [ -z "$RESULT" ]; then
        printf '%s' "Result missing; preserve task $TASK_ID and query the same task again. Do not resubmit." >&2
        exit 2
      fi
      printf '%s\n' "$RESULT"
      break
      ;;
    needs_input)
      printf '%s' "Face selection required; preserve task $TASK_ID" >&2
      exit 2
      ;;
    failed|error)
      printf '%s' "$QUERY_RESPONSE" | jq -r '(.message // .error // .data.error // "Task failed")' >&2
      exit 1
      ;;
  esac
  sleep 5
done

Response data

Submit the task to see the API response here.
PlaygroundCapabilities

API documentation

Submit a request, track the task, and retrieve your result.

Required inputs
textContent toneDescription
Output
Audio·audioUrl
Request setup & limitsHeaders, input options and media limits

Request headers

Authorization
Bearer YOUR_API_KEY

Keep your API key on your server.

Content-Type
application/json
Idempotency-Key
YOUR_UNIQUE_KEY

Use a new key per task. Reuse it only when retrying the same submission.

Input options & limits

Request controls follow each task's parameter rules; they do not guarantee output properties.

Voice Design

RequiredtextContent toneDescription
Request controls
  • textContent: see parameter rules
  • toneDescription: see parameter rules

Output dimensions and format are not specified in this reference.

Input retention and output-link lifetime depend on the API contract. Confirm API-specific retention terms before making promises to your users. Upload guide ↗

Voice Design

POST /api/v1/voice-design/submit

Full API documentation ↗

textContent is required and toneDescription is required.

Required inputs

textContentstring
Text to synthesize (max 500 chars).
toneDescriptionstring
Description of the desired voice / tone.

Edit the sample inputs for your own task before submitting.

Voice Design request
# Set VIDMAGE_IDEMPOTENCY_KEY to a unique value for this task; preserve it for transport retries.
curl -X POST "https://vidmage.ai/api/v1/voice-design/submit" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"textContent":"Welcome to VidMage.","toneDescription":"Warm, clear, and conversational."}'
# -> { "success": true, "taskId": "...", "creditsConsumed": ... }
Parameters and input rules2 fields
FieldTypeRequiredDefaultMeaning and limits
textContentstringYesNot specifiedText to synthesize (max 500 chars). Maximum length: 500
toneDescriptionstringYesNot specifiedDescription of the desired voice / tone. No additional field constraint listed.

Retrieve the result

Save taskId from the accepted submission and send it to this endpoint:

POST /api/v1/voice-design/query

Use the same Bearer API key. On completion, read the audioUrl result field.

Task states and recovery ↗
Voice Design query
curl -X POST "https://vidmage.ai/api/v1/voice-design/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "taskId": "TASK_ID_FROM_SUBMIT" }'
# -> { "success": true, "data": { "status": "...", "audioUrl": "https://..." } }

Pricing

See what one image, video, or generation costs in credits. Your API and website activity share the same credit balance.

API credit rates and calculated example request costs
API / workflowExample requestPrice (credits)
Voice Designaudio API19 characters: 5 credits
How this is calculated
  • Script length: 0.1 credits / character · 5 credits minimum

Character count × rate is rounded up to whole credits; the minimum charge applies.

Estimate your own request ↗
0.1 credits / character5 credits minimum
Billed in credits. Shared with the website.Active subscription required. Unit rates and examples follow current API credit rules.Billing details⌄

Examples show the charge for the inputs listed above. Resolution, duration, audio, output count and reference media can change the total. Minimum charges and rounding follow the selected API.

Use the Playground to estimate your request before submitting it. Estimates do not start a generation. Subscription and credit-pack prices are listed on the plans page.

Your task’s recorded usage is the source of truth for the final charge.

View plans ↗Billing guide ↗

About AI Voice Design API

VidMage's AI Voice Design API is a speech generation interface that creates a voice from a written description. It accepts a script and a voice brief without requiring a reference recording. The output is generated audio for comparing narration styles and other voice directions. To explore a voice from a written description, open VidMage's Voice Design.

AI Voice Design API capabilities

Text-described voice direction
Write a toneDescription that explains the intended vocal character, delivery, and context for the spoken passage.
Separate narration script
Put the words to speak in textContent, keeping the script distinct from the instructions describing the voice.
Generated speech audio
Retrieve an audio result for listening, comparison, or placement in the narration workflow inside your application.

What you can build

Fictional voice auditions

The same line can suggest a very different character when read as calm and reserved or bright and energetic. Keep the dialogue fixed and change the voice brief to hear those alternatives. A writer and director can use the readings to choose a voice direction for a short drama or animated story.

Product explainer narration

Choose a voice direction that fits the explanation, such as a warm, clear delivery for a first-use walkthrough. The product script and voice description become narration your video editor can pair with screen recordings and product scenes.

Finding an audio story narrator

An opening passage makes a useful audition text for a narrator. Try a measured storyteller, an excited adventurer, or another written voice brief, and listen to the resulting readings to decide how the story should sound.

How to use AI Voice Design API

  1. Get an API key

    Create a key in the Developer Console and store it on your server. Use it in the Authorization: Bearer header.

  2. Prepare and submit your inputs

    Set up your inputs in the Playground, then copy the matching API request. Send it from your server with a unique Idempotency-Key.

  3. Track the task

    Save the returned taskId and query the same operation until it completes. Keep that identifier if your app stops waiting.

  4. Retrieve the result

    Read audioUrl from the completed task. Preview the result in your app and save a copy to your own storage for later use.

Input tips
Keep the two texts distinct
textContent contains the spoken words and accepts up to 500 characters. toneDescription describes the voice, so keep that brief out of the narration itself. Use AI Voice Clone if a recording should guide the voice.
Compare one direction at a time
Use the same short script when comparing tone descriptions. A local tone preset can supply descriptive text; the API has no preset-ID field. These are creative instructions rather than exact acoustic controls, so listen before selecting a recording.

Input requirementsUpload local files

Task fields and results

Keep the task identifier with its original request and Idempotency-Key. Query the same capability until it completes, then read the documented result field.

Task identifier
taskId
Query route
POST /api/v1/voice-design/query
Completed result
audioUrl
Task states and response structure ↗
Errors, retries and limits

Retry transport failures with the same idempotency key only when the original submission may not have reached the server. For a confirmed task, keep querying the original task instead of submitting a duplicate.

Read error recovery guidance ↗

FAQs

Does voice design return a voice ID I can save for later?

No saved voice ID or voice-library operation is published. Saving a brief or recording in your app does not enroll an API voice.

Are failed or timed-out requests charged?

A client timeout is not a confirmed task failure. Confirmed failures are automatically refunded only when the refund outcome is certain. Unknown charges or refunds remain pending reconciliation.

Failure and refund handling ↗
How long should my app wait for a result?

The checked contract does not establish a fixed completion time. Choose a local wait budget for your app; it is not an API completion deadline.

Polling and wait budgets ↗
What are the rate and concurrency limits?

Request-rate limits control how often you can call the API; concurrency limits control simultaneous work. The documentation ties both to the stable API key but does not publish numeric limits for this operation. Confirm account limits before planning parallel jobs.

Rate-limit recovery ↗
Can I receive results through a webhook?

The checked request contract documents status queries and does not list a webhook or callback field for these routes. Check the current authenticated OpenAPI contract before making a callback part of your integration.

Query task results ↗Check the current contract ↗

Explore more APIs on VidMage

  • AI Voice Clone API for Reference-Based Speech↗
  • AI Text to Music API for Musical Briefs↗
  • Seedance API↗
  • AI Video Generation API for Text and Images↗
  • Seedance 2.5 API↗
  • AI Lip Sync API for Photos and Videos↗
  • AI Video Extender API for Clip Continuations↗
  • AI Subtitle Generator API for Video Captions↗