{
  "aboutHtml": "<p>ElevenLabs Scribe v2 es el modelo de reconocimiento de voz por lotes para audio grabado, transcripción y subtitulado. Amplía Scribe v1 con un mejor tratamiento de grabaciones largas, pausas, cambios de tono y silencios prolongados. El resultado es el habla escrita con información temporal y anotaciones opcionales de hablantes y eventos de audio. Scribe v2 Realtime es una edición separada de transcripción en directo; el propósito de este modelo es procesar grabaciones completas.</p><p>El fabricante documenta reconocimiento en más de 90 idiomas y detección automática del idioma, incluidas grabaciones que alternan entre idiomas. Una indicación del idioma conocido puede ayudar al modelo a interpretar el audio. Prepara una grabación clara, conserva el idioma y los nombres originales y evita la saturación grave o el procesamiento innecesario que elimine detalles del habla. Entre las entradas habituales documentadas figuran WAV, MP3, FLAC, M4A, AAC, OGG, Opus y WebM. Elige una representación de entrada admitida por la implementación de transcripción y conserva la grabación fuente para revisarla.</p><p>La respuesta estándar contiene el texto reconocido, información sobre el idioma detectado y una secuencia de palabras con tiempos. Los registros de palabras pueden incluir tiempos de inicio y fin, identificadores de hablantes y una log-probabilidad de reconocimiento. Esto hace útil el resultado para subtítulos, entrevistas consultables o un editor que vuelva al sonido pertinente. Conserva el resultado temporal junto al audio fuente. Para un pódcast, por ejemplo, el resultado puede ser una transcripción editable y un registro alineado por palabras que permita localizar correcciones antes de organizar los subtítulos.</p><p>La diarización etiqueta quién habla y cuándo en audio con varios hablantes; el fabricante documenta hasta 32 hablantes. Actívala cuando los turnos sean importantes y proporciona un número razonable de hablantes si se conoce esa información. Distingue una etiqueta de hablante detectada del nombre verificado de una persona. Para una entrevista o reunión, revisa los cambios de turno contra la grabación, especialmente cuando las voces se superpongan o suenen similares. Una etiqueta ayuda a organizar la transcripción; no establece por sí sola la identidad del hablante.</p><p>Una grabación con un hablante por canal tiene una estructura distinta de varias voces mezcladas en un canal. La interfaz del productor puede procesar hasta cinco canales de forma independiente y devolver transcripciones separadas o una transcripción combinada ordenada por tiempo, con índices de canal. Conserva esa disposición de canales cuando sea significativa. Mezclar una grabación de llamada separada en canales antes de transcribirla puede descartar una fuente útil de información sobre los hablantes. Mantén la atribución por canal separada de la diarización inferida de audio mezclado. La respuesta combinada de canales requiere marcas de tiempo y no puede incluir detección ni ocultación de entidades.</p><p>La indicación de términos clave orienta el reconocimiento de nombres, términos de producto y vocabulario especializado mediante el contexto. La documentación actual por lotes permite hasta 1,000 términos, cada uno con menos de 50 caracteres y un máximo de cinco palabras. Proporciona las grafías pertinentes en lugar de un catálogo amplio sin relación. Para una entrevista técnica, facilita los nombres de productos y las abreviaturas que probablemente aparezcan y después inspecciónalos en sus marcas de tiempo del resultado. Los términos clave sesgan el reconocimiento; no son instrucciones para insertar un término cuando la grabación no lo respalda.</p><p>Elige el propósito de la transcripción antes de depurarla. Un registro literal conserva las palabras pronunciadas, mientras que la opción documentada no-verbatim elimina muletillas, comienzos fallidos y disfluencias para ofrecer un resultado más legible. El etiquetado dinámico de audio puede identificar eventos no verbales como risas o pasos. Una transcripción pulida puede resultar útil para subtítulos o lectura, pero no debe sustituir silenciosamente al registro original cuando las repeticiones, correcciones o sonidos no verbales sean importantes para la tarea.</p><p>El fabricante también documenta detección de entidades y edición experimental de transcripciones. En la interfaz del productor, la edición de transcripciones no puede combinarse con detección de entidades, ocultación de entidades ni transcripción multicanal. Las entidades detectadas proporcionan posiciones estructuradas de información seleccionada en la transcripción. La ocultación opcional de entidades enmascara el texto detectado con etiquetas de sustitución; depende de la detección de entidades y la lista de entidades no se devuelve cuando se activa la ocultación. La ocultación se realiza durante la transcripción, utilizando un marcador genérico de sustitución, una etiqueta de categoría o una etiqueta de categoría numerada. La ocultación automática puede pasar por alto contenido sensible, así que inspecciona la transcripción anonimizada antes de compartirla. Una edición en lenguaje natural devuelve texto editado junto al resultado original, manteniendo disponibles el registro temporal y el de hablantes originales. Conserva esos artefactos separados: una grafía corregida o una frase reformateada pueden necesitar una nueva comprobación antes de alinearse con el audio o utilizarse en una extracción posterior. Estas funciones procesan la transcripción; no demuestran que todos los detalles importantes se hayan reconocido correctamente.</p><p>Para una transcripción terminada, revisa nombres, números, negaciones y cambios de hablante volviendo al audio correspondiente. Presta atención a las secciones de bajo volumen, las superposiciones y los cambios de idioma, en lugar de valorar la calidad solo por la fluidez del texto. Conserva las expresiones inciertas para corregirlas, en lugar de completar un pasaje inaudible con una frase plausible. El resultado útil es un registro textual comprobado con la información temporal y de hablantes necesaria para su uso previsto; después, una transcripción puede convertirse en entrada de un paso separado de resumen, traducción o análisis.</p>",
  "aboutText": "ElevenLabs Scribe v2 es el modelo de reconocimiento de voz por lotes para audio grabado, transcripción y subtitulado. Amplía Scribe v1 con un mejor tratamiento de grabaciones largas, pausas, cambios de tono y silencios prolongados. El resultado es el habla escrita con información temporal y anotaciones opcionales de hablantes y eventos de audio. Scribe v2 Realtime es una edición separada de transcripción en directo; el propósito de este modelo es procesar grabaciones completas.\n\nEl fabricante documenta reconocimiento en más de 90 idiomas y detección automática del idioma, incluidas grabaciones que alternan entre idiomas. Una indicación del idioma conocido puede ayudar al modelo a interpretar el audio. Prepara una grabación clara, conserva el idioma y los nombres originales y evita la saturación grave o el procesamiento innecesario que elimine detalles del habla. Entre las entradas habituales documentadas figuran WAV, MP3, FLAC, M4A, AAC, OGG, Opus y WebM. Elige una representación de entrada admitida por la implementación de transcripción y conserva la grabación fuente para revisarla.\n\nLa respuesta estándar contiene el texto reconocido, información sobre el idioma detectado y una secuencia de palabras con tiempos. Los registros de palabras pueden incluir tiempos de inicio y fin, identificadores de hablantes y una log-probabilidad de reconocimiento. Esto hace útil el resultado para subtítulos, entrevistas consultables o un editor que vuelva al sonido pertinente. Conserva el resultado temporal junto al audio fuente. Para un pódcast, por ejemplo, el resultado puede ser una transcripción editable y un registro alineado por palabras que permita localizar correcciones antes de organizar los subtítulos.\n\nLa diarización etiqueta quién habla y cuándo en audio con varios hablantes; el fabricante documenta hasta 32 hablantes. Actívala cuando los turnos sean importantes y proporciona un número razonable de hablantes si se conoce esa información. Distingue una etiqueta de hablante detectada del nombre verificado de una persona. Para una entrevista o reunión, revisa los cambios de turno contra la grabación, especialmente cuando las voces se superpongan o suenen similares. Una etiqueta ayuda a organizar la transcripción; no establece por sí sola la identidad del hablante.\n\nUna grabación con un hablante por canal tiene una estructura distinta de varias voces mezcladas en un canal. La interfaz del productor puede procesar hasta cinco canales de forma independiente y devolver transcripciones separadas o una transcripción combinada ordenada por tiempo, con índices de canal. Conserva esa disposición de canales cuando sea significativa. Mezclar una grabación de llamada separada en canales antes de transcribirla puede descartar una fuente útil de información sobre los hablantes. Mantén la atribución por canal separada de la diarización inferida de audio mezclado. La respuesta combinada de canales requiere marcas de tiempo y no puede incluir detección ni ocultación de entidades.\n\nLa indicación de términos clave orienta el reconocimiento de nombres, términos de producto y vocabulario especializado mediante el contexto. La documentación actual por lotes permite hasta 1,000 términos, cada uno con menos de 50 caracteres y un máximo de cinco palabras. Proporciona las grafías pertinentes en lugar de un catálogo amplio sin relación. Para una entrevista técnica, facilita los nombres de productos y las abreviaturas que probablemente aparezcan y después inspecciónalos en sus marcas de tiempo del resultado. Los términos clave sesgan el reconocimiento; no son instrucciones para insertar un término cuando la grabación no lo respalda.\n\nElige el propósito de la transcripción antes de depurarla. Un registro literal conserva las palabras pronunciadas, mientras que la opción documentada no-verbatim elimina muletillas, comienzos fallidos y disfluencias para ofrecer un resultado más legible. El etiquetado dinámico de audio puede identificar eventos no verbales como risas o pasos. Una transcripción pulida puede resultar útil para subtítulos o lectura, pero no debe sustituir silenciosamente al registro original cuando las repeticiones, correcciones o sonidos no verbales sean importantes para la tarea.\n\nEl fabricante también documenta detección de entidades y edición experimental de transcripciones. En la interfaz del productor, la edición de transcripciones no puede combinarse con detección de entidades, ocultación de entidades ni transcripción multicanal. Las entidades detectadas proporcionan posiciones estructuradas de información seleccionada en la transcripción. La ocultación opcional de entidades enmascara el texto detectado con etiquetas de sustitución; depende de la detección de entidades y la lista de entidades no se devuelve cuando se activa la ocultación. La ocultación se realiza durante la transcripción, utilizando un marcador genérico de sustitución, una etiqueta de categoría o una etiqueta de categoría numerada. La ocultación automática puede pasar por alto contenido sensible, así que inspecciona la transcripción anonimizada antes de compartirla. Una edición en lenguaje natural devuelve texto editado junto al resultado original, manteniendo disponibles el registro temporal y el de hablantes originales. Conserva esos artefactos separados: una grafía corregida o una frase reformateada pueden necesitar una nueva comprobación antes de alinearse con el audio o utilizarse en una extracción posterior. Estas funciones procesan la transcripción; no demuestran que todos los detalles importantes se hayan reconocido correctamente.\n\nPara una transcripción terminada, revisa nombres, números, negaciones y cambios de hablante volviendo al audio correspondiente. Presta atención a las secciones de bajo volumen, las superposiciones y los cambios de idioma, en lugar de valorar la calidad solo por la fluidez del texto. Conserva las expresiones inciertas para corregirlas, en lugar de completar un pasaje inaudible con una frase plausible. El resultado útil es un registro textual comprobado con la información temporal y de hablantes necesaria para su uso previsto; después, una transcripción puede convertirse en entrada de un paso separado de resumen, traducción o análisis.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "ee971d713eb839fe17653c6e11a00bd6abbaa1da8edb703fda307fff568f1782",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "es",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ElevenLabs: Scribe v2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Cerrar\">×</button></div><div class=\"idline\"><span>ElevenLabs /</span><code>elevenlabs/scribe-v2</code><button type=\"button\" id=\"copy-id\">Copiar ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Secciones de la ficha del modelo\"><button type=\"button\" data-card-jump=\"overview\">Primeros pasos</button><button type=\"button\" data-card-jump=\"methods\">Entradas y métodos</button><button type=\"button\" data-card-jump=\"pricing\">Planes</button><button type=\"button\" data-card-jump=\"examples\">Ejemplos</button><button type=\"button\" data-card-jump=\"results\">Resultados</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Métodos de API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|transcriptions|/v1/audio/transcriptions|elevenlabs%2Fscribe-v2\">Transcripción</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\">Primeros pasos</h3><p class=\"mdesc-full\">ElevenLabs Scribe v2 transcribe audio grabado en más de 90 idiomas, con tiempos por palabra, diarización opcional de hablantes y etiquetas de eventos no verbales. Está diseñado para grabaciones largas, subtítulos y transcripciones editables, con términos clave contextuales y opciones de transcripción literal o depurada.</p><dl class=\"card-io\" data-card-io><div><dt>Entradas aceptadas</dt><dd>Audio</dd></div><div><dt>Resultados</dt><dd>Texto</dd></div></dl><details class=\"card-about\"><summary>Sobre el modelo</summary><p class=\"note-s\" data-model-method-boundary>Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.</p><div class=\"mabout\" id=\"m-about\"><p>ElevenLabs Scribe v2 es el modelo de reconocimiento de voz por lotes para audio grabado, transcripción y subtitulado. Amplía Scribe v1 con un mejor tratamiento de grabaciones largas, pausas, cambios de tono y silencios prolongados. El resultado es el habla escrita con información temporal y anotaciones opcionales de hablantes y eventos de audio. Scribe v2 Realtime es una edición separada de transcripción en directo; el propósito de este modelo es procesar grabaciones completas.</p><p>El fabricante documenta reconocimiento en más de 90 idiomas y detección automática del idioma, incluidas grabaciones que alternan entre idiomas. Una indicación del idioma conocido puede ayudar al modelo a interpretar el audio. Prepara una grabación clara, conserva el idioma y los nombres originales y evita la saturación grave o el procesamiento innecesario que elimine detalles del habla. Entre las entradas habituales documentadas figuran WAV, MP3, FLAC, M4A, AAC, OGG, Opus y WebM. Elige una representación de entrada admitida por la implementación de transcripción y conserva la grabación fuente para revisarla.</p><p>La respuesta estándar contiene el texto reconocido, información sobre el idioma detectado y una secuencia de palabras con tiempos. Los registros de palabras pueden incluir tiempos de inicio y fin, identificadores de hablantes y una log-probabilidad de reconocimiento. Esto hace útil el resultado para subtítulos, entrevistas consultables o un editor que vuelva al sonido pertinente. Conserva el resultado temporal junto al audio fuente. Para un pódcast, por ejemplo, el resultado puede ser una transcripción editable y un registro alineado por palabras que permita localizar correcciones antes de organizar los subtítulos.</p><p>La diarización etiqueta quién habla y cuándo en audio con varios hablantes; el fabricante documenta hasta 32 hablantes. Actívala cuando los turnos sean importantes y proporciona un número razonable de hablantes si se conoce esa información. Distingue una etiqueta de hablante detectada del nombre verificado de una persona. Para una entrevista o reunión, revisa los cambios de turno contra la grabación, especialmente cuando las voces se superpongan o suenen similares. Una etiqueta ayuda a organizar la transcripción; no establece por sí sola la identidad del hablante.</p><p>Una grabación con un hablante por canal tiene una estructura distinta de varias voces mezcladas en un canal. La interfaz del productor puede procesar hasta cinco canales de forma independiente y devolver transcripciones separadas o una transcripción combinada ordenada por tiempo, con índices de canal. Conserva esa disposición de canales cuando sea significativa. Mezclar una grabación de llamada separada en canales antes de transcribirla puede descartar una fuente útil de información sobre los hablantes. Mantén la atribución por canal separada de la diarización inferida de audio mezclado. La respuesta combinada de canales requiere marcas de tiempo y no puede incluir detección ni ocultación de entidades.</p><p>La indicación de términos clave orienta el reconocimiento de nombres, términos de producto y vocabulario especializado mediante el contexto. La documentación actual por lotes permite hasta 1,000 términos, cada uno con menos de 50 caracteres y un máximo de cinco palabras. Proporciona las grafías pertinentes en lugar de un catálogo amplio sin relación. Para una entrevista técnica, facilita los nombres de productos y las abreviaturas que probablemente aparezcan y después inspecciónalos en sus marcas de tiempo del resultado. Los términos clave sesgan el reconocimiento; no son instrucciones para insertar un término cuando la grabación no lo respalda.</p><p>Elige el propósito de la transcripción antes de depurarla. Un registro literal conserva las palabras pronunciadas, mientras que la opción documentada no-verbatim elimina muletillas, comienzos fallidos y disfluencias para ofrecer un resultado más legible. El etiquetado dinámico de audio puede identificar eventos no verbales como risas o pasos. Una transcripción pulida puede resultar útil para subtítulos o lectura, pero no debe sustituir silenciosamente al registro original cuando las repeticiones, correcciones o sonidos no verbales sean importantes para la tarea.</p><p>El fabricante también documenta detección de entidades y edición experimental de transcripciones. En la interfaz del productor, la edición de transcripciones no puede combinarse con detección de entidades, ocultación de entidades ni transcripción multicanal. Las entidades detectadas proporcionan posiciones estructuradas de información seleccionada en la transcripción. La ocultación opcional de entidades enmascara el texto detectado con etiquetas de sustitución; depende de la detección de entidades y la lista de entidades no se devuelve cuando se activa la ocultación. La ocultación se realiza durante la transcripción, utilizando un marcador genérico de sustitución, una etiqueta de categoría o una etiqueta de categoría numerada. La ocultación automática puede pasar por alto contenido sensible, así que inspecciona la transcripción anonimizada antes de compartirla. Una edición en lenguaje natural devuelve texto editado junto al resultado original, manteniendo disponibles el registro temporal y el de hablantes originales. Conserva esos artefactos separados: una grafía corregida o una frase reformateada pueden necesitar una nueva comprobación antes de alinearse con el audio o utilizarse en una extracción posterior. Estas funciones procesan la transcripción; no demuestran que todos los detalles importantes se hayan reconocido correctamente.</p><p>Para una transcripción terminada, revisa nombres, números, negaciones y cambios de hablante volviendo al audio correspondiente. Presta atención a las secciones de bajo volumen, las superposiciones y los cambios de idioma, en lugar de valorar la calidad solo por la fluidez del texto. Conserva las expresiones inciertas para corregirlas, en lugar de completar un pasaje inaudible con una frase plausible. El resultado útil es un registro textual comprobado con la información temporal y de hablantes necesaria para su uso previsto; después, una transcripción puede convertirse en entrada de un paso separado de resumen, traducción o análisis.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponible en Ailoot · entradas y métodos</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Transcripción</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Tipos de entrada</dt><dd><code>audio</code></dd></div><div><dt>Tipos de salida</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Campo</th><th>Tipo</th><th>Requisito</th><th>Valores y límites</th><th>Predeterminado</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obligatorio</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span><div>elevenlabs/scribe-v2</div></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obligatorio</td><td data-cell-label=\"Valores y límites\"><span class=\"card-cell-label\">Valores y límites</span></td><td data-cell-label=\"Predeterminado\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predeterminado</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parámetros del método y ciclo de vida</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parámetro</th><th>Contrato</th></tr></thead><tbody><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>content_type</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>application/json</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>required</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>model, input_audio</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>material_types</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>audio</td></tr><tr><th data-cell-label=\"Parámetro\" scope=\"row\"><span class=\"card-cell-label\">Parámetro</span><code>material_conditions</code></th><td data-cell-label=\"Contrato\"><span class=\"card-cell-label\">Contrato</span>El ejemplo lee tu archivo PCM WAV real y no vacío, codifica todos los bytes del archivo en base64 y envía input_audio.format con el valor wav.</td></tr></tbody></table></div><p>Ciclo de vida: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id exacto de un registro existente de medios bajo tu titularidad</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></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Planes</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.</p><dl data-price-conditions><dt>Modo rápido</dt><dd>Sin especificar <span class=\"note-s\">Cuando se selecciona el modo rápido</span></dd><dt>Modo flex</dt><dd>Sin especificar <span class=\"note-s\">Cuando se selecciona el modo flex</span></dd><dt>Esfuerzo máximo de razonamiento</dt><dd>Sin especificar <span class=\"note-s\">Cuando el esfuerzo máximo de razonamiento utiliza el ajuste predeterminado (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifas de Ailoot</h4><h4>Precios por configuración</h4><p class=\"note-s\">Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuración</th><th>Tabla de tarifas</th><th>Unidad de facturación</th><th>Cargo</th></tr></thead><tbody><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>Tarifas base por token</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>Tarifa base</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>—</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Entrada · Tokens de entrada</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Salida · Tokens de salida</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Lectura de caché</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escritura en caché</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrada · Escritura en caché, 1 hora</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuración\" scope=\"row\"><span class=\"card-cell-label\">Configuración</span>segundo de audio de entrada</th><td data-cell-label=\"Tabla de tarifas\"><span class=\"card-cell-label\">Tabla de tarifas</span>—</td><td data-cell-label=\"Unidad de facturación\"><span class=\"card-cell-label\">Unidad de facturación</span>por segundo de audio de entrada</td><td data-cell-label=\"Cargo\"><span class=\"card-cell-label\">Cargo</span><div><span>Entrada · segundo de audio de entrada</span> <b>$0.0001222222222222</b> <span class=\"price-unit\">por segundo de audio de entrada</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserva un importe estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. <a href=\"/docs/es/billing/reserve/\">Cómo funcionan la reserva y la liquidación →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Solicitudes de ejemplo</h3><h4>Ailoot Ultra · Transcripción</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes del código\"><button class=\"cg-tab\" id=\"model-code-1328-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1328-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · archivo WAV real y resultado original completo</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copiar código\"><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-1328-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1328-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;elevenlabs/scribe-v2&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\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 response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recibir y guardar resultados</h3><h4>Ailoot Ultra · Transcripción</h4><p class=\"note-s\">Cuerpo original completo de la respuesta, estado y cabeceras reenviadas. Este manejador no añade una estructura JSON universal, un campo de texto ni un contenedor de tarea.</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><div class=\"card-result-process\" data-all-results><h5>Conserva todos los resultados completados</h5><p class=\"note-s\">Conserva todas las respuestas, archivos y partes de contenido completos recibidos.</p><p class=\"note-s\">Conserva la respuesta completa y las cabeceras, todas las salidas reales, los identificadores originales devueltos y todos los campos de uso. Recupera la operación original sin volver a enviar la solicitud de creación.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Si es necesario revisar la respuesta original</h5><p class=\"note-s\">Conserva el X-Client-Request-ID real y la respuesta completa. Consulta los recursos originales bajo tu titularidad y sus URL firmadas exactas de contenido; no vuelvas a enviar nunca una creación incierta.</p></div><details class=\"card-about\" data-output-fields><summary>Campos de respuesta</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Campo</th><th>Tipo</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">text (when present)</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Errores y siguientes pasos</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Respuesta</th><th>Condición</th><th>Siguiente paso</th></tr></thead><tbody><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>El cuerpo JSON o el ID canónico explícito del modelo no es válido.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Conserva la respuesta y corrige el campo indicado de la solicitud.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>La clave API de Ailoot no es válida.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Usa tu clave API autorizada de Ailoot.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>403 · <code>permission_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>El grupo de la clave no tiene acceso a este método.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Conserva los detalles del error devueltos.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>El método seleccionado no tiene ninguna ruta admitida.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Conserva los detalles del error devueltos.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>La tarifa aceptada no puede obtener la cantidad de entrada o el límite que necesita.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Conserva la respuesta; utiliza la representación de entrada exigida por la tarifa aceptada.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>503 · <code></code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>El almacenamiento, la ruta, el precio del método o la reserva necesarios no están disponibles.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Conserva la respuesta original completa. Una reserva incierta no autoriza un reenvío.</td></tr><tr><th data-cell-label=\"Respuesta\" scope=\"row\"><span class=\"card-cell-label\">Respuesta</span>502 · <code>server_error</code></th><td data-cell-label=\"Condición\"><span class=\"card-cell-label\">Condición</span>Es necesario comprobar el resultado original, el uso o la liquidación.</td><td data-cell-label=\"Siguiente paso\"><span class=\"card-cell-label\">Siguiente paso</span>Conserva el ID real de solicitud y la respuesta original. Consulta el registro existente bajo tu titularidad; no vuelvas a enviar la solicitud de creación.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias del modelo</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=elevenlabs%2Fscribe-v2&amp;route=Ultra&amp;caller=elevenlabs%2Fscribe-v2&amp;fmt=transcriptions\"><code>elevenlabs/scribe-v2</code></a></span></p><h4>Alias de rutas de métodos</h4><p class=\"note-s\">Usa las rutas de método indicadas arriba.</p><h4>ID de modelo relacionados</h4><p class=\"note-s\"><a href=\"#m=elevenlabs%2Fscribe-v2&amp;route=Ultra&amp;caller=elevenlabs%2Fscribe-v2&amp;fmt=transcriptions\"><code>elevenlabs/scribe-v2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "elevenlabs/scribe-v2",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "elevenlabs/scribe-v2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|elevenlabs%2Fscribe-v2",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "El cuerpo JSON o el ID canónico explícito del modelo no es válido.",
                "http_status": 400,
                "recovery": "Conserva la respuesta y corrige el campo indicado de la solicitud.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "La clave API de Ailoot no es válida.",
                "http_status": 401,
                "recovery": "Usa tu clave API autorizada de Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "El grupo de la clave no tiene acceso a este método.",
                "http_status": 403,
                "recovery": "Conserva los detalles del error devueltos.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "El método seleccionado no tiene ninguna ruta admitida.",
                "http_status": 404,
                "recovery": "Conserva los detalles del error devueltos.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "La tarifa aceptada no puede obtener la cantidad de entrada o el límite que necesita.",
                "http_status": 422,
                "recovery": "Conserva la respuesta; utiliza la representación de entrada exigida por la tarifa aceptada.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "El almacenamiento, la ruta, el precio del método o la reserva necesarios no están disponibles.",
                "http_status": 503,
                "recovery": "Conserva la respuesta original completa. Una reserva incierta no autoriza un reenvío.",
                "type": null
              },
              {
                "code": null,
                "condition": "Es necesario comprobar el resultado original, el uso o la liquidación.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conserva el ID real de solicitud y la respuesta original. Consulta el registro existente bajo tu titularidad; no vuelvas a enviar la solicitud de creación.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conserva el X-Client-Request-ID real y la respuesta completa. Consulta los recursos originales bajo tu titularidad y sus URL firmadas exactas de contenido; no vuelvas a enviar nunca una creación incierta."
            },
            "outputs": {
              "all_results": "Conserva la respuesta completa y las cabeceras, todas las salidas reales, los identificadores originales devueltos y todos los campos de uso. Recupera la operación original sin volver a enviar la solicitud de creación.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Cuerpo original completo de la respuesta, estado y cabeceras reenviadas. Este manejador no añade una estructura JSON universal, un campo de texto ni un contenedor de tarea."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "elevenlabs/scribe-v2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "elevenlabs/scribe-v2"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "elevenlabs/scribe-v2"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "El ejemplo lee tu archivo PCM WAV real y no vacío, codifica todos los bytes del archivo en base64 y envía input_audio.format con el valor wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id exacto de un registro existente de medios bajo tu titularidad",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "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 audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001222222222222",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001222222222222",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'elevenlabs/scribe-v2', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transcripción",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "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_second": 0.0001222222222222
          }
        },
        "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 audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001222222222222",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001222222222222",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "elevenlabs/scribe-v2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "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.0001222222222222",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001222222222222",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "elevenlabs/scribe-v2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "e05f4e6a943e9b1814040ab7ecadaca3b689f9fbc4dd94b235fef6ac5e24455d",
    "input_html_sha256": "afca799362f00f13ba3cca61053bc7ce7517ea5574bd9ab5b29aa09f5e9bd46e",
    "private_audit_sha256": "2a3aea5ed79b4f369858b74696cd8c3ea692cf4e9c3d6ae8cfcac4d9fd1f5767",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/es/elevenlabs-scribe-v2/",
    "description": "ElevenLabs Scribe v2 transcribe audio grabado en más de 90 idiomas, con tiempos por palabra, diarización opcional de hablantes y etiquetas de eventos no verbales. Está diseñado para grabaciones largas, subtítulos y transcripciones editables, con términos clave contextuales y opciones de transcripción literal o depurada.",
    "locale": "es",
    "md_url": "https://ailoot.ai/models/es/elevenlabs-scribe-v2/index.md",
    "title": "ElevenLabs: Scribe v2 — Ailoot",
    "url": "https://ailoot.ai/models/es/elevenlabs-scribe-v2/"
  },
  "rawModel": {
    "about": "ElevenLabs Scribe v2 es el modelo de reconocimiento de voz por lotes para audio grabado, transcripción y subtitulado. Amplía Scribe v1 con un mejor tratamiento de grabaciones largas, pausas, cambios de tono y silencios prolongados. El resultado es el habla escrita con información temporal y anotaciones opcionales de hablantes y eventos de audio. Scribe v2 Realtime es una edición separada de transcripción en directo; el propósito de este modelo es procesar grabaciones completas.\n\nEl fabricante documenta reconocimiento en más de 90 idiomas y detección automática del idioma, incluidas grabaciones que alternan entre idiomas. Una indicación del idioma conocido puede ayudar al modelo a interpretar el audio. Prepara una grabación clara, conserva el idioma y los nombres originales y evita la saturación grave o el procesamiento innecesario que elimine detalles del habla. Entre las entradas habituales documentadas figuran WAV, MP3, FLAC, M4A, AAC, OGG, Opus y WebM. Elige una representación de entrada admitida por la implementación de transcripción y conserva la grabación fuente para revisarla.\n\nLa respuesta estándar contiene el texto reconocido, información sobre el idioma detectado y una secuencia de palabras con tiempos. Los registros de palabras pueden incluir tiempos de inicio y fin, identificadores de hablantes y una log-probabilidad de reconocimiento. Esto hace útil el resultado para subtítulos, entrevistas consultables o un editor que vuelva al sonido pertinente. Conserva el resultado temporal junto al audio fuente. Para un pódcast, por ejemplo, el resultado puede ser una transcripción editable y un registro alineado por palabras que permita localizar correcciones antes de organizar los subtítulos.\n\nLa diarización etiqueta quién habla y cuándo en audio con varios hablantes; el fabricante documenta hasta 32 hablantes. Actívala cuando los turnos sean importantes y proporciona un número razonable de hablantes si se conoce esa información. Distingue una etiqueta de hablante detectada del nombre verificado de una persona. Para una entrevista o reunión, revisa los cambios de turno contra la grabación, especialmente cuando las voces se superpongan o suenen similares. Una etiqueta ayuda a organizar la transcripción; no establece por sí sola la identidad del hablante.\n\nUna grabación con un hablante por canal tiene una estructura distinta de varias voces mezcladas en un canal. La interfaz del productor puede procesar hasta cinco canales de forma independiente y devolver transcripciones separadas o una transcripción combinada ordenada por tiempo, con índices de canal. Conserva esa disposición de canales cuando sea significativa. Mezclar una grabación de llamada separada en canales antes de transcribirla puede descartar una fuente útil de información sobre los hablantes. Mantén la atribución por canal separada de la diarización inferida de audio mezclado. La respuesta combinada de canales requiere marcas de tiempo y no puede incluir detección ni ocultación de entidades.\n\nLa indicación de términos clave orienta el reconocimiento de nombres, términos de producto y vocabulario especializado mediante el contexto. La documentación actual por lotes permite hasta 1,000 términos, cada uno con menos de 50 caracteres y un máximo de cinco palabras. Proporciona las grafías pertinentes en lugar de un catálogo amplio sin relación. Para una entrevista técnica, facilita los nombres de productos y las abreviaturas que probablemente aparezcan y después inspecciónalos en sus marcas de tiempo del resultado. Los términos clave sesgan el reconocimiento; no son instrucciones para insertar un término cuando la grabación no lo respalda.\n\nElige el propósito de la transcripción antes de depurarla. Un registro literal conserva las palabras pronunciadas, mientras que la opción documentada no-verbatim elimina muletillas, comienzos fallidos y disfluencias para ofrecer un resultado más legible. El etiquetado dinámico de audio puede identificar eventos no verbales como risas o pasos. Una transcripción pulida puede resultar útil para subtítulos o lectura, pero no debe sustituir silenciosamente al registro original cuando las repeticiones, correcciones o sonidos no verbales sean importantes para la tarea.\n\nEl fabricante también documenta detección de entidades y edición experimental de transcripciones. En la interfaz del productor, la edición de transcripciones no puede combinarse con detección de entidades, ocultación de entidades ni transcripción multicanal. Las entidades detectadas proporcionan posiciones estructuradas de información seleccionada en la transcripción. La ocultación opcional de entidades enmascara el texto detectado con etiquetas de sustitución; depende de la detección de entidades y la lista de entidades no se devuelve cuando se activa la ocultación. La ocultación se realiza durante la transcripción, utilizando un marcador genérico de sustitución, una etiqueta de categoría o una etiqueta de categoría numerada. La ocultación automática puede pasar por alto contenido sensible, así que inspecciona la transcripción anonimizada antes de compartirla. Una edición en lenguaje natural devuelve texto editado junto al resultado original, manteniendo disponibles el registro temporal y el de hablantes originales. Conserva esos artefactos separados: una grafía corregida o una frase reformateada pueden necesitar una nueva comprobación antes de alinearse con el audio o utilizarse en una extracción posterior. Estas funciones procesan la transcripción; no demuestran que todos los detalles importantes se hayan reconocido correctamente.\n\nPara una transcripción terminada, revisa nombres, números, negaciones y cambios de hablante volviendo al audio correspondiente. Presta atención a las secciones de bajo volumen, las superposiciones y los cambios de idioma, en lugar de valorar la calidad solo por la fluidez del texto. Conserva las expresiones inciertas para corregirlas, en lugar de completar un pasaje inaudible con una frase plausible. El resultado útil es un registro textual comprobado con la información temporal y de hablantes necesaria para su uso previsto; después, una transcripción puede convertirse en entrada de un paso separado de resumen, traducción o análisis.",
    "alias_of": null,
    "aliases": [],
    "author": "ElevenLabs",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001222222222222",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001222222222222",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Consulta los precios completos de la configuración en los detalles."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "elevenlabs/scribe-v2",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "El cuerpo JSON o el ID canónico explícito del modelo no es válido.",
                "http_status": 400,
                "recovery": "Conserva la respuesta y corrige el campo indicado de la solicitud.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "La clave API de Ailoot no es válida.",
                "http_status": 401,
                "recovery": "Usa tu clave API autorizada de Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "El grupo de la clave no tiene acceso a este método.",
                "http_status": 403,
                "recovery": "Conserva los detalles del error devueltos.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "El método seleccionado no tiene ninguna ruta admitida.",
                "http_status": 404,
                "recovery": "Conserva los detalles del error devueltos.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "La tarifa aceptada no puede obtener la cantidad de entrada o el límite que necesita.",
                "http_status": 422,
                "recovery": "Conserva la respuesta; utiliza la representación de entrada exigida por la tarifa aceptada.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "El almacenamiento, la ruta, el precio del método o la reserva necesarios no están disponibles.",
                "http_status": 503,
                "recovery": "Conserva la respuesta original completa. Una reserva incierta no autoriza un reenvío.",
                "type": null
              },
              {
                "code": null,
                "condition": "Es necesario comprobar el resultado original, el uso o la liquidación.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conserva el ID real de solicitud y la respuesta original. Consulta el registro existente bajo tu titularidad; no vuelvas a enviar la solicitud de creación.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conserva el X-Client-Request-ID real y la respuesta completa. Consulta los recursos originales bajo tu titularidad y sus URL firmadas exactas de contenido; no vuelvas a enviar nunca una creación incierta."
            },
            "outputs": {
              "all_results": "Conserva la respuesta completa y las cabeceras, todas las salidas reales, los identificadores originales devueltos y todos los campos de uso. Recupera la operación original sin volver a enviar la solicitud de creación.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Cuerpo original completo de la respuesta, estado y cabeceras reenviadas. Este manejador no añade una estructura JSON universal, un campo de texto ni un contenedor de tarea."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "elevenlabs/scribe-v2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "elevenlabs/scribe-v2"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "elevenlabs/scribe-v2"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "El ejemplo lee tu archivo PCM WAV real y no vacío, codifica todos los bytes del archivo en base64 y envía input_audio.format con el valor wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id exacto de un registro existente de medios bajo tu titularidad",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "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 audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001222222222222",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001222222222222",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'elevenlabs/scribe-v2', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transcripción",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "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_second": 0.0001222222222222
          }
        },
        "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 audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001222222222222",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001222222222222",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "elevenlabs/scribe-v2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "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.0001222222222222",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001222222222222",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "elevenlabs/scribe-v2",
        "request_model_id": "elevenlabs/scribe-v2",
        "route_label": "Ultra"
      }
    ],
    "name": "ElevenLabs: Scribe v2",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "ElevenLabs Scribe v2 transcribe audio grabado en más de 90 idiomas, con tiempos por palabra, diarización opcional de hablantes y etiquetas de eventos no verbales. Está diseñado para grabaciones largas, subtítulos y transcripciones editables, con términos clave contextuales y opciones de transcripción literal o depurada."
  },
  "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": "ElevenLabs Scribe v2 transcribe audio grabado en más de 90 idiomas, con tiempos por palabra, diarización opcional de hablantes y etiquetas de eventos no verbales. Está diseñado para grabaciones largas, subtítulos y transcripciones editables, con términos clave contextuales y opciones de transcripción literal o depurada.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "0c08c3602e5fec6ef601d66897e7945047665c36f77faf7f726de2aeec1fadc2",
    "renderer_sha256": "b6d488b4bdee68568e5b17d2d4871b2ba1885e1032091b635a7a58ad2ca224e7"
  },
  "sourceRevision": "02ebf652113c9aa4a570535d2db8b7f27ae9d1435d364d0eb0da7a25ac803265"
}
