{
  "aboutHtml": "<p>Qwen/Qwen3-8B kuuluu Qwen3:n tiheiden mallien perheeseen. <a href=\"https://huggingface.co/Qwen/Qwen3-8B\">Virallinen mallikortti</a> kuvaa päättelyä käyttävän ja sitä käyttämättömän toiminnan sekä monikielisten ohjeiden noudattamisen. Malli sopii ehdokkaaksi monikieliseen tekniseen keskusteluun, kuten ajoitusongelman kahden lähestymistavan vertailuun ja algoritmiehdotukseen oletuksineen.</p><p>Ailoot-merkintä hyväksyy tekstiä ja kuvia ja palauttaa tekstiä /v1/chat/completions-päätepisteessä. Ilmoitetut parametrit ovat model, messages ja stream. Hyväksytty sopimus ei tarjoa päättelytilan hallintaa, joten alkuperäismallin enable_thinking-esimerkkejä ei tule kopioida tälle reitille oletettuna API-kenttänä. Valitse malli sen identiteetin ja tuetun keskustelusyötteen perusteella; tilan valinta ja alkuperäismallin kontekstilaajennukset tarvitsevat oman reittitukensa.</p>",
  "aboutText": "Qwen/Qwen3-8B kuuluu Qwen3:n tiheiden mallien perheeseen. Virallinen mallikortti kuvaa päättelyä käyttävän ja sitä käyttämättömän toiminnan sekä monikielisten ohjeiden noudattamisen. Malli sopii ehdokkaaksi monikieliseen tekniseen keskusteluun, kuten ajoitusongelman kahden lähestymistavan vertailuun ja algoritmiehdotukseen oletuksineen. Ailoot-merkintä hyväksyy tekstiä ja kuvia ja palauttaa tekstiä /v1/chat/completions-päätepisteessä. Ilmoitetut parametrit ovat model, messages ja stream. Hyväksytty sopimus ei tarjoa päättelytilan hallintaa, joten alkuperäismallin enable_thinking-esimerkkejä ei tule kopioida tälle reitille oletettuna API-kenttänä. Valitse malli sen identiteetin ja tuetun keskustelusyötteen perusteella; tilan valinta ja alkuperäismallin kontekstilaajennukset tarvitsevat oman reittitukensa.",
  "editorialOverlay": {
    "copy_fields": {
      "about_html": "<p>Qwen/Qwen3-8B kuuluu Qwen3:n tiheiden mallien perheeseen. <a href=\"https://huggingface.co/Qwen/Qwen3-8B\">Virallinen mallikortti</a> kuvaa päättelyä käyttävän ja sitä käyttämättömän toiminnan sekä monikielisten ohjeiden noudattamisen. Malli sopii ehdokkaaksi monikieliseen tekniseen keskusteluun, kuten ajoitusongelman kahden lähestymistavan vertailuun ja algoritmiehdotukseen oletuksineen.</p><p>Ailoot-merkintä hyväksyy tekstiä ja kuvia ja palauttaa tekstiä /v1/chat/completions-päätepisteessä. Ilmoitetut parametrit ovat model, messages ja stream. Hyväksytty sopimus ei tarjoa päättelytilan hallintaa, joten alkuperäismallin enable_thinking-esimerkkejä ei tule kopioida tälle reitille oletettuna API-kenttänä. Valitse malli sen identiteetin ja tuetun keskustelusyötteen perusteella; tilan valinta ja alkuperäismallin kontekstilaajennukset tarvitsevat oman reittitukensa.</p>",
      "short_text": "Qwen3:n 8B-keskustelumalli tiiviillä teksti- ja kuvakeskustelusopimuksella."
    },
    "copy_sha256": "28e561d05d3e7140fc2f8af29efddaca2ece7dbf7fe4ccc7cd54715b29b4a9b3",
    "copy_source": {
      "locale": "fi",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "Qwen/Qwen3-8B",
      "source_facts_sha256": "573e5a523e52d2b2ab85bc087a0d286360e7e054b94ff54260d1e599614c5cdd",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "74c91a7c6daf399a69a3931498de4d1c270f0f466444cf6c00a1356e81694a5b",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fi",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Qwen/Qwen3-8B</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sulje\">×</button></div><div class=\"idline\"><span>Muu /</span><code>Qwen/Qwen3-8B</code><button type=\"button\" id=\"copy-id\">Kopioi ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Mallikortin osiot\"><button type=\"button\" data-card-jump=\"overview\">Aloitus</button><button type=\"button\" data-card-jump=\"methods\">Syötteet &amp; menetelmät</button><button type=\"button\" data-card-jump=\"pricing\">Hinnoittelu</button><button type=\"button\" data-card-jump=\"examples\">Esimerkit</button><button type=\"button\" data-card-jump=\"results\">Tulokset</button><button type=\"button\" data-card-jump=\"aliases\">Aliakset</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-menetelmät\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|Qwen%2FQwen3-8B\">Chat</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\">Aloitus</h3><p class=\"mdesc-full\">Qwen3:n 8B-keskustelumalli tiiviillä teksti- ja kuvakeskustelusopimuksella.</p><dl class=\"card-io\" data-card-io><div><dt>Hyväksytyt syötteet</dt><dd>Teksti · Kuvat</dd></div><div><dt>Tulokset</dt><dd>Teksti</dd></div></dl><details class=\"card-about\"><summary>Tietoa mallista</summary><p class=\"note-s\" data-model-method-boundary>Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.</p><div class=\"mabout\" id=\"m-about\"><p>Qwen/Qwen3-8B kuuluu Qwen3:n tiheiden mallien perheeseen. <a href=\"https://huggingface.co/Qwen/Qwen3-8B\">Virallinen mallikortti</a> kuvaa päättelyä käyttävän ja sitä käyttämättömän toiminnan sekä monikielisten ohjeiden noudattamisen. Malli sopii ehdokkaaksi monikieliseen tekniseen keskusteluun, kuten ajoitusongelman kahden lähestymistavan vertailuun ja algoritmiehdotukseen oletuksineen.</p><p>Ailoot-merkintä hyväksyy tekstiä ja kuvia ja palauttaa tekstiä /v1/chat/completions-päätepisteessä. Ilmoitetut parametrit ovat model, messages ja stream. Hyväksytty sopimus ei tarjoa päättelytilan hallintaa, joten alkuperäismallin enable_thinking-esimerkkejä ei tule kopioida tälle reitille oletettuna API-kenttänä. Valitse malli sen identiteetin ja tuetun keskustelusyötteen perusteella; tilan valinta ja alkuperäismallin kontekstilaajennukset tarvitsevat oman reittitukensa.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Saatavilla Ailootissa · syötteet &amp; menetelmät</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · OpenAI Chat</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>Syötetyypit</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Tulostyypit</dt><dd><code>text</code></dd></div><div><dt>Tulosteen muoto</dt><dd>JSON or SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Kenttä</th><th>Tyyppi</th><th>Vaatimus</th><th>Arvot &amp; rajat</th><th>Oletus</th></tr></thead><tbody><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Qwen/Qwen3-8B</div><div>Ehdot: Käytä täsmälleen tätä Ailoot-reititysvalitsinta.</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>array</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Ehdot: </div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>boolean</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Ehdot: </div></td><td data-cell-label=\"Oletus\" data-default=\"known\"><span class=\"card-cell-label\">Oletus</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Syöteaineistojen yhdistelmät</summary><p class=\"note-s\"><b>text_input</b> · Pakollinen: messages</p><p class=\"note-s\"><b>image_with_text</b> · Pakollinen: messages with actual image content blocks</p></details><details class=\"note-s\" data-method-contract><summary>Menetelmän parametrit ja elinkaari</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametri</th><th>Sopimus</th></tr></thead><tbody><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>content_type</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>application/json</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>required</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>model, messages</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>optional</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>stream</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>material_types</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>text, image</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>conditions</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>Käytä täsmälleen tätä Ailoot-reititysvalitsinta., Tämä protokolla välittää kuvasisältöä, kun juuri valittu malli tukee kuvien tulkintaa. Protokollan hyväksyminen ei osoita kaikkien mallien tukevan kuvia.</td></tr></tbody></table></div><p>Menetelmien aliakset: <code>/chat/completions</code></p><p>Elinkaari: <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Hinnoittelu</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.</p><dl data-price-conditions><dt>Nopea tila</dt><dd>Vakiohinta <span class=\"note-s\">Kun nopea tila on valittu</span></dd><dt>Flex-tila</dt><dd>Vakiohinta <span class=\"note-s\">Kun flex-tila on valittu</span></dd><dt>Päättelyn enimmäisteho</dt><dd>Vakiohinta <span class=\"note-s\">Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä</span></dd><dt>Eksplisiittisen välimuistin hinnoittelu</dt><dd>Ei käytössä <span class=\"note-s\">Kun eksplisiittistä välimuistia pyydetään</span></dd><dt>Nollahinnat pelkälle tekstille</dt><dd>Välimuistiin, työkaluihin ja mediaan sovelletaan niiden erikseen lueteltuja hinnoitteluehtoja. <span class=\"note-s\">Pelkkää tekstiä sisältävälle syötteelle ja tulosteelle</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-hinnat</h4><h4>Hinnat asetusten mukaan</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Asetukset</th><th>Hinnasto</th><th>Veloitus</th></tr></thead><tbody><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Tokenien perushinnat</th><td data-cell-label=\"Hinnasto\"><span class=\"card-cell-label\">Hinnasto</span>Perushinta</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Syöte · Syötetokenit</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Tuloste · Tulostokenit</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistin luku</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistiin kirjoitus</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistiin kirjoitus, 1 tunti</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. <a href=\"/docs/fi/billing/reserve/\">Varauksen ja lopullisen veloituksen toiminta →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esimerkkipyynnöt</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Koodivaihtoehdot\"><button class=\"cg-tab\" id=\"model-code-2825-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2825-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · luo vain kerran ja säilytä koko tulos</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopioi koodi\"><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-2825-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2825-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;Qwen/Qwen3-8B&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain how a rainbow forms.&quot;}]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Vastaanota ja tallenna tulokset</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">JSON or SSE</p><div class=\"card-result-process\" data-all-results><h5>Säilytä kaikki valmistuneet tulokset</h5><p class=\"note-s\">Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.</p><p class=\"note-s\">Säilytä jokainen sisältölohko, työkalukutsun tunniste, mahdollinen palautettu ajatteluallekirjoitus, kaikki SSE-muutokset ja täydelliset käyttötiedot. Ensimmäinen tekstikatkelma ei ole koko tulos.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jos alkuperäinen vastaus on tarkistettava</h5><p class=\"note-s\">Säilytä alkuperäinen X-Client-Request-ID, vastaus ja otsakkeet. Tuntematon tulos tai result_pending_check ei oikeuta toiseen luontipyyntöön.</p></div><details class=\"card-about\" data-output-fields><summary>Vastauksen kentät</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Kenttä</th><th>Tyyppi</th></tr></thead><tbody><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">choices[]</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>object</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Virheet ja seuraavat vaiheet</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Vastaus</th><th>Ehto</th><th>Seuraava vaihe</th></tr></thead><tbody><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Pakollinen kenttä, mallivalitsin, tyyppi tai syötteen esitysmuoto on virheellinen.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Tarkista palautetut validointitiedot ennen erillisen pyynnön valmistelua.</td></tr><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span><code></code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Alkuperäinen pyyntö tai tulos on tuntematon tai vaatii tarkistuksen.</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Säilytä alkuperäiset tunnisteet ja otsakkeet; lue vain tuettuja tila- tai kirjastotietueita. Älä lähetä luontipyyntöä uudelleen.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliakset</h3><h4>Mallin aliakset</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=Qwen%2FQwen3-8B&amp;route=Ultra&amp;caller=Qwen%2FQwen3-8B&amp;fmt=chat\"><code>Qwen/Qwen3-8B</code></a></span></p><h4>Menetelmäpolkujen aliakset</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>Liittyvät kutsujan ID:t</h4><p class=\"note-s\"><a href=\"#m=Qwen%2FQwen3-8B&amp;route=Ultra&amp;caller=Qwen%2FQwen3-8B&amp;fmt=chat\"><code>Qwen/Qwen3-8B</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "Qwen/Qwen3-8B",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "Qwen/Qwen3-8B",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|Qwen%2FQwen3-8B",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "accepted_material_guidance": {
              "content_type": "application/json",
              "example_scope": "The preserved text example is one valid request form, not the full protocol input set.",
              "image_condition": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model.",
              "material_types": [
                "text",
                "image"
              ],
              "text_file_material": "Actual UTF-8 text can be inserted in a text content part."
            },
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "errors": [
              {
                "condition": "Pakollinen kenttä, mallivalitsin, tyyppi tai syötteen esitysmuoto on virheellinen.",
                "http_status": 400,
                "recovery": "Tarkista palautetut validointitiedot ennen erillisen pyynnön valmistelua.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Alkuperäinen pyyntö tai tulos on tuntematon tai vaatii tarkistuksen.",
                "http_status": null,
                "recovery": "Säilytä alkuperäiset tunnisteet ja otsakkeet; lue vain tuettuja tila- tai kirjastotietueita. Älä lähetä luontipyyntöä uudelleen.",
                "type": null
              }
            ],
            "lifecycle": {
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "mode": "synchronous_or_streamed",
              "status": [],
              "unknown": "Säilytä alkuperäinen X-Client-Request-ID, vastaus ja otsakkeet. Tuntematon tulos tai result_pending_check ei oikeuta toiseen luontipyyntöön.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text"
                ],
                "mode": "text_input",
                "required": [
                  "messages"
                ]
              },
              {
                "condition": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model.",
                "materials": [
                  "text",
                  "image"
                ],
                "mode": "image_with_text",
                "required": [
                  "messages with actual image content blocks"
                ]
              }
            ],
            "model_capability_scope": {
              "all_models_vision_claim": false,
              "manufacturer_description_preserved": "Retain grounded accepted legacy vision descriptions; a plain text example is not a capability ceiling.",
              "model_vision": "conditional_on_exact_model_capability",
              "transport_materials": [
                "text",
                "image"
              ],
              "video_audio_inferred": false
            },
            "outputs": {
              "all_results": "Säilytä jokainen sisältölohko, työkalukutsun tunniste, mahdollinen palautettu ajatteluallekirjoitus, kaikki SSE-muutokset ja täydelliset käyttötiedot. Ensimmäinen tekstikatkelma ei ole koko tulos.",
              "every_actual_output": true,
              "family": "text",
              "fields": [
                {
                  "name": "choices[]",
                  "type": "object"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON or SSE"
            },
            "parameters": [
              {
                "conditions": "Käytä täsmälleen tätä Ailoot-reititysvalitsinta.",
                "default_known": false,
                "enum": [
                  "Qwen/Qwen3-8B"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "content": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "items": {
                            "oneOf": [
                              {
                                "properties": {
                                  "text": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "const": "text"
                                  }
                                },
                                "required": [
                                  "type",
                                  "text"
                                ],
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "image_url": {
                                    "properties": {
                                      "detail": {
                                        "type": "string"
                                      },
                                      "url": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "url"
                                    ],
                                    "type": "object"
                                  },
                                  "type": {
                                    "const": "image_url"
                                  }
                                },
                                "required": [
                                  "type",
                                  "image_url"
                                ],
                                "type": "object"
                              }
                            ]
                          },
                          "type": "array"
                        }
                      ]
                    },
                    "role": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "role",
                    "content"
                  ],
                  "type": "object"
                },
                "minItems": 1,
                "name": "messages",
                "required": true,
                "type": "array"
              },
              {
                "conditions": "",
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "messages": {
                  "items": {
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "image_url": {
                                      "properties": {
                                        "detail": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "url"
                                      ],
                                      "type": "object"
                                    },
                                    "type": {
                                      "const": "image_url"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "image_url"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "Qwen/Qwen3-8B"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "messages": [
                  {
                    "content": "Explain how a rainbow forms.",
                    "role": "user"
                  }
                ],
                "model": "Qwen/Qwen3-8B"
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "Käytä täsmälleen tätä Ailoot-reititysvalitsinta.",
              "Tämä protokolla välittää kuvasisältöä, kun juuri valittu malli tukee kuvien tulkintaa. Protokollan hyväksyminen ei osoita kaikkien mallien tukevan kuvia."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "stream"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/chat/completions"
            },
            "mode": "synchronous_or_streamed",
            "status": [],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "output": {
            "all_results": "Retain every content block, tool-call ID, thinking signature when returned, all SSE deltas and complete usage. A first text fragment is not the whole result.",
            "every_actual_output": true,
            "family": "text",
            "fields": [
              {
                "name": "choices[]",
                "type": "object"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"Qwen/Qwen3-8B\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain how a rainbow forms.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "http": "POST",
        "in": 0,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model."
        },
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 0,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Standard rate",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Standard rate",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Standard rate",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          },
          {
            "label": "Nollahinnat pelkälle tekstille",
            "value": "Välimuistiin, työkaluihin ja mediaan sovelletaan niiden erikseen lueteltuja hinnoitteluehtoja.",
            "when": "Pelkkää tekstiä sisältävälle syötteelle ja tulosteelle"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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"
              }
            ]
          }
        ],
        "request_model_id": "Qwen/Qwen3-8B",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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"
          }
        ]
      }
    }
  ],
  "model_id": "Qwen/Qwen3-8B",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4561b3708c3b1176a79980eec1bc762ce9526b6bbd4c6d60a3ffbe0213249c02",
    "input_html_sha256": "25f2bbda48f28a5992354d29b6a56d975963e22fe749da5be6878ada9243218a",
    "private_audit_sha256": "dfe9099caa7c69ce63db3e70aa038a70cca67bc8966e36b4648a971a4b6a5690",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fi/qwen-qwen3-8b/",
    "description": "Qwen3:n 8B-keskustelumalli tiiviillä teksti- ja kuvakeskustelusopimuksella.",
    "locale": "fi",
    "md_url": "https://ailoot.ai/models/fi/qwen-qwen3-8b/index.md",
    "title": "Qwen/Qwen3-8B — Ailoot",
    "url": "https://ailoot.ai/models/fi/qwen-qwen3-8b/"
  },
  "rawModel": {
    "about": "Valitse Qwen/Qwen3-8B /v1/chat/completions-pyynnön model-kentässä. Lähetä tekstitehtävään ei-tyhjä messages-taulukko, jonka jokaisessa alkiossa on role ja tekstimuotoinen content. Sama keskustelu voi sisältää kysymyksen, sen tarkoittaman lähdejakson ja kuvauksen tarvitsemastasi vastauksesta.\n\nNimeä analyysitehtävän kriteerit ennen vertailun pyytämistä. Kerro luonnosta varten yleisö, vaaditut faktat ja tuotoksen muoto. Jos päätös riippuu luvusta tai määritelmästä, liitä se tekstinä sen sijaan, että jättäisit puuttuvan lähtökohdan mallin täydennettäväksi. Pidä aiemmat olennaiset vastaukset keskustelussa tehtävää tarkentaessasi.\n\nstream-kenttä valitsee SSE-toimituksen; muuten tulos palautetaan JSON-muodossa. Kokoa jokainen palautettu sisältöosa ja säilytä usage-tiedot täydellisen vastauksen yhteydessä. Tarkista faktaväitteet annetusta aineistosta ja kohdenna seuraava ohje tarkasti siihen osaan, jota on muutettava.",
    "alias_of": null,
    "aliases": [],
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "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"
          }
        ],
        "summary": "Konfiguraation täydet hintatiedot lisätiedoissa."
      }
    ],
    "ctx": null,
    "formats": [
      "chat"
    ],
    "id": "Qwen/Qwen3-8B",
    "input": [
      "text",
      "image"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "accepted_material_guidance": {
              "content_type": "application/json",
              "example_scope": "The preserved text example is one valid request form, not the full protocol input set.",
              "image_condition": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model.",
              "material_types": [
                "text",
                "image"
              ],
              "text_file_material": "Actual UTF-8 text can be inserted in a text content part."
            },
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "errors": [
              {
                "condition": "Pakollinen kenttä, mallivalitsin, tyyppi tai syötteen esitysmuoto on virheellinen.",
                "http_status": 400,
                "recovery": "Tarkista palautetut validointitiedot ennen erillisen pyynnön valmistelua.",
                "type": "invalid_request_error"
              },
              {
                "condition": "Alkuperäinen pyyntö tai tulos on tuntematon tai vaatii tarkistuksen.",
                "http_status": null,
                "recovery": "Säilytä alkuperäiset tunnisteet ja otsakkeet; lue vain tuettuja tila- tai kirjastotietueita. Älä lähetä luontipyyntöä uudelleen.",
                "type": null
              }
            ],
            "lifecycle": {
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "mode": "synchronous_or_streamed",
              "status": [],
              "unknown": "Säilytä alkuperäinen X-Client-Request-ID, vastaus ja otsakkeet. Tuntematon tulos tai result_pending_check ei oikeuta toiseen luontipyyntöön.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text"
                ],
                "mode": "text_input",
                "required": [
                  "messages"
                ]
              },
              {
                "condition": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model.",
                "materials": [
                  "text",
                  "image"
                ],
                "mode": "image_with_text",
                "required": [
                  "messages with actual image content blocks"
                ]
              }
            ],
            "model_capability_scope": {
              "all_models_vision_claim": false,
              "manufacturer_description_preserved": "Retain grounded accepted legacy vision descriptions; a plain text example is not a capability ceiling.",
              "model_vision": "conditional_on_exact_model_capability",
              "transport_materials": [
                "text",
                "image"
              ],
              "video_audio_inferred": false
            },
            "outputs": {
              "all_results": "Säilytä jokainen sisältölohko, työkalukutsun tunniste, mahdollinen palautettu ajatteluallekirjoitus, kaikki SSE-muutokset ja täydelliset käyttötiedot. Ensimmäinen tekstikatkelma ei ole koko tulos.",
              "every_actual_output": true,
              "family": "text",
              "fields": [
                {
                  "name": "choices[]",
                  "type": "object"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON or SSE"
            },
            "parameters": [
              {
                "conditions": "Käytä täsmälleen tätä Ailoot-reititysvalitsinta.",
                "default_known": false,
                "enum": [
                  "Qwen/Qwen3-8B"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "content": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "items": {
                            "oneOf": [
                              {
                                "properties": {
                                  "text": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "const": "text"
                                  }
                                },
                                "required": [
                                  "type",
                                  "text"
                                ],
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "image_url": {
                                    "properties": {
                                      "detail": {
                                        "type": "string"
                                      },
                                      "url": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "url"
                                    ],
                                    "type": "object"
                                  },
                                  "type": {
                                    "const": "image_url"
                                  }
                                },
                                "required": [
                                  "type",
                                  "image_url"
                                ],
                                "type": "object"
                              }
                            ]
                          },
                          "type": "array"
                        }
                      ]
                    },
                    "role": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "role",
                    "content"
                  ],
                  "type": "object"
                },
                "minItems": 1,
                "name": "messages",
                "required": true,
                "type": "array"
              },
              {
                "conditions": "",
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "messages": {
                  "items": {
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "image_url": {
                                      "properties": {
                                        "detail": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "url"
                                      ],
                                      "type": "object"
                                    },
                                    "type": {
                                      "const": "image_url"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "image_url"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "Qwen/Qwen3-8B"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "messages": [
                  {
                    "content": "Explain how a rainbow forms.",
                    "role": "user"
                  }
                ],
                "model": "Qwen/Qwen3-8B"
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "Käytä täsmälleen tätä Ailoot-reititysvalitsinta.",
              "Tämä protokolla välittää kuvasisältöä, kun juuri valittu malli tukee kuvien tulkintaa. Protokollan hyväksyminen ei osoita kaikkien mallien tukevan kuvia."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "stream"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/chat/completions"
            },
            "mode": "synchronous_or_streamed",
            "status": [],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "output": {
            "all_results": "Retain every content block, tool-call ID, thinking signature when returned, all SSE deltas and complete usage. A first text fragment is not the whole result.",
            "every_actual_output": true,
            "family": "text",
            "fields": [
              {
                "name": "choices[]",
                "type": "object"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"Qwen/Qwen3-8B\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain how a rainbow forms.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "http": "POST",
        "in": 0,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model."
        },
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 0,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Standard rate",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Standard rate",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Standard rate",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          },
          {
            "label": "Nollahinnat pelkälle tekstille",
            "value": "Välimuistiin, työkaluihin ja mediaan sovelletaan niiden erikseen lueteltuja hinnoitteluehtoja.",
            "when": "Pelkkää tekstiä sisältävälle syötteelle ja tulosteelle"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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"
              }
            ]
          }
        ],
        "request_model_id": "Qwen/Qwen3-8B",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "Qwen/Qwen3-8B",
        "request_model_id": "Qwen/Qwen3-8B",
        "route_label": "Ultra"
      }
    ],
    "name": "Qwen/Qwen3-8B",
    "price": {
      "in": 0,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0,
      "sort_out": 0,
      "varies": false
    },
    "short": "Qwen/Qwen3-8B käsittelee tekstikeskusteluja Ailootin keskustelurajapinnan kautta. Yhdistä tehtävä, olennainen aineisto ja odotettu kirjallinen tulos yhteen rajattuun tehtävänantoon.",
    "title": "Qwen/Qwen3-8B"
  },
  "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": "Qwen3:n 8B-keskustelumalli tiiviillä teksti- ja kuvakeskustelusopimuksella.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "20068922230aa4e4a09a3afa0cf1208d7800a60ff489a80d704bc57bbdae228e",
    "renderer_sha256": "303a59603e2bc29ba8fda690e95fd32cec68de223d92e26054a88babff801dd7"
  },
  "sourceRevision": "be6430a0aeae0c5602e26c9bf39192f60561cd2409eb079261cebf918369ac32"
}
