Spanish TTS API: batch narration with Audra Essential — Audra

One OpenAI-compatible endpoint covers ten Essential languages — without juggling providers per locale. Not for realtime voice agents or cloning.

Who this is for

Languages on Essential

Essential languages (BCP-47 hints)
LanguageHintNotes
English (US/UK)en-US / en-GBDefault narration locale
Japaneseja-JPPrefer JA voice slugs on /voices
Mandarin Chinesezh-CNPreview before production
Spanishes-ESSlug usually implies locale
Portuguese (Brazil)pt-BRUse BR-oriented voices
Hindihi-INSet language if slug is ambiguous
Frenchfr-FRExample in the curl below
Italianit-ITOne locale per request
Germande-DEFilter /compare by language
Dutchnl-NLEssential preset voices

Prefer a voice slug that implies the locale; set language (BCP-47) only when the slug is ambiguous. Keep one locale per request — never mix languages in a single POST.

Example with a language hint

curl
curl https://audratalks.com/v2/speech \
  -H "Authorization: Bearer sk-live-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"audra-essential","text":"Bonjour — narration de documentation.","voice":"june","language":"fr-FR","format":"mp3"}' \
  --output out.mp3
Python
import requests

r = requests.post(
    "https://audratalks.com/v2/speech",
    headers={"Authorization": "Bearer sk-live-YOUR_KEY"},
    json={
        "model": "audra-essential",
        "text": "Bonjour — narration de documentation.",
        "voice": "june",
        "language": "fr-FR",
        "format": "mp3",
    },
    timeout=120,
)
r.raise_for_status()
open("out.mp3", "wb").write(r.content)
JavaScript
import { writeFile } from "node:fs/promises";

const res = await fetch("https://audratalks.com/v2/speech", {
  method: "POST",
  headers: {
    Authorization: "Bearer sk-live-YOUR_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "audra-essential",
    text: "Bonjour — narration de documentation.",
    voice: "june",
    language: "fr-FR",
    format: "mp3",
  }),
});

if (!res.ok) throw new Error(await res.text());
await writeFile("out.mp3", Buffer.from(await res.arrayBuffer()));

Next: preview voices on /voices. For engine multipliers see /pricing#engines; for voice A/B use /compare.

Cost sanity check

Want to hear a sample on your own script? Get an API key at /dashboard — 25k free characters, no card.

FAQ

Which languages does Essential support?

English (US/UK), Japanese, Mandarin Chinese, Spanish, Portuguese (Brazil), Hindi, French, Italian, German, and Dutch — 72 voices on one endpoint.

When should I set the language field?

Prefer a voice slug that implies the locale. Set language (BCP-47) only when the slug is ambiguous or you need an explicit override.

Does Audra support realtime voice agents?

No. Audra is a batch TTS API for mastered MP3/WAV files. For sub-200ms conversational agents, stay on a realtime-oriented provider.

Can I clone a custom brand voice?

No. Audra ships preset voices only. Use ElevenLabs (or similar) when cloning is a hard requirement — see /vs/elevenlabs.

Next steps