{
  "aboutHtml": "<p>Whisper 1 er OpenAIs generelle API-modell for talegjenkjenning, dokumentert som drevet av den åpne kildekodemodellen Whisper V2. Den tar imot en lydfil og returnerer tekst. Produsenten beskriver flerspråklig gjenkjenning, språkidentifikasjon og en separat oppgave for taleoversettelse. Transkripsjon bevarer talespråket; produsentens separate oversettelsesgrensesnitt returnerer engelsk tekst.</p><p>Et nyttig bruksområde er å forberede et intervju, et talenotat eller en innspilt samtale for senere søk og redigering. Oppgi det ferdige opptaket og inndataspråket når det er kjent. OpenAI dokumenterer 98 støttede språk og påpeker at gjenkjenningsnøyaktighet varierer med språk. Språkhintet for ett språk bruker en ISO 639-1-kode; nyere flerspråks- og nøkkelordfelt i andre transkripsjonsmodeller er separate kontroller.</p><p>Produsentens filtranskripsjon tar imot filer på opptil 25 MB i MP3-, MP4-, MPEG-, MPGA-, M4A-, WAV- eller WebM-format. Bruk et komprimert format til et større opptak, eller del det i deler innenfor grensen. Bevar setningsgrenser og rekkefølgen på delene slik at den sammensatte transkripsjonen fortsatt er knyttet til originalopptaket. En videokonteiner leverer lyden sin til denne oppgaven, ikke inndata for visuell beskrivelse.</p><p>En prompt kan oppgi navn, akronymer eller opptaksspesifikt ordforråd og kontekst fra et tidligere segment. Whispers promptgrense er 224 tokener, og prompten bør samsvare med lydens språk. Produsenten sier at Whisper ikke følger instruksjoner som en generell tekstmodell. Bruk prompten som relevant transkripsjonskontekst, og kontroller deretter viktige skrivemåter mot opptaket i stedet for å behandle en terminologiliste som ord taleren nødvendigvis sa.</p><p>Produsenten dokumenterer transkripsjonsformatene JSON, ren tekst, SRT, VTT og verbose JSON. Tidsstempler for ord og segmenter krever verbose JSON; enten én eller begge detaljgrader kan forespørres. API-referansen påpeker at segmenttidsstempler ikke tilfører ekstra latenstid, mens ordtidsstempler krever ytterligere behandling. Utdataene støtter teksting og lokalisering av avsnitt under redigering; merking med talerdiarisering tilhører en annen spesialisert modell.</p><p>Whisper 1 støtter ikke strømming av filtranskripsjon. Referansen dokumenterer også en samplingtemperatur mellom null og én; ved null kan modellen øke temperaturen automatisk når dekodingstersklene krever det. Dette beskriver produsentens behandlingskontroller, ikke et løfte om at hvert opptak gir en identisk eller helt nøyaktig transkripsjon.</p><p>Definer sluttresultatet: en transkripsjon for søk, en undertekstfil eller tekst med ord-/segmenttiming. Oppbevar originalopptaket, delrekkefølgen og relevante tidsreferanser fra kilden sammen med resultatet. Et senere tekstredigeringssteg kan rette en feilstaving eller lage et sammendrag, men sammenlign endringene med lyden så talerens mening bevares. Den gjenkjente teksten blir grunnlag for neste oppgave, ikke et generert svar på det muntlige spørsmålet.</p>",
  "aboutText": "Whisper 1 er OpenAIs generelle API-modell for talegjenkjenning, dokumentert som drevet av den åpne kildekodemodellen Whisper V2. Den tar imot en lydfil og returnerer tekst. Produsenten beskriver flerspråklig gjenkjenning, språkidentifikasjon og en separat oppgave for taleoversettelse. Transkripsjon bevarer talespråket; produsentens separate oversettelsesgrensesnitt returnerer engelsk tekst.\n\nEt nyttig bruksområde er å forberede et intervju, et talenotat eller en innspilt samtale for senere søk og redigering. Oppgi det ferdige opptaket og inndataspråket når det er kjent. OpenAI dokumenterer 98 støttede språk og påpeker at gjenkjenningsnøyaktighet varierer med språk. Språkhintet for ett språk bruker en ISO 639-1-kode; nyere flerspråks- og nøkkelordfelt i andre transkripsjonsmodeller er separate kontroller.\n\nProdusentens filtranskripsjon tar imot filer på opptil 25 MB i MP3-, MP4-, MPEG-, MPGA-, M4A-, WAV- eller WebM-format. Bruk et komprimert format til et større opptak, eller del det i deler innenfor grensen. Bevar setningsgrenser og rekkefølgen på delene slik at den sammensatte transkripsjonen fortsatt er knyttet til originalopptaket. En videokonteiner leverer lyden sin til denne oppgaven, ikke inndata for visuell beskrivelse.\n\nEn prompt kan oppgi navn, akronymer eller opptaksspesifikt ordforråd og kontekst fra et tidligere segment. Whispers promptgrense er 224 tokener, og prompten bør samsvare med lydens språk. Produsenten sier at Whisper ikke følger instruksjoner som en generell tekstmodell. Bruk prompten som relevant transkripsjonskontekst, og kontroller deretter viktige skrivemåter mot opptaket i stedet for å behandle en terminologiliste som ord taleren nødvendigvis sa.\n\nProdusenten dokumenterer transkripsjonsformatene JSON, ren tekst, SRT, VTT og verbose JSON. Tidsstempler for ord og segmenter krever verbose JSON; enten én eller begge detaljgrader kan forespørres. API-referansen påpeker at segmenttidsstempler ikke tilfører ekstra latenstid, mens ordtidsstempler krever ytterligere behandling. Utdataene støtter teksting og lokalisering av avsnitt under redigering; merking med talerdiarisering tilhører en annen spesialisert modell.\n\nWhisper 1 støtter ikke strømming av filtranskripsjon. Referansen dokumenterer også en samplingtemperatur mellom null og én; ved null kan modellen øke temperaturen automatisk når dekodingstersklene krever det. Dette beskriver produsentens behandlingskontroller, ikke et løfte om at hvert opptak gir en identisk eller helt nøyaktig transkripsjon.\n\nDefiner sluttresultatet: en transkripsjon for søk, en undertekstfil eller tekst med ord-/segmenttiming. Oppbevar originalopptaket, delrekkefølgen og relevante tidsreferanser fra kilden sammen med resultatet. Et senere tekstredigeringssteg kan rette en feilstaving eller lage et sammendrag, men sammenlign endringene med lyden så talerens mening bevares. Den gjenkjente teksten blir grunnlag for neste oppgave, ikke et generert svar på det muntlige spørsmålet.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "379e93a011b7c74ea84917bdb2f191bf9a87cd92855cac4e64418ced1ed9160f",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nb",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">O</span><h2 id=\"sheet-title\">OpenAI: Whisper 1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Lukk\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/whisper-1</code><button type=\"button\" id=\"copy-id\">Kopier ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Seksjoner i modellkortet\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Inndata &amp; metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Eksempler</button><button type=\"button\" data-card-jump=\"results\">Resultater</button><button type=\"button\" data-card-jump=\"aliases\">Aliaser</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><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|openai%2Fwhisper-1\">Gjenkjenning</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\">Start</h3><p class=\"mdesc-full\">Whisper 1 transkriberer en ferdig lydfil til tekst, med flerspråklig gjenkjenning og tidsstempler for ord eller segmenter. Produsenten støtter undertekstformater og en separat arbeidsflyt for oversettelse til engelsk; transkripsjonsresultatet bevarer opptakets språk.</p><dl class=\"card-io\" data-card-io><div><dt>Godkjente inndata</dt><dd>Lyd</dd></div><div><dt>Resultater</dt><dd>transcription</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.</p><div class=\"mabout\" id=\"m-about\"><p>Whisper 1 er OpenAIs generelle API-modell for talegjenkjenning, dokumentert som drevet av den åpne kildekodemodellen Whisper V2. Den tar imot en lydfil og returnerer tekst. Produsenten beskriver flerspråklig gjenkjenning, språkidentifikasjon og en separat oppgave for taleoversettelse. Transkripsjon bevarer talespråket; produsentens separate oversettelsesgrensesnitt returnerer engelsk tekst.</p><p>Et nyttig bruksområde er å forberede et intervju, et talenotat eller en innspilt samtale for senere søk og redigering. Oppgi det ferdige opptaket og inndataspråket når det er kjent. OpenAI dokumenterer 98 støttede språk og påpeker at gjenkjenningsnøyaktighet varierer med språk. Språkhintet for ett språk bruker en ISO 639-1-kode; nyere flerspråks- og nøkkelordfelt i andre transkripsjonsmodeller er separate kontroller.</p><p>Produsentens filtranskripsjon tar imot filer på opptil 25 MB i MP3-, MP4-, MPEG-, MPGA-, M4A-, WAV- eller WebM-format. Bruk et komprimert format til et større opptak, eller del det i deler innenfor grensen. Bevar setningsgrenser og rekkefølgen på delene slik at den sammensatte transkripsjonen fortsatt er knyttet til originalopptaket. En videokonteiner leverer lyden sin til denne oppgaven, ikke inndata for visuell beskrivelse.</p><p>En prompt kan oppgi navn, akronymer eller opptaksspesifikt ordforråd og kontekst fra et tidligere segment. Whispers promptgrense er 224 tokener, og prompten bør samsvare med lydens språk. Produsenten sier at Whisper ikke følger instruksjoner som en generell tekstmodell. Bruk prompten som relevant transkripsjonskontekst, og kontroller deretter viktige skrivemåter mot opptaket i stedet for å behandle en terminologiliste som ord taleren nødvendigvis sa.</p><p>Produsenten dokumenterer transkripsjonsformatene JSON, ren tekst, SRT, VTT og verbose JSON. Tidsstempler for ord og segmenter krever verbose JSON; enten én eller begge detaljgrader kan forespørres. API-referansen påpeker at segmenttidsstempler ikke tilfører ekstra latenstid, mens ordtidsstempler krever ytterligere behandling. Utdataene støtter teksting og lokalisering av avsnitt under redigering; merking med talerdiarisering tilhører en annen spesialisert modell.</p><p>Whisper 1 støtter ikke strømming av filtranskripsjon. Referansen dokumenterer også en samplingtemperatur mellom null og én; ved null kan modellen øke temperaturen automatisk når dekodingstersklene krever det. Dette beskriver produsentens behandlingskontroller, ikke et løfte om at hvert opptak gir en identisk eller helt nøyaktig transkripsjon.</p><p>Definer sluttresultatet: en transkripsjon for søk, en undertekstfil eller tekst med ord-/segmenttiming. Oppbevar originalopptaket, delrekkefølgen og relevante tidsreferanser fra kilden sammen med resultatet. Et senere tekstredigeringssteg kan rette en feilstaving eller lage et sammendrag, men sammenlign endringene med lyden så talerens mening bevares. Den gjenkjente teksten blir grunnlag for neste oppgave, ikke et generert svar på det muntlige spørsmålet.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tilgjengelig i Ailoot · inndata &amp; metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Talegjenkjenning</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Inndatatyper</dt><dd><code>audio</code></dd></div><div><dt>Utdatatyper</dt><dd><code>transcription</code></dd></div><div><dt>Utdataformat</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Felt</th><th>Type</th><th>Krav</th><th>Verdier &amp; grenser</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>openai/whisper-1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">file</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>file</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>Innholdstype: multipart/form-data</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>json</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">input_audio.data</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>base64_string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>Gjelder når: JSON-inndata for WhisperOR</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">input_audio.format</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>wav, mp3, flac, ogg, m4a, webm</div><div>Gjelder når: JSON-inndata for WhisperOR</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinasjoner av inngående materialer</summary><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b> · Påkrevd: model, file</p></details><details class=\"note-s\" data-method-contract><summary>Metodeparametere og livssyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Avtale</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>contours</code></th><td data-cell-label=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>{&quot;content_types&quot;:[&quot;application/json&quot;,&quot;multipart/form-data&quot;],&quot;required_json&quot;:[&quot;model&quot;,&quot;input_audio.data&quot;,&quot;input_audio.format&quot;],&quot;required_multipart&quot;:[&quot;model&quot;,&quot;file&quot;],&quot;file_formats&quot;:[&quot;wav&quot;,&quot;mp3&quot;,&quot;flac&quot;,&quot;ogg&quot;,&quot;m4a&quot;,&quot;webm&quot;],&quot;response_format_optional&quot;:[&quot;json&quot;]}, {&quot;content_types&quot;:[&quot;multipart/form-data&quot;],&quot;required&quot;:[&quot;model&quot;,&quot;file&quot;],&quot;file_formats&quot;:[&quot;mp3&quot;],&quot;response_format_option&quot;:false}</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>max_bytes</code></th><td data-cell-label=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>26214400</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>audio</td></tr></tbody></table></div><p>Livssyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · faktisk returnert task_id eller oppføring i mediebiblioteket</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Bruk et faktisk opptak og samsvarende format.</p><p class=\"note-s\">Bevar hele transkripsjonen, alle segmenter, taler-ID-er og tidsangivelser.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Priser</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.</p><dl data-price-conditions><dt>Hurtigmodus</dt><dd>Ikke angitt <span class=\"note-s\">Når hurtigmodus er valgt</span></dd><dt>Flex-modus</dt><dd>Ikke angitt <span class=\"note-s\">Når flex-modus er valgt</span></dd><dt>Maksimal resonneringsinnsats</dt><dd>Ikke angitt <span class=\"note-s\">Når justeringen «default» brukes for maksimal resonneringsinnsats</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-satser</h4><h4>Priser etter konfigurasjon</h4><p class=\"note-s\">Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasjon</th><th>Prisplan</th><th>Faktureringsenhet</th><th>Kostnad</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasjon\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasjon</span>Grunnpriser for tokener</th><td data-cell-label=\"Prisplan\"><span class=\"card-cell-label\">Prisplan</span>Grunnsats</td><td data-cell-label=\"Faktureringsenhet\"><span class=\"card-cell-label\">Faktureringsenhet</span>—</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Inndata · Inngående tokener</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Utdata · Utgående tokener</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Lesing fra hurtigbuffer</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Skriving til hurtigbuffer</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div><div><span>Inndata · Skriving til hurtigbuffer, 1 time</span> <b>—</b> <span class=\"price-unit\">/ 1K tokener</span></div></td></tr><tr><th data-cell-label=\"Konfigurasjon\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasjon</span>lydsekund i inndata</th><td data-cell-label=\"Prisplan\"><span class=\"card-cell-label\">Prisplan</span>—</td><td data-cell-label=\"Faktureringsenhet\"><span class=\"card-cell-label\">Faktureringsenhet</span>per sekund inndatalyd</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Inndata · lydsekund i inndata</span> <b>$0.0002</b> <span class=\"price-unit\">per sekund inndatalyd</span></div></td></tr></tbody></table></div></div><div data-declared-reference-pricing><h4>Detaljer om referansetariffen</h4><p class=\"note-s\">Referanseprisplaner på modellnivå endrer ikke metodevalg, prisoverslag eller kostnader. Aktive kostnader bruker satsene til den valgte Ailoot-metoden.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>OpenAI: Whisper 1</summary><h4>Priser etter konfigurasjon</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasjon</th><th>Faktureringsvilkår</th><th>Kostnad</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasjon\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasjon</span>OpenAI: Whisper 1 · Standardkonfigurasjon</th><td data-cell-label=\"Faktureringsvilkår\"><span class=\"card-cell-label\">Faktureringsvilkår</span>Standardkonfigurasjon</td><td data-cell-label=\"Kostnad\"><span class=\"card-cell-label\">Kostnad</span><div><span>Inndata · Lydsekunder i inndata</span> <b>0,0002 USD</b> <span class=\"price-unit\">per sekund inndatalyd</span></div></td></tr></tbody></table></div></details></div><p class=\"note-s\">Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. <a href=\"/docs/nb/billing/reserve/\">Slik fungerer reservasjon og oppgjør →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Eksempelforespørsler</h3><h4>Ailoot Ultra · Talegjenkjenning</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodevarianter\"><button class=\"cg-tab\" id=\"model-code-2183-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2183-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopier kode\"><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-2183-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2183-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 MP3 recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport os\nfrom pathlib import Path\np=Path(os.environ[&quot;AILOOT_AUDIO_FILE&quot;])\nif not p.is_file() or p.suffix.lower()!=&quot;.mp3&quot;:raise SystemExit(&quot;Choose an existing MP3 recording&quot;)\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; \\\n  --form-string model=openai/whisper-1 -F &quot;file=@$AILOOT_AUDIO_FILE&quot; \\\n  -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;result.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Motta og lagre resultater</h3><h4>Ailoot Ultra · Talegjenkjenning</h4><p class=\"note-s\">json</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Andre innholdslesinger</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodevarianter\"><button class=\"cg-tab\" id=\"model-code-2184-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2184-panel-0\" aria-selected=\"true\" tabindex=\"0\">Mediebibliotek</button><button class=\"cg-tab\" id=\"model-code-2184-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2184-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Oppgavestatus</button><button class=\"cg-tab\" id=\"model-code-2184-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2184-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Ressursdetaljer</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopier kode\"><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-2184-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2184-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-assets.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2184-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2184-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_MEDIA_TASK_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/tasks/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-task.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-task.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2184-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2184-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_ASSET_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/assets/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-asset.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-asset.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Behold alle ferdige resultater</h5><p class=\"note-s\">Behold alle fullstendige returnerte svar, filer og innholdsdeler.</p><p class=\"note-s\">Behold hele JSON-svaret, ikke bare teksten; bevar alle tilgjengelige segmenter, talere og tidsstempler og faktiske oppgave- og ressursidentiteter.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Hvis det opprinnelige svaret må kontrolleres</h5><p class=\"note-s\">Bevar opprinnelig operation_id/X-Client-Request-ID for avstemming uten ny innsending; det finnes ingen egen rute for å spørre etter lydstatus.</p></div><details class=\"card-about\" data-output-fields><summary>Svarfelter</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Felt</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">text</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">segments[]</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">task_id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">asset_url</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Feil og neste trinn</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Vilkår</th><th>Neste trinn</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Ugyldige påkrevde felter, materialrepresentasjon eller parameterverdi</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Korriger de angitte feltene før en ny opprettelsesforespørsel.</td></tr><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span><code>server_error</code></th><td data-cell-label=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Det returnerte svaret angir at operasjonen eller resultatet må kontrolleres</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Bevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliaser</h3><h4>Modellaliaser</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=openai%2Fwhisper-1&amp;route=Ultra&amp;caller=openai%2Fwhisper-1&amp;fmt=transcriptions\"><code>openai/whisper-1</code></a></span></p><h4>Aliaser for metodestier</h4><p class=\"note-s\">Bruk metodestiene som vises ovenfor.</p><h4>Tilknyttede anroper-ID-er</h4><p class=\"note-s\"><a href=\"#m=openai%2Fwhisper-1&amp;route=Ultra&amp;caller=openai%2Fwhisper-1&amp;fmt=transcriptions\"><code>openai/whisper-1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/whisper-1",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "openai/whisper-1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fwhisper-1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain complete JSON, not only text; preserve every available segment/speaker/timestamp and actual task/asset identity.",
            "errors": [
              {
                "code": null,
                "condition": "Ugyldige påkrevde felter, materialrepresentasjon eller parameterverdi",
                "http_status": 400,
                "recovery": "Korriger de angitte feltene før en ny opprettelsesforespørsel.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Det returnerte svaret angir at operasjonen eller resultatet må kontrolleres",
                "http_status": null,
                "recovery": "Bevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bevar opprinnelig operation_id/X-Client-Request-ID for avstemming uten ny innsending; det finnes ingen egen rute for å spørre etter lydstatus."
            },
            "limits": {
              "decoded_audio_max_bytes": 26214400
            },
            "material_combinations": [
              {
                "content_types": [
                  "application/json",
                  "multipart/form-data"
                ],
                "file_formats": [
                  "wav",
                  "mp3",
                  "flac",
                  "ogg",
                  "m4a",
                  "webm"
                ],
                "required_json": [
                  "model",
                  "input_audio.data",
                  "input_audio.format"
                ],
                "required_multipart": [
                  "model",
                  "file"
                ],
                "response_format_optional": [
                  "json"
                ]
              },
              {
                "content_types": [
                  "multipart/form-data"
                ],
                "file_formats": [
                  "mp3"
                ],
                "required": [
                  "model",
                  "file"
                ],
                "response_format_option": false
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "speech_to_text"
            ],
            "outputs": {
              "all_results": "Behold hele JSON-svaret, ikke bare teksten; bevar alle tilgjengelige segmenter, talere og tidsstempler og faktiske oppgave- og ressursidentiteter.",
              "family": "transcription",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "asset_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "openai/whisper-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "content_type": "multipart/form-data",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "file",
                "required": true,
                "type": "file"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_audio.data",
                "required": true,
                "type": "base64_string",
                "when": "JSON-inndata for WhisperOR"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "wav",
                  "mp3",
                  "flac",
                  "ogg",
                  "m4a",
                  "webm"
                ],
                "enum_known": true,
                "name": "input_audio.format",
                "required": true,
                "type": "string",
                "when": "JSON-inndata for WhisperOR"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "unlistedtranscriptionoptions",
              "formatlabelthatdiffersfromactualbytes"
            ]
          },
          "hints": [
            "Bruk et faktisk opptak og samsvarende format.",
            "Bevar hele transkripsjonen, alle segmenter, taler-ID-er og tidsangivelser."
          ],
          "input": {
            "contours": [
              {
                "content_types": [
                  "application/json",
                  "multipart/form-data"
                ],
                "file_formats": [
                  "wav",
                  "mp3",
                  "flac",
                  "ogg",
                  "m4a",
                  "webm"
                ],
                "required_json": [
                  "model",
                  "input_audio.data",
                  "input_audio.format"
                ],
                "required_multipart": [
                  "model",
                  "file"
                ],
                "response_format_optional": [
                  "json"
                ]
              },
              {
                "content_types": [
                  "multipart/form-data"
                ],
                "file_formats": [
                  "mp3"
                ],
                "required": [
                  "model",
                  "file"
                ],
                "response_format_option": false
              }
            ],
            "material_types": [
              "audio"
            ],
            "max_bytes": 26214400
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "faktisk returnert task_id eller oppføring i mediebiblioteket",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "method_aliases": [],
          "operation_modes": [
            "speech_to_text"
          ],
          "output": {
            "family": "transcription",
            "format": "json",
            "http_success": 200,
            "owned_result_fields_302": [
              "task_id",
              "asset_url"
            ],
            "result": "owned complete JSON transcript"
          }
        },
        "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.0002",
                "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.0002",
                "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"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "9f485f9d704ef2cd14f1",
            "label": "OpenAI: Whisper 1",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Standardkonfigurasjon"
                },
                "label": "OpenAI: Whisper 1 · Standardkonfigurasjon",
                "units": [
                  {
                    "amount": "0.0002",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "d4e53ea51572a9d8f9fcc8e4",
                    "label": "Input audio seconds",
                    "public_unit_label": "per input audio second",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_audio_second"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual MP3 recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport os\nfrom pathlib import Path\np=Path(os.environ[\"AILOOT_AUDIO_FILE\"])\nif not p.is_file() or p.suffix.lower()!=\".mp3\":raise SystemExit(\"Choose an existing MP3 recording\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" \\\n  --form-string model=openai/whisper-1 -F \"file=@$AILOOT_AUDIO_FILE\" \\\n  -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text())))\nPY_RESULT\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Use actual recording and matching format.",
          "Preserve full transcript, segments, speaker IDs and timing."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Распознавание речи",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "transcription"
        ],
        "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.0002
          }
        },
        "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.0002",
                "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.0002",
                "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": "openai/whisper-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0002",
            "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.0002",
            "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": "openai/whisper-1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "c8a0c625781316ccf165ba575591238adcaf5e9cbffcf8c550aed6b3d853dd13",
    "input_html_sha256": "d3ad7739d5cb2653e665f5c4bca7653b697aeff7239706c4fd7268c0454e08f8",
    "private_audit_sha256": "5a3fd0dc0609748d210a9ba734b9be476feaac7aebfccb9d6e6dbd06e438e7f6",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nb/openai-whisper-1/",
    "description": "Whisper 1 transkriberer en ferdig lydfil til tekst, med flerspråklig gjenkjenning og tidsstempler for ord eller segmenter. Produsenten støtter undertekstformater og en separat arbeidsflyt for oversettelse til engelsk; transkripsjonsresultatet bevarer opptakets språk.",
    "locale": "nb",
    "md_url": "https://ailoot.ai/models/nb/openai-whisper-1/index.md",
    "title": "OpenAI: Whisper 1 — Ailoot",
    "url": "https://ailoot.ai/models/nb/openai-whisper-1/"
  },
  "rawModel": {
    "about": "Whisper 1 er OpenAIs generelle API-modell for talegjenkjenning, dokumentert som drevet av den åpne kildekodemodellen Whisper V2. Den tar imot en lydfil og returnerer tekst. Produsenten beskriver flerspråklig gjenkjenning, språkidentifikasjon og en separat oppgave for taleoversettelse. Transkripsjon bevarer talespråket; produsentens separate oversettelsesgrensesnitt returnerer engelsk tekst.\n\nEt nyttig bruksområde er å forberede et intervju, et talenotat eller en innspilt samtale for senere søk og redigering. Oppgi det ferdige opptaket og inndataspråket når det er kjent. OpenAI dokumenterer 98 støttede språk og påpeker at gjenkjenningsnøyaktighet varierer med språk. Språkhintet for ett språk bruker en ISO 639-1-kode; nyere flerspråks- og nøkkelordfelt i andre transkripsjonsmodeller er separate kontroller.\n\nProdusentens filtranskripsjon tar imot filer på opptil 25 MB i MP3-, MP4-, MPEG-, MPGA-, M4A-, WAV- eller WebM-format. Bruk et komprimert format til et større opptak, eller del det i deler innenfor grensen. Bevar setningsgrenser og rekkefølgen på delene slik at den sammensatte transkripsjonen fortsatt er knyttet til originalopptaket. En videokonteiner leverer lyden sin til denne oppgaven, ikke inndata for visuell beskrivelse.\n\nEn prompt kan oppgi navn, akronymer eller opptaksspesifikt ordforråd og kontekst fra et tidligere segment. Whispers promptgrense er 224 tokener, og prompten bør samsvare med lydens språk. Produsenten sier at Whisper ikke følger instruksjoner som en generell tekstmodell. Bruk prompten som relevant transkripsjonskontekst, og kontroller deretter viktige skrivemåter mot opptaket i stedet for å behandle en terminologiliste som ord taleren nødvendigvis sa.\n\nProdusenten dokumenterer transkripsjonsformatene JSON, ren tekst, SRT, VTT og verbose JSON. Tidsstempler for ord og segmenter krever verbose JSON; enten én eller begge detaljgrader kan forespørres. API-referansen påpeker at segmenttidsstempler ikke tilfører ekstra latenstid, mens ordtidsstempler krever ytterligere behandling. Utdataene støtter teksting og lokalisering av avsnitt under redigering; merking med talerdiarisering tilhører en annen spesialisert modell.\n\nWhisper 1 støtter ikke strømming av filtranskripsjon. Referansen dokumenterer også en samplingtemperatur mellom null og én; ved null kan modellen øke temperaturen automatisk når dekodingstersklene krever det. Dette beskriver produsentens behandlingskontroller, ikke et løfte om at hvert opptak gir en identisk eller helt nøyaktig transkripsjon.\n\nDefiner sluttresultatet: en transkripsjon for søk, en undertekstfil eller tekst med ord-/segmenttiming. Oppbevar originalopptaket, delrekkefølgen og relevante tidsreferanser fra kilden sammen med resultatet. Et senere tekstredigeringssteg kan rette en feilstaving eller lage et sammendrag, men sammenlign endringene med lyden så talerens mening bevares. Den gjenkjente teksten blir grunnlag for neste oppgave, ikke et generert svar på det muntlige spørsmålet.",
    "alias_of": null,
    "aliases": [],
    "author": "OpenAI",
    "available": null,
    "canonical_model": "openai/whisper-1",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0002",
            "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.0002",
            "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": "Fullstendige priser for konfigurasjonen finnes i detaljene."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "transcriptions"
    ],
    "id": "openai/whisper-1",
    "input": [
      "audio"
    ],
    "kind": "transcription",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain complete JSON, not only text; preserve every available segment/speaker/timestamp and actual task/asset identity.",
            "errors": [
              {
                "code": null,
                "condition": "Ugyldige påkrevde felter, materialrepresentasjon eller parameterverdi",
                "http_status": 400,
                "recovery": "Korriger de angitte feltene før en ny opprettelsesforespørsel.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Det returnerte svaret angir at operasjonen eller resultatet må kontrolleres",
                "http_status": null,
                "recovery": "Bevar den opprinnelige returnerte operasjons-/oppgave-ID-en, forespørselshodene og svaret; fortsett å lese den opprinnelige operasjonen på de støttede måtene. Ikke send opprettelsesforespørselen på nytt.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bevar opprinnelig operation_id/X-Client-Request-ID for avstemming uten ny innsending; det finnes ingen egen rute for å spørre etter lydstatus."
            },
            "limits": {
              "decoded_audio_max_bytes": 26214400
            },
            "material_combinations": [
              {
                "content_types": [
                  "application/json",
                  "multipart/form-data"
                ],
                "file_formats": [
                  "wav",
                  "mp3",
                  "flac",
                  "ogg",
                  "m4a",
                  "webm"
                ],
                "required_json": [
                  "model",
                  "input_audio.data",
                  "input_audio.format"
                ],
                "required_multipart": [
                  "model",
                  "file"
                ],
                "response_format_optional": [
                  "json"
                ]
              },
              {
                "content_types": [
                  "multipart/form-data"
                ],
                "file_formats": [
                  "mp3"
                ],
                "required": [
                  "model",
                  "file"
                ],
                "response_format_option": false
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "speech_to_text"
            ],
            "outputs": {
              "all_results": "Behold hele JSON-svaret, ikke bare teksten; bevar alle tilgjengelige segmenter, talere og tidsstempler og faktiske oppgave- og ressursidentiteter.",
              "family": "transcription",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "asset_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "openai/whisper-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "content_type": "multipart/form-data",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "file",
                "required": true,
                "type": "file"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_audio.data",
                "required": true,
                "type": "base64_string",
                "when": "JSON-inndata for WhisperOR"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "wav",
                  "mp3",
                  "flac",
                  "ogg",
                  "m4a",
                  "webm"
                ],
                "enum_known": true,
                "name": "input_audio.format",
                "required": true,
                "type": "string",
                "when": "JSON-inndata for WhisperOR"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "unlistedtranscriptionoptions",
              "formatlabelthatdiffersfromactualbytes"
            ]
          },
          "hints": [
            "Bruk et faktisk opptak og samsvarende format.",
            "Bevar hele transkripsjonen, alle segmenter, taler-ID-er og tidsangivelser."
          ],
          "input": {
            "contours": [
              {
                "content_types": [
                  "application/json",
                  "multipart/form-data"
                ],
                "file_formats": [
                  "wav",
                  "mp3",
                  "flac",
                  "ogg",
                  "m4a",
                  "webm"
                ],
                "required_json": [
                  "model",
                  "input_audio.data",
                  "input_audio.format"
                ],
                "required_multipart": [
                  "model",
                  "file"
                ],
                "response_format_optional": [
                  "json"
                ]
              },
              {
                "content_types": [
                  "multipart/form-data"
                ],
                "file_formats": [
                  "mp3"
                ],
                "required": [
                  "model",
                  "file"
                ],
                "response_format_option": false
              }
            ],
            "material_types": [
              "audio"
            ],
            "max_bytes": 26214400
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "faktisk returnert task_id eller oppføring i mediebiblioteket",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "method_aliases": [],
          "operation_modes": [
            "speech_to_text"
          ],
          "output": {
            "family": "transcription",
            "format": "json",
            "http_success": 200,
            "owned_result_fields_302": [
              "task_id",
              "asset_url"
            ],
            "result": "owned complete JSON transcript"
          }
        },
        "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.0002",
                "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.0002",
                "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"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "9f485f9d704ef2cd14f1",
            "label": "OpenAI: Whisper 1",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Standardkonfigurasjon"
                },
                "label": "OpenAI: Whisper 1 · Standardkonfigurasjon",
                "units": [
                  {
                    "amount": "0.0002",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "d4e53ea51572a9d8f9fcc8e4",
                    "label": "Input audio seconds",
                    "public_unit_label": "per input audio second",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_audio_second"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual MP3 recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport os\nfrom pathlib import Path\np=Path(os.environ[\"AILOOT_AUDIO_FILE\"])\nif not p.is_file() or p.suffix.lower()!=\".mp3\":raise SystemExit(\"Choose an existing MP3 recording\")\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" \\\n  --form-string model=openai/whisper-1 -F \"file=@$AILOOT_AUDIO_FILE\" \\\n  -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text())))\nPY_RESULT\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Use actual recording and matching format.",
          "Preserve full transcript, segments, speaker IDs and timing."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Распознавание речи",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "transcription"
        ],
        "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.0002
          }
        },
        "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.0002",
                "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.0002",
                "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": "openai/whisper-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0002",
            "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.0002",
            "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": "openai/whisper-1",
        "request_model_id": "openai/whisper-1",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: Whisper 1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_declared_unit",
            "conditions": {},
            "key": "prompt",
            "label": "prompt",
            "quantity": "1",
            "rate_role": "typed_active_maker_rate",
            "side": "in",
            "unit": "input_audio_second"
          }
        ]
      }
    ],
    "public_id": "openai/whisper-1",
    "short": "Whisper 1 transkriberer en ferdig lydfil til tekst, med flerspråklig gjenkjenning og tidsstempler for ord eller segmenter. Produsenten støtter undertekstformater og en separat arbeidsflyt for oversettelse til engelsk; transkripsjonsresultatet bevarer opptakets språk."
  },
  "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": "Whisper 1 transkriberer en ferdig lydfil til tekst, med flerspråklig gjenkjenning og tidsstempler for ord eller segmenter. Produsenten støtter undertekstformater og en separat arbeidsflyt for oversettelse til engelsk; transkripsjonsresultatet bevarer opptakets språk.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "d18e5b5f14811108591b9f454bf196745e6aac9fdaf5d0b30f450d176b039b4b",
    "renderer_sha256": "c8cb5a92c10b47373d294dee7465d66796cd4710c6626fd81459dc0625fc6d26"
  },
  "sourceRevision": "d08bd304ab8a59c18fbd798092439abd8fec40bc5898aadc51a69999a008854d"
}
