{
  "aboutHtml": "<p>Aura-2 is Deepgram’s text-to-speech family with voices across seven languages: English, Spanish, German, French, Dutch, Italian and Japanese. It converts the supplied text into speech for customer-service replies, telephone menus, explanations and narration. The manufacturer describes pacing, expressiveness and conversational fillers as responses to the wording and context of the supplied text.</p><h4>Match the voice to the language and task</h4><p>Each voice is identified by its family, speaker and language. The catalogue distinguishes accents and delivery characteristics rather than treating every speaker as interchangeable. Thalia is an energetic American English option; Draco is a British voice associated with storytelling; Celeste is a Colombian Spanish voice associated with conversational and announcement uses. Choose the voice with the actual script and listener in mind.</p><p>Selected Spanish voices support English–Spanish code switching: Aquila, Carina, Diana, Javier and Selena. That capability belongs to those named speakers, not every voice in the family. For a mixed-language passage, preserve the intended language of product names and quoted phrases, and listen to the transition with a speaker whose documented profile supports the task.</p><h4>Prepare text for speech</h4><p>Aura-2’s formatting guide recommends sentence-ending punctuation, question marks for questions, commas for natural pauses and short standalone phrases. Give the final spoken text, not an instruction asking the synthesizer to write the message. A useful orientation script is: “Welcome. Choose a language, then select the topic you need. You can repeat the instructions at any time.” The punctuation separates the listener’s actions and gives the model a clearer rhythm.</p><p>Spell an identifier as separate letters when it must be read character by character. Define acronyms and avoid a long run-on sentence when several conditions must be explained. The maker also recommends quoting command words and checking a passage aloud before synthesis. For educational or product narration, retain the important terms while turning written headings and dense lists into complete spoken phrases.</p><h4>Pace and pronunciation</h4><p>The manufacturer documents speed and IPA pronunciation controls for English and Spanish. Aura-2’s speech-rate range is 0.7 to 1.5; for Spanish, it recommends 0.9 to 1.5 because slower settings may introduce disfluencies. Pronunciation and speed can be combined in this family. IPA overrides can target a specialist name or term, and the Aura-2 convention places the stress marker directly before the vowel.</p><p>The pronunciation-control specification allows up to five hundred overrides, with each IPA string no longer than 128 characters, and documents a 2,000-character input-text limit for that workflow. Aura-2 does not support the explicit pause-control feature documented for Flux TTS. Use sentence structure and punctuation to prepare the rhythm, and divide longer material into coherent passages when the chosen workflow requires it.</p><h4>Audio delivery and use</h4><p>The manufacturer provides complete-request synthesis and streaming text-to-audio workflows. Its media guide distinguishes raw streaming PCM, mu-law and A-law from file-oriented output options such as WAV, MP3, Opus, FLAC and AAC. The documented PCM/WAV default for the Aura request workflow is 24 kHz. File containers, sample rates and encodings form valid combinations; a telephone connection and a downloadable narration file can require different choices.</p><p>Aura-2 remains a separate family from first-generation Aura and from Flux TTS. Flux’s cross-turn state, interrupt feedback and batch-only pause controls are not features to infer from an Aura-2 voice name. The useful output is a spoken version of the actual script in a suitable language, accent and audio representation. Review names, language switches, punctuation-led pacing and important instructions with the intended listener before reusing the recording.</p>",
  "aboutText": "Aura-2 is Deepgram’s text-to-speech family with voices across seven languages: English, Spanish, German, French, Dutch, Italian and Japanese. It converts the supplied text into speech for customer-service replies, telephone menus, explanations and narration. The manufacturer describes pacing, expressiveness and conversational fillers as responses to the wording and context of the supplied text.\n\n### Match the voice to the language and task\n\nEach voice is identified by its family, speaker and language. The catalogue distinguishes accents and delivery characteristics rather than treating every speaker as interchangeable. Thalia is an energetic American English option; Draco is a British voice associated with storytelling; Celeste is a Colombian Spanish voice associated with conversational and announcement uses. Choose the voice with the actual script and listener in mind.\n\nSelected Spanish voices support English–Spanish code switching: Aquila, Carina, Diana, Javier and Selena. That capability belongs to those named speakers, not every voice in the family. For a mixed-language passage, preserve the intended language of product names and quoted phrases, and listen to the transition with a speaker whose documented profile supports the task.\n\n### Prepare text for speech\n\nAura-2’s formatting guide recommends sentence-ending punctuation, question marks for questions, commas for natural pauses and short standalone phrases. Give the final spoken text, not an instruction asking the synthesizer to write the message. A useful orientation script is: “Welcome. Choose a language, then select the topic you need. You can repeat the instructions at any time.” The punctuation separates the listener’s actions and gives the model a clearer rhythm.\n\nSpell an identifier as separate letters when it must be read character by character. Define acronyms and avoid a long run-on sentence when several conditions must be explained. The maker also recommends quoting command words and checking a passage aloud before synthesis. For educational or product narration, retain the important terms while turning written headings and dense lists into complete spoken phrases.\n\n### Pace and pronunciation\n\nThe manufacturer documents speed and IPA pronunciation controls for English and Spanish. Aura-2’s speech-rate range is 0.7 to 1.5; for Spanish, it recommends 0.9 to 1.5 because slower settings may introduce disfluencies. Pronunciation and speed can be combined in this family. IPA overrides can target a specialist name or term, and the Aura-2 convention places the stress marker directly before the vowel.\n\nThe pronunciation-control specification allows up to five hundred overrides, with each IPA string no longer than 128 characters, and documents a 2,000-character input-text limit for that workflow. Aura-2 does not support the explicit pause-control feature documented for Flux TTS. Use sentence structure and punctuation to prepare the rhythm, and divide longer material into coherent passages when the chosen workflow requires it.\n\n### Audio delivery and use\n\nThe manufacturer provides complete-request synthesis and streaming text-to-audio workflows. Its media guide distinguishes raw streaming PCM, mu-law and A-law from file-oriented output options such as WAV, MP3, Opus, FLAC and AAC. The documented PCM/WAV default for the Aura request workflow is 24 kHz. File containers, sample rates and encodings form valid combinations; a telephone connection and a downloadable narration file can require different choices.\n\nAura-2 remains a separate family from first-generation Aura and from Flux TTS. Flux’s cross-turn state, interrupt feedback and batch-only pause controls are not features to infer from an Aura-2 voice name. The useful output is a spoken version of the actual script in a suitable language, accent and audio representation. Review names, language switches, punctuation-led pacing and important instructions with the intended listener before reusing the recording.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "a13e76b68a53a1f9c8a261d70b3876a30556febad9f0c147726692fae6b60782",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "en",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Deepgram: Aura-2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Close\">×</button></div><div class=\"idline\"><span>Deepgram /</span><code>deepgram/aura-2</code><button type=\"button\" id=\"copy-id\">Copy ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Model card sections\"><button type=\"button\" data-card-jump=\"overview\">Overview</button><button type=\"button\" data-card-jump=\"methods\">Inputs &amp; methods</button><button type=\"button\" data-card-jump=\"pricing\">Pricing</button><button type=\"button\" data-card-jump=\"examples\">Examples</button><button type=\"button\" data-card-jump=\"results\">Results</button><button type=\"button\" data-card-jump=\"aliases\">Aliases</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API methods\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|deepgram%2Faura-2\">Text to speech</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Overview</h3><p class=\"mdesc-full\">Deepgram Aura-2 generates speech in English, Spanish, German, French, Dutch, Italian and Japanese. Its voice catalogue, text-sensitive pacing and language-specific pronunciation controls support spoken prompts, narration and multilingual applications.</p><dl class=\"card-io\" data-card-io><div><dt>Accepted inputs</dt><dd>Text</dd></div><div><dt>Results</dt><dd>Audio</dd></div></dl><details class=\"card-about\"><summary>About the model</summary><p class=\"note-s\" data-model-method-boundary>This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.</p><div class=\"mabout\" id=\"m-about\"><p>Aura-2 is Deepgram’s text-to-speech family with voices across seven languages: English, Spanish, German, French, Dutch, Italian and Japanese. It converts the supplied text into speech for customer-service replies, telephone menus, explanations and narration. The manufacturer describes pacing, expressiveness and conversational fillers as responses to the wording and context of the supplied text.</p><h4>Match the voice to the language and task</h4><p>Each voice is identified by its family, speaker and language. The catalogue distinguishes accents and delivery characteristics rather than treating every speaker as interchangeable. Thalia is an energetic American English option; Draco is a British voice associated with storytelling; Celeste is a Colombian Spanish voice associated with conversational and announcement uses. Choose the voice with the actual script and listener in mind.</p><p>Selected Spanish voices support English–Spanish code switching: Aquila, Carina, Diana, Javier and Selena. That capability belongs to those named speakers, not every voice in the family. For a mixed-language passage, preserve the intended language of product names and quoted phrases, and listen to the transition with a speaker whose documented profile supports the task.</p><h4>Prepare text for speech</h4><p>Aura-2’s formatting guide recommends sentence-ending punctuation, question marks for questions, commas for natural pauses and short standalone phrases. Give the final spoken text, not an instruction asking the synthesizer to write the message. A useful orientation script is: “Welcome. Choose a language, then select the topic you need. You can repeat the instructions at any time.” The punctuation separates the listener’s actions and gives the model a clearer rhythm.</p><p>Spell an identifier as separate letters when it must be read character by character. Define acronyms and avoid a long run-on sentence when several conditions must be explained. The maker also recommends quoting command words and checking a passage aloud before synthesis. For educational or product narration, retain the important terms while turning written headings and dense lists into complete spoken phrases.</p><h4>Pace and pronunciation</h4><p>The manufacturer documents speed and IPA pronunciation controls for English and Spanish. Aura-2’s speech-rate range is 0.7 to 1.5; for Spanish, it recommends 0.9 to 1.5 because slower settings may introduce disfluencies. Pronunciation and speed can be combined in this family. IPA overrides can target a specialist name or term, and the Aura-2 convention places the stress marker directly before the vowel.</p><p>The pronunciation-control specification allows up to five hundred overrides, with each IPA string no longer than 128 characters, and documents a 2,000-character input-text limit for that workflow. Aura-2 does not support the explicit pause-control feature documented for Flux TTS. Use sentence structure and punctuation to prepare the rhythm, and divide longer material into coherent passages when the chosen workflow requires it.</p><h4>Audio delivery and use</h4><p>The manufacturer provides complete-request synthesis and streaming text-to-audio workflows. Its media guide distinguishes raw streaming PCM, mu-law and A-law from file-oriented output options such as WAV, MP3, Opus, FLAC and AAC. The documented PCM/WAV default for the Aura request workflow is 24 kHz. File containers, sample rates and encodings form valid combinations; a telephone connection and a downloadable narration file can require different choices.</p><p>Aura-2 remains a separate family from first-generation Aura and from Flux TTS. Flux’s cross-turn state, interrupt feedback and batch-only pause controls are not features to infer from an Aura-2 voice name. The useful output is a spoken version of the actual script in a suitable language, accent and audio representation. Review names, language switches, punctuation-led pacing and important instructions with the intended listener before reusing the recording.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Available in Ailoot · inputs &amp; methods</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Text to speech</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Input types</dt><dd><code>text</code></dd></div><div><dt>Output types</dt><dd><code>audio</code></dd></div><div><dt>Output format</dt><dd>mp3</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Field</th><th>Type</th><th>Requirement</th><th>Values &amp; limits</th><th>Default</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Field\" scope=\"row\"><span class=\"card-cell-label\">Field</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Requirement\"><span class=\"card-cell-label\">Requirement</span>Required</td><td data-cell-label=\"Values &amp; limits\"><span class=\"card-cell-label\">Values &amp; limits</span><div>deepgram/aura-2</div></td><td data-cell-label=\"Default\" data-default=\"unspecified\"><span class=\"card-cell-label\">Default</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Field\" scope=\"row\"><span class=\"card-cell-label\">Field</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Requirement\"><span class=\"card-cell-label\">Requirement</span>Required</td><td data-cell-label=\"Values &amp; limits\"><span class=\"card-cell-label\">Values &amp; limits</span><div>Minimum length: 1</div><div>Unit: Unicode characters</div></td><td data-cell-label=\"Default\" data-default=\"unspecified\"><span class=\"card-cell-label\">Default</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Field\" scope=\"row\"><span class=\"card-cell-label\">Field</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Requirement\"><span class=\"card-cell-label\">Requirement</span>Required</td><td data-cell-label=\"Values &amp; limits\"><span class=\"card-cell-label\">Values &amp; limits</span><div>aura-2-thalia-en, aura-2-agathe-fr, aura-2-agustina-es, aura-2-alvaro-es, aura-2-ama-ja, aura-2-amalthea-en, aura-2-andromeda-en, aura-2-antonia-es, aura-2-apollo-en, aura-2-aquila-es, aura-2-arcas-en, aura-2-aries-en, aura-2-asteria-en, aura-2-athena-en, aura-2-atlas-en, aura-2-aurelia-de, aura-2-aurora-en, aura-2-beatrix-nl, aura-2-callista-en, aura-2-carina-es, aura-2-celeste-es, aura-2-cesare-it, aura-2-cinzia-it, aura-2-cora-en, aura-2-cordelia-en, aura-2-cornelia-nl, aura-2-daphne-nl, aura-2-delia-en, aura-2-demetra-it, aura-2-diana-es, aura-2-dionisio-it, aura-2-draco-en, aura-2-ebisu-ja, aura-2-elara-de, aura-2-electra-en, aura-2-elio-it, aura-2-estrella-es, aura-2-fabian-de, aura-2-flavio-it, aura-2-fujin-ja, aura-2-gloria-es, aura-2-harmonia-en, aura-2-hector-fr, aura-2-helena-en, aura-2-hera-en, aura-2-hermes-en, aura-2-hestia-nl, aura-2-hyperion-en, aura-2-iris-en, aura-2-izanami-ja, aura-2-janus-en, aura-2-javier-es, aura-2-julius-de, aura-2-juno-en, aura-2-jupiter-en, aura-2-kara-de, aura-2-lara-de, aura-2-lars-nl, aura-2-leda-nl, aura-2-livia-it, aura-2-luciano-es, aura-2-luna-en, aura-2-maia-it, aura-2-mars-en, aura-2-melia-it, aura-2-minerva-en, aura-2-neptune-en, aura-2-nestor-es, aura-2-odysseus-en, aura-2-olivia-es, aura-2-ophelia-en, aura-2-orion-en, aura-2-orpheus-en, aura-2-pandora-en, aura-2-phoebe-en, aura-2-pluto-en, aura-2-rhea-nl, aura-2-roman-nl, aura-2-sander-nl, aura-2-saturn-en, aura-2-selena-es, aura-2-selene-en, aura-2-silvia-es, aura-2-sirio-es, aura-2-theia-en, aura-2-uzume-ja, aura-2-valerio-es, aura-2-vesta-en, aura-2-viktoria-de, aura-2-zeus-en</div></td><td data-cell-label=\"Default\" data-default=\"unspecified\"><span class=\"card-cell-label\">Default</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Field\" scope=\"row\"><span class=\"card-cell-label\">Field</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Requirement\"><span class=\"card-cell-label\">Requirement</span>Required</td><td data-cell-label=\"Values &amp; limits\"><span class=\"card-cell-label\">Values &amp; limits</span><div>mp3</div></td><td data-cell-label=\"Default\" data-default=\"unspecified\"><span class=\"card-cell-label\">Default</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Input material combinations</summary><p class=\"note-s\"><b>text_to_speech</b> · Required: input</p></details><details class=\"note-s\" data-method-contract><summary>Method parameters and lifecycle</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Contract</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>model, input, voice, response_format</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>voice_ids</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>aura-2-thalia-en, aura-2-agathe-fr, aura-2-agustina-es, aura-2-alvaro-es, aura-2-ama-ja, aura-2-amalthea-en, aura-2-andromeda-en, aura-2-antonia-es, aura-2-apollo-en, aura-2-aquila-es, aura-2-arcas-en, aura-2-aries-en, aura-2-asteria-en, aura-2-athena-en, aura-2-atlas-en, aura-2-aurelia-de, aura-2-aurora-en, aura-2-beatrix-nl, aura-2-callista-en, aura-2-carina-es, aura-2-celeste-es, aura-2-cesare-it, aura-2-cinzia-it, aura-2-cora-en, aura-2-cordelia-en, aura-2-cornelia-nl, aura-2-daphne-nl, aura-2-delia-en, aura-2-demetra-it, aura-2-diana-es, aura-2-dionisio-it, aura-2-draco-en, aura-2-ebisu-ja, aura-2-elara-de, aura-2-electra-en, aura-2-elio-it, aura-2-estrella-es, aura-2-fabian-de, aura-2-flavio-it, aura-2-fujin-ja, aura-2-gloria-es, aura-2-harmonia-en, aura-2-hector-fr, aura-2-helena-en, aura-2-hera-en, aura-2-hermes-en, aura-2-hestia-nl, aura-2-hyperion-en, aura-2-iris-en, aura-2-izanami-ja, aura-2-janus-en, aura-2-javier-es, aura-2-julius-de, aura-2-juno-en, aura-2-jupiter-en, aura-2-kara-de, aura-2-lara-de, aura-2-lars-nl, aura-2-leda-nl, aura-2-livia-it, aura-2-luciano-es, aura-2-luna-en, aura-2-maia-it, aura-2-mars-en, aura-2-melia-it, aura-2-minerva-en, aura-2-neptune-en, aura-2-nestor-es, aura-2-odysseus-en, aura-2-olivia-es, aura-2-ophelia-en, aura-2-orion-en, aura-2-orpheus-en, aura-2-pandora-en, aura-2-phoebe-en, aura-2-pluto-en, aura-2-rhea-nl, aura-2-roman-nl, aura-2-sander-nl, aura-2-saturn-en, aura-2-selena-es, aura-2-selene-en, aura-2-silvia-es, aura-2-sirio-es, aura-2-theia-en, aura-2-uzume-ja, aura-2-valerio-es, aura-2-vesta-en, aura-2-viktoria-de, aura-2-zeus-en</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>response_format</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>mp3</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>max_input_characters</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>null</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>other_options</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>input</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>exact UTF-8 text; Unicode character count without normalization</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>text</td></tr></tbody></table></div><p>Lifecycle: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · actual returned task_id or media library record</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Select exact voice from this model profile.</p><p class=\"note-s\">Input characters and audio seconds are different meters.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Pricing</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariff references do not add request options. Supported parameters are listed for the selected method.</p><dl data-price-conditions><dt>Fast mode</dt><dd>Not specified <span class=\"note-s\">When fast mode is selected</span></dd><dt>Flex mode</dt><dd>Not specified <span class=\"note-s\">When flex mode is selected</span></dd><dt>Maximum reasoning effort</dt><dd>Not specified <span class=\"note-s\">When maximum reasoning effort uses the default adjustment</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot rates</h4><h4>Prices by configuration</h4><p class=\"note-s\">Match each charge to the conditions shown. Use one rate for each set of alternative configurations.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Rate schedule</th><th>Billing unit</th><th>Charge</th></tr></thead><tbody><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Base token rates</th><td data-cell-label=\"Rate schedule\"><span class=\"card-cell-label\">Rate schedule</span>Base rate</td><td data-cell-label=\"Billing unit\"><span class=\"card-cell-label\">Billing unit</span>—</td><td data-cell-label=\"Charge\"><span class=\"card-cell-label\">Charge</span><div><span>Input · Input tokens</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Output · Output tokens</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cache read</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cache write</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cache write, 1 hour</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>input character</th><td data-cell-label=\"Rate schedule\"><span class=\"card-cell-label\">Rate schedule</span>—</td><td data-cell-label=\"Billing unit\"><span class=\"card-cell-label\">Billing unit</span>per input character</td><td data-cell-label=\"Charge\"><span class=\"card-cell-label\">Charge</span><div><span>Input · input character</span> <b>$0.00006</b> <span class=\"price-unit\">per input character</span></div></td></tr></tbody></table></div></div><div data-declared-reference-pricing><h4>Reference tariff details</h4><p class=\"note-s\">Model-level reference schedules do not change method selection, quotes or charges. Active charges use the selected Ailoot method rates.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Deepgram: Aura-2</summary><h4>Prices by configuration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Billing conditions</th><th>Charge</th></tr></thead><tbody><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Deepgram: Aura-2 · Default configuration</th><td data-cell-label=\"Billing conditions\"><span class=\"card-cell-label\">Billing conditions</span>Default configuration</td><td data-cell-label=\"Charge\"><span class=\"card-cell-label\">Charge</span><div><span>Input · Input characters</span> <b>$0.00006</b> <span class=\"price-unit\">per input character</span></div></td></tr></tbody></table></div></details></div><p class=\"note-s\">Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. <a href=\"/docs/en/billing/reserve/\">How reservation and settlement work →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Example requests</h3><h4>Ailoot Ultra · Text to speech</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Code options\"><button class=\"cg-tab\" id=\"model-code-1196-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1196-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copy code\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1196-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1196-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}&quot;\nexport AILOOT_VOICE_ID\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;deepgram/aura-2&quot;, &quot;input&quot;: &quot;Good afternoon! This is a short voice take.&quot;}&#39;)\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nallowed=json.loads(&#39;[&quot;aura-2-thalia-en&quot;, &quot;aura-2-agathe-fr&quot;, &quot;aura-2-agustina-es&quot;, &quot;aura-2-alvaro-es&quot;, &quot;aura-2-ama-ja&quot;, &quot;aura-2-amalthea-en&quot;, &quot;aura-2-andromeda-en&quot;, &quot;aura-2-antonia-es&quot;, &quot;aura-2-apollo-en&quot;, &quot;aura-2-aquila-es&quot;, &quot;aura-2-arcas-en&quot;, &quot;aura-2-aries-en&quot;, &quot;aura-2-asteria-en&quot;, &quot;aura-2-athena-en&quot;, &quot;aura-2-atlas-en&quot;, &quot;aura-2-aurelia-de&quot;, &quot;aura-2-aurora-en&quot;, &quot;aura-2-beatrix-nl&quot;, &quot;aura-2-callista-en&quot;, &quot;aura-2-carina-es&quot;, &quot;aura-2-celeste-es&quot;, &quot;aura-2-cesare-it&quot;, &quot;aura-2-cinzia-it&quot;, &quot;aura-2-cora-en&quot;, &quot;aura-2-cordelia-en&quot;, &quot;aura-2-cornelia-nl&quot;, &quot;aura-2-daphne-nl&quot;, &quot;aura-2-delia-en&quot;, &quot;aura-2-demetra-it&quot;, &quot;aura-2-diana-es&quot;, &quot;aura-2-dionisio-it&quot;, &quot;aura-2-draco-en&quot;, &quot;aura-2-ebisu-ja&quot;, &quot;aura-2-elara-de&quot;, &quot;aura-2-electra-en&quot;, &quot;aura-2-elio-it&quot;, &quot;aura-2-estrella-es&quot;, &quot;aura-2-fabian-de&quot;, &quot;aura-2-flavio-it&quot;, &quot;aura-2-fujin-ja&quot;, &quot;aura-2-gloria-es&quot;, &quot;aura-2-harmonia-en&quot;, &quot;aura-2-hector-fr&quot;, &quot;aura-2-helena-en&quot;, &quot;aura-2-hera-en&quot;, &quot;aura-2-hermes-en&quot;, &quot;aura-2-hestia-nl&quot;, &quot;aura-2-hyperion-en&quot;, &quot;aura-2-iris-en&quot;, &quot;aura-2-izanami-ja&quot;, &quot;aura-2-janus-en&quot;, &quot;aura-2-javier-es&quot;, &quot;aura-2-julius-de&quot;, &quot;aura-2-juno-en&quot;, &quot;aura-2-jupiter-en&quot;, &quot;aura-2-kara-de&quot;, &quot;aura-2-lara-de&quot;, &quot;aura-2-lars-nl&quot;, &quot;aura-2-leda-nl&quot;, &quot;aura-2-livia-it&quot;, &quot;aura-2-luciano-es&quot;, &quot;aura-2-luna-en&quot;, &quot;aura-2-maia-it&quot;, &quot;aura-2-mars-en&quot;, &quot;aura-2-melia-it&quot;, &quot;aura-2-minerva-en&quot;, &quot;aura-2-neptune-en&quot;, &quot;aura-2-nestor-es&quot;, &quot;aura-2-odysseus-en&quot;, &quot;aura-2-olivia-es&quot;, &quot;aura-2-ophelia-en&quot;, &quot;aura-2-orion-en&quot;, &quot;aura-2-orpheus-en&quot;, &quot;aura-2-pandora-en&quot;, &quot;aura-2-phoebe-en&quot;, &quot;aura-2-pluto-en&quot;, &quot;aura-2-rhea-nl&quot;, &quot;aura-2-roman-nl&quot;, &quot;aura-2-sander-nl&quot;, &quot;aura-2-saturn-en&quot;, &quot;aura-2-selena-es&quot;, &quot;aura-2-selene-en&quot;, &quot;aura-2-silvia-es&quot;, &quot;aura-2-sirio-es&quot;, &quot;aura-2-theia-en&quot;, &quot;aura-2-uzume-ja&quot;, &quot;aura-2-valerio-es&quot;, &quot;aura-2-vesta-en&quot;, &quot;aura-2-viktoria-de&quot;, &quot;aura-2-zeus-en&quot;]&#39;)\nif voice not in allowed: raise SystemExit(&quot;Choose an accepted voice ID from this exact model profile&quot;)\np[&quot;voice&quot;]=voice\np[&quot;response_format&quot;]=&quot;mp3&quot;\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Receive and save results</h3><h4>Ailoot Ultra · Text to speech</h4><p class=\"note-s\">mp3</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Other content reads</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Code options\"><button class=\"cg-tab\" id=\"model-code-1197-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1197-panel-0\" aria-selected=\"true\" tabindex=\"0\">Media library</button><button class=\"cg-tab\" id=\"model-code-1197-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1197-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Task status</button><button class=\"cg-tab\" id=\"model-code-1197-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1197-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Asset details</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copy code\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1197-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1197-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-assets.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1197-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1197-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_MEDIA_TASK_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/tasks/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-task.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-task.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1197-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1197-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_ASSET_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/assets/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-asset.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-asset.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Keep all completed results</h5><p class=\"note-s\">Keep every complete returned response, file and content part.</p><p class=\"note-s\">Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>If the original response needs checking</h5><p class=\"note-s\">Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route.</p></div><details class=\"card-about\" data-output-fields><summary>Response fields</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Field</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Field\" scope=\"row\"><span class=\"card-cell-label\">Field</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>bytes</td></tr><tr><th data-cell-label=\"Field\" scope=\"row\"><span class=\"card-cell-label\">Field</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>headers</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Errors and next steps</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Response</th><th>Condition</th><th>Next step</th></tr></thead><tbody><tr><th data-cell-label=\"Response\" scope=\"row\"><span class=\"card-cell-label\">Response</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Invalid required fields, material representation or parameter value</td><td data-cell-label=\"Next step\"><span class=\"card-cell-label\">Next step</span>Correct the indicated fields before a new creation request.</td></tr><tr><th data-cell-label=\"Response\" scope=\"row\"><span class=\"card-cell-label\">Response</span><code>server_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>The returned response says the operation or result requires a check</td><td data-cell-label=\"Next step\"><span class=\"card-cell-label\">Next step</span>Keep the original returned operation/task ID, request headers and response; continue supported reads of that original operation. Do not resubmit the creation request.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliases</h3><h4>Model aliases</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=deepgram%2Faura-2&amp;route=Ultra&amp;caller=deepgram%2Faura-2&amp;fmt=speech\"><code>deepgram/aura-2</code></a></span></p><h4>Method path aliases</h4><p class=\"note-s\">Use the method paths shown above.</p><h4>Related caller IDs</h4><p class=\"note-s\"><a href=\"#m=deepgram%2Faura-2&amp;route=Ultra&amp;caller=deepgram%2Faura-2&amp;fmt=speech\"><code>deepgram/aura-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "deepgram/aura-2",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "deepgram/aura-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|deepgram%2Faura-2",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Invalid required fields, material representation or parameter value",
                "http_status": 400,
                "recovery": "Correct the indicated fields before a new creation request.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "The returned response says the operation or result requires a check",
                "http_status": null,
                "recovery": "Keep the original returned operation/task ID, request headers and response; continue supported reads of that original operation. Do not resubmit the creation request.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "deepgram/aura-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "Unicode characters"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "aura-2-thalia-en",
                  "aura-2-agathe-fr",
                  "aura-2-agustina-es",
                  "aura-2-alvaro-es",
                  "aura-2-ama-ja",
                  "aura-2-amalthea-en",
                  "aura-2-andromeda-en",
                  "aura-2-antonia-es",
                  "aura-2-apollo-en",
                  "aura-2-aquila-es",
                  "aura-2-arcas-en",
                  "aura-2-aries-en",
                  "aura-2-asteria-en",
                  "aura-2-athena-en",
                  "aura-2-atlas-en",
                  "aura-2-aurelia-de",
                  "aura-2-aurora-en",
                  "aura-2-beatrix-nl",
                  "aura-2-callista-en",
                  "aura-2-carina-es",
                  "aura-2-celeste-es",
                  "aura-2-cesare-it",
                  "aura-2-cinzia-it",
                  "aura-2-cora-en",
                  "aura-2-cordelia-en",
                  "aura-2-cornelia-nl",
                  "aura-2-daphne-nl",
                  "aura-2-delia-en",
                  "aura-2-demetra-it",
                  "aura-2-diana-es",
                  "aura-2-dionisio-it",
                  "aura-2-draco-en",
                  "aura-2-ebisu-ja",
                  "aura-2-elara-de",
                  "aura-2-electra-en",
                  "aura-2-elio-it",
                  "aura-2-estrella-es",
                  "aura-2-fabian-de",
                  "aura-2-flavio-it",
                  "aura-2-fujin-ja",
                  "aura-2-gloria-es",
                  "aura-2-harmonia-en",
                  "aura-2-hector-fr",
                  "aura-2-helena-en",
                  "aura-2-hera-en",
                  "aura-2-hermes-en",
                  "aura-2-hestia-nl",
                  "aura-2-hyperion-en",
                  "aura-2-iris-en",
                  "aura-2-izanami-ja",
                  "aura-2-janus-en",
                  "aura-2-javier-es",
                  "aura-2-julius-de",
                  "aura-2-juno-en",
                  "aura-2-jupiter-en",
                  "aura-2-kara-de",
                  "aura-2-lara-de",
                  "aura-2-lars-nl",
                  "aura-2-leda-nl",
                  "aura-2-livia-it",
                  "aura-2-luciano-es",
                  "aura-2-luna-en",
                  "aura-2-maia-it",
                  "aura-2-mars-en",
                  "aura-2-melia-it",
                  "aura-2-minerva-en",
                  "aura-2-neptune-en",
                  "aura-2-nestor-es",
                  "aura-2-odysseus-en",
                  "aura-2-olivia-es",
                  "aura-2-ophelia-en",
                  "aura-2-orion-en",
                  "aura-2-orpheus-en",
                  "aura-2-pandora-en",
                  "aura-2-phoebe-en",
                  "aura-2-pluto-en",
                  "aura-2-rhea-nl",
                  "aura-2-roman-nl",
                  "aura-2-sander-nl",
                  "aura-2-saturn-en",
                  "aura-2-selena-es",
                  "aura-2-selene-en",
                  "aura-2-silvia-es",
                  "aura-2-sirio-es",
                  "aura-2-theia-en",
                  "aura-2-uzume-ja",
                  "aura-2-valerio-es",
                  "aura-2-vesta-en",
                  "aura-2-viktoria-de",
                  "aura-2-zeus-en"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Select exact voice from this model profile.",
            "Input characters and audio seconds are different meters."
          ],
          "input": {
            "content_type": "application/json",
            "input": "exact UTF-8 text; Unicode character count without normalization",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "aura-2-thalia-en",
              "aura-2-agathe-fr",
              "aura-2-agustina-es",
              "aura-2-alvaro-es",
              "aura-2-ama-ja",
              "aura-2-amalthea-en",
              "aura-2-andromeda-en",
              "aura-2-antonia-es",
              "aura-2-apollo-en",
              "aura-2-aquila-es",
              "aura-2-arcas-en",
              "aura-2-aries-en",
              "aura-2-asteria-en",
              "aura-2-athena-en",
              "aura-2-atlas-en",
              "aura-2-aurelia-de",
              "aura-2-aurora-en",
              "aura-2-beatrix-nl",
              "aura-2-callista-en",
              "aura-2-carina-es",
              "aura-2-celeste-es",
              "aura-2-cesare-it",
              "aura-2-cinzia-it",
              "aura-2-cora-en",
              "aura-2-cordelia-en",
              "aura-2-cornelia-nl",
              "aura-2-daphne-nl",
              "aura-2-delia-en",
              "aura-2-demetra-it",
              "aura-2-diana-es",
              "aura-2-dionisio-it",
              "aura-2-draco-en",
              "aura-2-ebisu-ja",
              "aura-2-elara-de",
              "aura-2-electra-en",
              "aura-2-elio-it",
              "aura-2-estrella-es",
              "aura-2-fabian-de",
              "aura-2-flavio-it",
              "aura-2-fujin-ja",
              "aura-2-gloria-es",
              "aura-2-harmonia-en",
              "aura-2-hector-fr",
              "aura-2-helena-en",
              "aura-2-hera-en",
              "aura-2-hermes-en",
              "aura-2-hestia-nl",
              "aura-2-hyperion-en",
              "aura-2-iris-en",
              "aura-2-izanami-ja",
              "aura-2-janus-en",
              "aura-2-javier-es",
              "aura-2-julius-de",
              "aura-2-juno-en",
              "aura-2-jupiter-en",
              "aura-2-kara-de",
              "aura-2-lara-de",
              "aura-2-lars-nl",
              "aura-2-leda-nl",
              "aura-2-livia-it",
              "aura-2-luciano-es",
              "aura-2-luna-en",
              "aura-2-maia-it",
              "aura-2-mars-en",
              "aura-2-melia-it",
              "aura-2-minerva-en",
              "aura-2-neptune-en",
              "aura-2-nestor-es",
              "aura-2-odysseus-en",
              "aura-2-olivia-es",
              "aura-2-ophelia-en",
              "aura-2-orion-en",
              "aura-2-orpheus-en",
              "aura-2-pandora-en",
              "aura-2-phoebe-en",
              "aura-2-pluto-en",
              "aura-2-rhea-nl",
              "aura-2-roman-nl",
              "aura-2-sander-nl",
              "aura-2-saturn-en",
              "aura-2-selena-es",
              "aura-2-selene-en",
              "aura-2-silvia-es",
              "aura-2-sirio-es",
              "aura-2-theia-en",
              "aura-2-uzume-ja",
              "aura-2-valerio-es",
              "aura-2-vesta-en",
              "aura-2-viktoria-de",
              "aura-2-zeus-en"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "actual returned task_id or media library record",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00006",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "6be270d373c5634e423e",
            "label": "Deepgram: Aura-2",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Default configuration"
                },
                "label": "Deepgram: Aura-2 · Default configuration",
                "units": [
                  {
                    "amount": "0.00006",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "a771a87d10f80abfd8f1b8cc",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"deepgram/aura-2\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"aura-2-thalia-en\", \"aura-2-agathe-fr\", \"aura-2-agustina-es\", \"aura-2-alvaro-es\", \"aura-2-ama-ja\", \"aura-2-amalthea-en\", \"aura-2-andromeda-en\", \"aura-2-antonia-es\", \"aura-2-apollo-en\", \"aura-2-aquila-es\", \"aura-2-arcas-en\", \"aura-2-aries-en\", \"aura-2-asteria-en\", \"aura-2-athena-en\", \"aura-2-atlas-en\", \"aura-2-aurelia-de\", \"aura-2-aurora-en\", \"aura-2-beatrix-nl\", \"aura-2-callista-en\", \"aura-2-carina-es\", \"aura-2-celeste-es\", \"aura-2-cesare-it\", \"aura-2-cinzia-it\", \"aura-2-cora-en\", \"aura-2-cordelia-en\", \"aura-2-cornelia-nl\", \"aura-2-daphne-nl\", \"aura-2-delia-en\", \"aura-2-demetra-it\", \"aura-2-diana-es\", \"aura-2-dionisio-it\", \"aura-2-draco-en\", \"aura-2-ebisu-ja\", \"aura-2-elara-de\", \"aura-2-electra-en\", \"aura-2-elio-it\", \"aura-2-estrella-es\", \"aura-2-fabian-de\", \"aura-2-flavio-it\", \"aura-2-fujin-ja\", \"aura-2-gloria-es\", \"aura-2-harmonia-en\", \"aura-2-hector-fr\", \"aura-2-helena-en\", \"aura-2-hera-en\", \"aura-2-hermes-en\", \"aura-2-hestia-nl\", \"aura-2-hyperion-en\", \"aura-2-iris-en\", \"aura-2-izanami-ja\", \"aura-2-janus-en\", \"aura-2-javier-es\", \"aura-2-julius-de\", \"aura-2-juno-en\", \"aura-2-jupiter-en\", \"aura-2-kara-de\", \"aura-2-lara-de\", \"aura-2-lars-nl\", \"aura-2-leda-nl\", \"aura-2-livia-it\", \"aura-2-luciano-es\", \"aura-2-luna-en\", \"aura-2-maia-it\", \"aura-2-mars-en\", \"aura-2-melia-it\", \"aura-2-minerva-en\", \"aura-2-neptune-en\", \"aura-2-nestor-es\", \"aura-2-odysseus-en\", \"aura-2-olivia-es\", \"aura-2-ophelia-en\", \"aura-2-orion-en\", \"aura-2-orpheus-en\", \"aura-2-pandora-en\", \"aura-2-phoebe-en\", \"aura-2-pluto-en\", \"aura-2-rhea-nl\", \"aura-2-roman-nl\", \"aura-2-sander-nl\", \"aura-2-saturn-en\", \"aura-2-selena-es\", \"aura-2-selene-en\", \"aura-2-silvia-es\", \"aura-2-sirio-es\", \"aura-2-theia-en\", \"aura-2-uzume-ja\", \"aura-2-valerio-es\", \"aura-2-vesta-en\", \"aura-2-viktoria-de\", \"aura-2-zeus-en\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": 6e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00006",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "request_model_id": "deepgram/aura-2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00006",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00006",
            "native_quantity": 1,
            "public_unit_label": "per input character",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_character"
          }
        ]
      }
    }
  ],
  "model_id": "deepgram/aura-2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "d6be8324f037e094f9c5907dfd971b4064ac4216be1d38dce293a456e5a5dca9",
    "input_html_sha256": "4ee46ba3b5f9d58e1f732dd0d80538a2821632861e1af2c43125a795bf6cdd41",
    "private_audit_sha256": "0c75dab7205df7c5d5619c8e4400e54cd51003404bffaaf69163615b8bf0f157",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/en/deepgram-aura-2/",
    "description": "Deepgram Aura-2 generates speech in English, Spanish, German, French, Dutch, Italian and Japanese. Its voice catalogue, text-sensitive pacing and language-specific pronunciation controls support spoken prompts, narration and multilingual applications.",
    "locale": "en",
    "md_url": "https://ailoot.ai/models/en/deepgram-aura-2/index.md",
    "title": "Deepgram: Aura-2 — Ailoot",
    "url": "https://ailoot.ai/models/en/deepgram-aura-2/"
  },
  "rawModel": {
    "about": "Aura-2 is Deepgram’s text-to-speech family with voices across seven languages: English, Spanish, German, French, Dutch, Italian and Japanese. It converts the supplied text into speech for customer-service replies, telephone menus, explanations and narration. The manufacturer describes pacing, expressiveness and conversational fillers as responses to the wording and context of the supplied text.\n\n### Match the voice to the language and task\n\nEach voice is identified by its family, speaker and language. The catalogue distinguishes accents and delivery characteristics rather than treating every speaker as interchangeable. Thalia is an energetic American English option; Draco is a British voice associated with storytelling; Celeste is a Colombian Spanish voice associated with conversational and announcement uses. Choose the voice with the actual script and listener in mind.\n\nSelected Spanish voices support English–Spanish code switching: Aquila, Carina, Diana, Javier and Selena. That capability belongs to those named speakers, not every voice in the family. For a mixed-language passage, preserve the intended language of product names and quoted phrases, and listen to the transition with a speaker whose documented profile supports the task.\n\n### Prepare text for speech\n\nAura-2’s formatting guide recommends sentence-ending punctuation, question marks for questions, commas for natural pauses and short standalone phrases. Give the final spoken text, not an instruction asking the synthesizer to write the message. A useful orientation script is: “Welcome. Choose a language, then select the topic you need. You can repeat the instructions at any time.” The punctuation separates the listener’s actions and gives the model a clearer rhythm.\n\nSpell an identifier as separate letters when it must be read character by character. Define acronyms and avoid a long run-on sentence when several conditions must be explained. The maker also recommends quoting command words and checking a passage aloud before synthesis. For educational or product narration, retain the important terms while turning written headings and dense lists into complete spoken phrases.\n\n### Pace and pronunciation\n\nThe manufacturer documents speed and IPA pronunciation controls for English and Spanish. Aura-2’s speech-rate range is 0.7 to 1.5; for Spanish, it recommends 0.9 to 1.5 because slower settings may introduce disfluencies. Pronunciation and speed can be combined in this family. IPA overrides can target a specialist name or term, and the Aura-2 convention places the stress marker directly before the vowel.\n\nThe pronunciation-control specification allows up to five hundred overrides, with each IPA string no longer than 128 characters, and documents a 2,000-character input-text limit for that workflow. Aura-2 does not support the explicit pause-control feature documented for Flux TTS. Use sentence structure and punctuation to prepare the rhythm, and divide longer material into coherent passages when the chosen workflow requires it.\n\n### Audio delivery and use\n\nThe manufacturer provides complete-request synthesis and streaming text-to-audio workflows. Its media guide distinguishes raw streaming PCM, mu-law and A-law from file-oriented output options such as WAV, MP3, Opus, FLAC and AAC. The documented PCM/WAV default for the Aura request workflow is 24 kHz. File containers, sample rates and encodings form valid combinations; a telephone connection and a downloadable narration file can require different choices.\n\nAura-2 remains a separate family from first-generation Aura and from Flux TTS. Flux’s cross-turn state, interrupt feedback and batch-only pause controls are not features to infer from an Aura-2 voice name. The useful output is a spoken version of the actual script in a suitable language, accent and audio representation. Review names, language switches, punctuation-led pacing and important instructions with the intended listener before reusing the recording.",
    "alias_of": null,
    "aliases": [],
    "author": "Deepgram",
    "available": null,
    "canonical_model": "deepgram/aura-2",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00006",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00006",
            "native_quantity": 1,
            "public_unit_label": "per input character",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_character"
          }
        ],
        "summary": "Full configuration pricing in details."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "deepgram/aura-2",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Invalid required fields, material representation or parameter value",
                "http_status": 400,
                "recovery": "Correct the indicated fields before a new creation request.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "The returned response says the operation or result requires a check",
                "http_status": null,
                "recovery": "Keep the original returned operation/task ID, request headers and response; continue supported reads of that original operation. Do not resubmit the creation request.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "deepgram/aura-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "Unicode characters"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "aura-2-thalia-en",
                  "aura-2-agathe-fr",
                  "aura-2-agustina-es",
                  "aura-2-alvaro-es",
                  "aura-2-ama-ja",
                  "aura-2-amalthea-en",
                  "aura-2-andromeda-en",
                  "aura-2-antonia-es",
                  "aura-2-apollo-en",
                  "aura-2-aquila-es",
                  "aura-2-arcas-en",
                  "aura-2-aries-en",
                  "aura-2-asteria-en",
                  "aura-2-athena-en",
                  "aura-2-atlas-en",
                  "aura-2-aurelia-de",
                  "aura-2-aurora-en",
                  "aura-2-beatrix-nl",
                  "aura-2-callista-en",
                  "aura-2-carina-es",
                  "aura-2-celeste-es",
                  "aura-2-cesare-it",
                  "aura-2-cinzia-it",
                  "aura-2-cora-en",
                  "aura-2-cordelia-en",
                  "aura-2-cornelia-nl",
                  "aura-2-daphne-nl",
                  "aura-2-delia-en",
                  "aura-2-demetra-it",
                  "aura-2-diana-es",
                  "aura-2-dionisio-it",
                  "aura-2-draco-en",
                  "aura-2-ebisu-ja",
                  "aura-2-elara-de",
                  "aura-2-electra-en",
                  "aura-2-elio-it",
                  "aura-2-estrella-es",
                  "aura-2-fabian-de",
                  "aura-2-flavio-it",
                  "aura-2-fujin-ja",
                  "aura-2-gloria-es",
                  "aura-2-harmonia-en",
                  "aura-2-hector-fr",
                  "aura-2-helena-en",
                  "aura-2-hera-en",
                  "aura-2-hermes-en",
                  "aura-2-hestia-nl",
                  "aura-2-hyperion-en",
                  "aura-2-iris-en",
                  "aura-2-izanami-ja",
                  "aura-2-janus-en",
                  "aura-2-javier-es",
                  "aura-2-julius-de",
                  "aura-2-juno-en",
                  "aura-2-jupiter-en",
                  "aura-2-kara-de",
                  "aura-2-lara-de",
                  "aura-2-lars-nl",
                  "aura-2-leda-nl",
                  "aura-2-livia-it",
                  "aura-2-luciano-es",
                  "aura-2-luna-en",
                  "aura-2-maia-it",
                  "aura-2-mars-en",
                  "aura-2-melia-it",
                  "aura-2-minerva-en",
                  "aura-2-neptune-en",
                  "aura-2-nestor-es",
                  "aura-2-odysseus-en",
                  "aura-2-olivia-es",
                  "aura-2-ophelia-en",
                  "aura-2-orion-en",
                  "aura-2-orpheus-en",
                  "aura-2-pandora-en",
                  "aura-2-phoebe-en",
                  "aura-2-pluto-en",
                  "aura-2-rhea-nl",
                  "aura-2-roman-nl",
                  "aura-2-sander-nl",
                  "aura-2-saturn-en",
                  "aura-2-selena-es",
                  "aura-2-selene-en",
                  "aura-2-silvia-es",
                  "aura-2-sirio-es",
                  "aura-2-theia-en",
                  "aura-2-uzume-ja",
                  "aura-2-valerio-es",
                  "aura-2-vesta-en",
                  "aura-2-viktoria-de",
                  "aura-2-zeus-en"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Select exact voice from this model profile.",
            "Input characters and audio seconds are different meters."
          ],
          "input": {
            "content_type": "application/json",
            "input": "exact UTF-8 text; Unicode character count without normalization",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "aura-2-thalia-en",
              "aura-2-agathe-fr",
              "aura-2-agustina-es",
              "aura-2-alvaro-es",
              "aura-2-ama-ja",
              "aura-2-amalthea-en",
              "aura-2-andromeda-en",
              "aura-2-antonia-es",
              "aura-2-apollo-en",
              "aura-2-aquila-es",
              "aura-2-arcas-en",
              "aura-2-aries-en",
              "aura-2-asteria-en",
              "aura-2-athena-en",
              "aura-2-atlas-en",
              "aura-2-aurelia-de",
              "aura-2-aurora-en",
              "aura-2-beatrix-nl",
              "aura-2-callista-en",
              "aura-2-carina-es",
              "aura-2-celeste-es",
              "aura-2-cesare-it",
              "aura-2-cinzia-it",
              "aura-2-cora-en",
              "aura-2-cordelia-en",
              "aura-2-cornelia-nl",
              "aura-2-daphne-nl",
              "aura-2-delia-en",
              "aura-2-demetra-it",
              "aura-2-diana-es",
              "aura-2-dionisio-it",
              "aura-2-draco-en",
              "aura-2-ebisu-ja",
              "aura-2-elara-de",
              "aura-2-electra-en",
              "aura-2-elio-it",
              "aura-2-estrella-es",
              "aura-2-fabian-de",
              "aura-2-flavio-it",
              "aura-2-fujin-ja",
              "aura-2-gloria-es",
              "aura-2-harmonia-en",
              "aura-2-hector-fr",
              "aura-2-helena-en",
              "aura-2-hera-en",
              "aura-2-hermes-en",
              "aura-2-hestia-nl",
              "aura-2-hyperion-en",
              "aura-2-iris-en",
              "aura-2-izanami-ja",
              "aura-2-janus-en",
              "aura-2-javier-es",
              "aura-2-julius-de",
              "aura-2-juno-en",
              "aura-2-jupiter-en",
              "aura-2-kara-de",
              "aura-2-lara-de",
              "aura-2-lars-nl",
              "aura-2-leda-nl",
              "aura-2-livia-it",
              "aura-2-luciano-es",
              "aura-2-luna-en",
              "aura-2-maia-it",
              "aura-2-mars-en",
              "aura-2-melia-it",
              "aura-2-minerva-en",
              "aura-2-neptune-en",
              "aura-2-nestor-es",
              "aura-2-odysseus-en",
              "aura-2-olivia-es",
              "aura-2-ophelia-en",
              "aura-2-orion-en",
              "aura-2-orpheus-en",
              "aura-2-pandora-en",
              "aura-2-phoebe-en",
              "aura-2-pluto-en",
              "aura-2-rhea-nl",
              "aura-2-roman-nl",
              "aura-2-sander-nl",
              "aura-2-saturn-en",
              "aura-2-selena-es",
              "aura-2-selene-en",
              "aura-2-silvia-es",
              "aura-2-sirio-es",
              "aura-2-theia-en",
              "aura-2-uzume-ja",
              "aura-2-valerio-es",
              "aura-2-vesta-en",
              "aura-2-viktoria-de",
              "aura-2-zeus-en"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "actual returned task_id or media library record",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00006",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "6be270d373c5634e423e",
            "label": "Deepgram: Aura-2",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Default configuration"
                },
                "label": "Deepgram: Aura-2 · Default configuration",
                "units": [
                  {
                    "amount": "0.00006",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "a771a87d10f80abfd8f1b8cc",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"deepgram/aura-2\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"aura-2-thalia-en\", \"aura-2-agathe-fr\", \"aura-2-agustina-es\", \"aura-2-alvaro-es\", \"aura-2-ama-ja\", \"aura-2-amalthea-en\", \"aura-2-andromeda-en\", \"aura-2-antonia-es\", \"aura-2-apollo-en\", \"aura-2-aquila-es\", \"aura-2-arcas-en\", \"aura-2-aries-en\", \"aura-2-asteria-en\", \"aura-2-athena-en\", \"aura-2-atlas-en\", \"aura-2-aurelia-de\", \"aura-2-aurora-en\", \"aura-2-beatrix-nl\", \"aura-2-callista-en\", \"aura-2-carina-es\", \"aura-2-celeste-es\", \"aura-2-cesare-it\", \"aura-2-cinzia-it\", \"aura-2-cora-en\", \"aura-2-cordelia-en\", \"aura-2-cornelia-nl\", \"aura-2-daphne-nl\", \"aura-2-delia-en\", \"aura-2-demetra-it\", \"aura-2-diana-es\", \"aura-2-dionisio-it\", \"aura-2-draco-en\", \"aura-2-ebisu-ja\", \"aura-2-elara-de\", \"aura-2-electra-en\", \"aura-2-elio-it\", \"aura-2-estrella-es\", \"aura-2-fabian-de\", \"aura-2-flavio-it\", \"aura-2-fujin-ja\", \"aura-2-gloria-es\", \"aura-2-harmonia-en\", \"aura-2-hector-fr\", \"aura-2-helena-en\", \"aura-2-hera-en\", \"aura-2-hermes-en\", \"aura-2-hestia-nl\", \"aura-2-hyperion-en\", \"aura-2-iris-en\", \"aura-2-izanami-ja\", \"aura-2-janus-en\", \"aura-2-javier-es\", \"aura-2-julius-de\", \"aura-2-juno-en\", \"aura-2-jupiter-en\", \"aura-2-kara-de\", \"aura-2-lara-de\", \"aura-2-lars-nl\", \"aura-2-leda-nl\", \"aura-2-livia-it\", \"aura-2-luciano-es\", \"aura-2-luna-en\", \"aura-2-maia-it\", \"aura-2-mars-en\", \"aura-2-melia-it\", \"aura-2-minerva-en\", \"aura-2-neptune-en\", \"aura-2-nestor-es\", \"aura-2-odysseus-en\", \"aura-2-olivia-es\", \"aura-2-ophelia-en\", \"aura-2-orion-en\", \"aura-2-orpheus-en\", \"aura-2-pandora-en\", \"aura-2-phoebe-en\", \"aura-2-pluto-en\", \"aura-2-rhea-nl\", \"aura-2-roman-nl\", \"aura-2-sander-nl\", \"aura-2-saturn-en\", \"aura-2-selena-es\", \"aura-2-selene-en\", \"aura-2-silvia-es\", \"aura-2-sirio-es\", \"aura-2-theia-en\", \"aura-2-uzume-ja\", \"aura-2-valerio-es\", \"aura-2-vesta-en\", \"aura-2-viktoria-de\", \"aura-2-zeus-en\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": 6e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input character"
            },
            "label": "input character",
            "units": [
              {
                "amount": "0.00006",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00006",
                "native_quantity": 1,
                "public_unit_label": "per input character",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_character"
              }
            ]
          }
        ],
        "request_model_id": "deepgram/aura-2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00006",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00006",
            "native_quantity": 1,
            "public_unit_label": "per input character",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_character"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "deepgram/aura-2",
        "request_model_id": "deepgram/aura-2",
        "route_label": "Ultra"
      }
    ],
    "name": "Deepgram: Aura-2",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.00006",
            "amount_unit": "usd_per_declared_unit",
            "conditions": {},
            "key": "prompt",
            "label": "prompt",
            "quantity": "1",
            "rate_role": "typed_active_maker_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "public_id": "deepgram/aura-2",
    "short": "Deepgram Aura-2 generates speech in English, Spanish, German, French, Dutch, Italian and Japanese. Its voice catalogue, text-sensitive pacing and language-specific pronunciation controls support spoken prompts, narration and multilingual applications."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Deepgram Aura-2 generates speech in English, Spanish, German, French, Dutch, Italian and Japanese. Its voice catalogue, text-sensitive pacing and language-specific pronunciation controls support spoken prompts, narration and multilingual applications.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "3a63f825b355eb4b340db9cfcac4fb8bf72ccefff72fd16ef1d2ac9507545e26",
    "renderer_sha256": "fed50305bd3bcc4980ac14df23640efb8c1bc1e819f9d53643d6f43e8974d3fe"
  },
  "sourceRevision": "09be32e3dc3a708d9865f5c0bb787227638f2d5c3f2b169b00544644ef89772c"
}
