Source: https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/
Canonical: https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/
Language: nb

# Qwen3 VL 235B A22B Thinking

[Markdown](https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/index.md) · [JSON](https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/facts.json)

## [Qwen3 VL 235B A22B Thinking](https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/)

Qwen3-VL-235B-A22B-Thinking er Qwens mixture-of-experts-modell for syn og språk, for resonnement om tekst, bilder og video. Bruk Thinking-utgaven til STEM-spørsmål, dokumentgrunnlag, romlige sammenhenger, visuelt kodearbeid og videoanalyse med tidsstempler, med en innebygd kontekst på 262 144 tokener.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/#method-1)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/#method-2)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/qwen-qwen3-vl-235b-a22b-thinking/#method-3)

Om modellen

Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.

Innledning: den multimodale Thinking-utgaven

Qwen3-VL-235B-A22B-Thinking er den resonnementsorienterte mixture-of-experts-utgaven av Qwen3-VL. Den kombinerer tekst med bilder og video og produserer tekstsvar eller kode. Det faste Thinking-modellkontrollpunktet er adskilt fra Qwen3-VL-235B-A22B-Instruct og de separat navngitte FP8-byggene. Velg det til et spørsmål som krever at visuell dokumentasjon knyttes til en lengre forklaring, fremfor å anta at alle Qwen3-VL-utgaver har samme svarstil.

Visuelle agenter og visuelt kodearbeid

Qwen beskriver en arbeidsflyt for visuelle agenter som gjenkjenner elementer i datamaskin- eller mobilgrensesnitt, tolker funksjonene deres og arbeider med verktøy for å fullføre oppgaver. Modellen bidrar med persepsjon og resonnement; en applikasjon må koble til og utføre handlingene. For en grensesnittgjennomgang oppgir du det gjeldende skjermbildet og et bestemt mål og ber modellen identifisere de relevante kontrollene og forklare neste handling. Bildet alene gir ikke kontroll over enheten.

Visuelt kodearbeid omfatter generering av diagraminnhold og HTML, CSS eller JavaScript fra bilder og videoer. Oppgi et skjermbilde med ønsket layout, oppførsel og redigerbart utdataformat. Be om sidestrukturen og stilene som separate leveranser når det gjør gjennomgangen enklere. Generert kode er tekst for en utviklingsarbeidsflyt; den dokumenterer ikke at et nettsted er gjengitt, eller at kildebildet har blitt en fungerende applikasjon.

Romlig persepsjon

Produsenten dokumenterer resonnement rundt objektposisjoner, synsvinkler og tildekking, med todimensjonal forankring og støtte for tredimensjonal forankring. Still et konkret spørsmål om sammenhenger og identifiser objektet som er interessant: for eksempel hvilken komponent som er tildekket, hva som er foran den, og hvilke visuelle holdepunkter som støtter denne tolkningen. Forankringsevne skal ikke behandles som en kalibrert fysisk måling fra et vilkårlig bilde.

Lang kontekst og video

Den innebygde konteksten er 262 144 tokener. Qwen beskriver utvidelse til omtrent én million gjennom YaRN-konfigurasjon og familiearbeidsflyter som omfatter bøker eller videoer på flere timer, med hendelsesindeksering på sekundnivå. Disse egenskapene avhenger av representasjon, sampling av videobilder og kontekstkonfigurasjon; den brede produsentbeskrivelsen garanterer ikke perfekt gjenkalling av hvert videobilde. I kodelageret anbefaler Qwen en ekstrapoleringsfaktor på to eller tre for dette sammenflettede posisjonsskjemaet ved utvidelse fra 256K til omtrent 1M, fremfor automatisk å kopiere en faktor på fire fra en annen modell.

Multimodalt resonnement og gjenkjenning

Thinking-utgaven er rettet mot dokumentasjonsbasert STEM- og matematisk resonnement, årsaksanalyse og logiske svar som knytter tekst til visuelt materiale. Oppgi et diagram og definisjonene sammen, eller en graf og det presise numeriske spørsmålet. Be om etikettene og verdiene som brukes, før konklusjonen. Qwen beskriver også bredere visuell gjenkjenning av mennesker, anime, produkter, landemerker, planter og dyr. Et gjenkjenningssvar er fortsatt en slutning fra det oppgitte bildet, ikke en garanti for at alle objekter eller identiteter kan navngis.

OCR dekker 32 språk og er utformet for bedre lesing ved lite lys, uskarphet eller skjevstilling, også spesialisert ordforråd og strukturen i lange dokumenter. Bevar leselige kildebilder og be om felt, sitater eller en strukturert tabell som kan kontrolleres. Tekstforståelse og visuell forståelse kombineres i én modell, så et spørsmål kan vise samtidig til et dokumentutdrag, en figur og brukerens instruksjoner.

Arkitekturendringer

Interleaved-MRoPE fordeler posisjonsrepresentasjonen over tid, bredde og høyde for videoresonnement. DeepStack kombinerer visuelle egenskaper fra flere nivåer i enkoderen for å fange finere detaljer og forbedre samsvaret mellom bilde og tekst. Justering mellom tekst og tidsstempler forankrer hendelser i tidsreferanser. Den utgitte tekstkonfigurasjonen har 94 lag, 128 eksperter og åtte eksperter valgt per token. Disse arkitekturdetaljene forklarer modellens multimodale representasjon; de etablerer ikke en garantert svartid.

Klargjøring av visuelle inndata og utdata

Produsentens eksempler dekker ett eller flere bilder, video og forespørsler med bare tekst. Merk hvert visuelt inndataelement slik at spørsmålet kan vise tydelig til det. Bilde- og videoprosessorer bruker separate pikselbudsjetter: et bildebudsjett begrenser pikslene i bildet, mens et videobudsjett tar hensyn til piksler på tvers av de samplede videobildene. Uttrykkelige bildedimensjoner justeres til multipler av 32. Videosampling kan styres med frekvens eller antall videobilder; den dokumenterte standarden er to videobilder per sekund. Bevar tidsstempler når du ber om en hendelsestidslinje.

For et langt klipp ber du om hendelsen, tidsintervallet og den synlige dokumentasjonen fremfor en udifferensiert oppsummering. For flere sider ber du om et resultat organisert etter sideidentifikator. Disse klargjøringseksemplene anvender de dokumenterte egenskapene og bidrar til å synliggjøre utelatelser eller uthentingsfeil.

Veiledning og grenser for generering

Modellkontrollpunktets genereringsfil har standardverdiene temperatur 0,8, top\_p 0.95 og top\_k 20. Qwens separate evalueringsoppskrift for Thinking bruker temperatur 0,6, tilstedeværelsesstraff null, gjentakelsesstraff 1,0 og en utdatakvote på 40 960 tokener. Dette er forskjellige forhåndsinnstillinger fra produsenten, ikke én absolutt utdatagrense. Gi plass til resonnement og slutttekst sammen med de visuelle tokenene, og verifiser uthentet tekst, beregnede svar og generert kode mot kilden før du bruker dem.

Praktisk oppgave

### Praktisk oppgave

Teknisk eksempel på engelsk

```
Reason from a textual circuit description

Use this textual circuit description: an ideal 12 V source powers two series resistors, R1 = 2 Ω and R2 = 4 Ω. Calculate total resistance, current and voltage across each resistor. State the ideal-component assumptions and verify that the voltage drops sum to the source voltage. Return a compact worked solution using the labels R1 and R2.
```

#### Forventet resultat

```
A labeled worked calculation and a voltage-sum consistency check.
```

#### Kontroller resultatet

```
The same series current is used for both resistors and the stated voltage drops sum to 12 V.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3-vl-235b-a22b-thinking`

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat)

Alibaba /`qwen/qwen3-vl-235b-a22b-thinking`

Modell-ID

- `qwen/qwen3-vl-235b-a22b-thinking`
- `qwen3-vl-235b-a22b-thinking`

### Start

Qwen3-VL-235B-A22B-Thinking er Qwens mixture-of-experts-modell for syn og språk, for resonnement om tekst, bilder og video. Bruk Thinking-utgaven til STEM-spørsmål, dokumentgrunnlag, romlige sammenhenger, visuelt kodearbeid og videoanalyse med tidsstempler, med en innebygd kontekst på 262 144 tokener.

Godkjente inndata

Tekst

Resultater

Tekst

### Tilgjengelig i Ailoot · inndata & metoder

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Inndatatyper

`text`

Utdatatyper

`text`

Utdataformat

json eller SSE

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser qwen/qwen3-vl-235b-a22b-thinking | Standard— |
| Felt`messages` | Type`message[]` | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
| Felt`messages[].role` | Type`string` | KravPåkrevd | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`messages[].content` | Type`string` | KravValgfritt | Verdier & grenser Gjelder når: Tekstsamtale | Standard— |
| Felt`stream` | Type`boolean` | KravValgfritt | Verdier & grenser | Standardfalse |

Kombinasjoner av inngående materialer

**Tekst** · UTF8-tekst

`messages[].content`

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`content_type` | Avtaleapplication/json |
| Parameter`required` | Avtalemodel, messages |
| Parameter`material_types` | Avtaletext |
| Parameter`messages` | Avtalemeldingstabell med role/content-struktur |
| Parameter`file_material` | Avtalefaktisk UTF-8-dokument satt inn som bokstavelig tekst; ingen fil-ID utledes |
| Parameter`optional_controls` | Avtalestream |
| Parameter`control_scope` | AvtaleTekstsamtale; stream er en boolsk verdi med false som standard. |
| Parameter`output_modalities` | Avtaletext |
| Parameter`hosted_operations` | Avtalefalse |
| Parameter`multimodal_input_binding` | Avtalenull |

Metodealiaser: `/chat/completions`

Livssyklus: `synchronous_or_streamed`

Send eksakt modell-ID sammen med messages.

Kontekstlengde er ikke en outputgrense.

En tekstfil kan levere bokstavelig tekst; bilde-, lyd- og filobjektinput trenger eksakt binding.

### Priser

Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.

Hurtigmodus

Ikke angitt Når hurtigmodus er valgt

Flex-modus

Ikke angitt Når flex-modus er valgt

Maksimal resonneringsinnsats

Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats

#### Ailoot-satser

#### Priser etter konfigurasjon

| Konfigurasjon | Prisplan | Kostnad |
| --- | --- | --- |
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Kostnad Inndata · Inngående tokener **$0.000572** / 1K tokener Utdata · Utgående tokener **$0.00572** / 1K tokener Inndata · Lesing fra hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time **—** / 1K tokener |

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. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot Ultra · OpenAI Chat

curlPython SDK

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"qwen/qwen3-vl-235b-a22b-thinking","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="qwen/qwen3-vl-235b-a22b-thinking", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

### Motta og lagre resultater

#### Ailoot Ultra · OpenAI Chat

json eller SSE

##### Behold alle ferdige resultater

Behold alle fullstendige returnerte svar, filer og innholdsdeler.

Behold hvert svaralternativ med innhold, verktøykall og resonnering. Sett sammen endringer i SSE etter svaralternativets/verktøyets indeks, og behold endelig avslutningsgrunn og bruksdata.

##### Hvis det opprinnelige svaret må kontrolleres

Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`choices[].index` | Typeinteger |
| Felt`choices[].message.content` | Typestring\|null |
| Felt`choices[].message.tool_calls` | Typetool\_call\[\] |
| Felt`choices[].message.reasoning_content` | Typestring |
| Felt`choices[].message.reasoning_details` | Typeobject\|array |
| Felt`choices[].finish_reason` | Typestring\|null |
| Felt`usage` | Typeobject |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |

### Aliaser

#### Modellaliaser

**Ailoot Ultra** [`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

#### Aliaser for metodestier

`/chat/completions`

#### Tilknyttede anroper-ID-er

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3-vl-235b-a22b-thinking`

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages)

Alibaba /`qwen/qwen3-vl-235b-a22b-thinking`

Modell-ID

- `qwen/qwen3-vl-235b-a22b-thinking`
- `qwen3-vl-235b-a22b-thinking`

### Start

Qwen3-VL-235B-A22B-Thinking er Qwens mixture-of-experts-modell for syn og språk, for resonnement om tekst, bilder og video. Bruk Thinking-utgaven til STEM-spørsmål, dokumentgrunnlag, romlige sammenhenger, visuelt kodearbeid og videoanalyse med tidsstempler, med en innebygd kontekst på 262 144 tokener.

Godkjente inndata

Tekst

Resultater

json · sse

### Tilgjengelig i Ailoot · inndata & metoder

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Inndatatyper

`text`

Utdatatyper

`json`, `sse`

Utdataformat

JSON eller SSE

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser qwen/qwen3-vl-235b-a22b-thinking | Standard— |
| Felt`messages` | Type`message[]` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`messages[].role` | Type`string` | KravPåkrevd | Verdier & grenser user, assistant | Standard— |
| Felt`messages[].content` | Type`string` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`max_tokens` | Type`integer` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`stream` | Type`boolean` | KravValgfritt | Verdier & grenser | Standardfalse |

Kombinasjoner av inngående materialer

**Tekst** · UTF-8-tekst

`messages[].content-streng`

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`content_type` | Avtaleapplication/json |
| Parameter`required` | Avtalemodel, messages, max\_tokens |
| Parameter`optional_controls` | Avtalestream |
| Parameter`material_types` | Avtaletext |
| Parameter`text_file_material` | AvtaleLes det faktiske UTF-8-dokumentet og legg teksten i den angitte input- eller meldingsinnholdsstrengen. |

Livssyklus: `synchronous_or_streamed`

### Priser

Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.

Hurtigmodus

Ikke angitt Når hurtigmodus er valgt

Flex-modus

Ikke angitt Når flex-modus er valgt

Maksimal resonneringsinnsats

Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats

#### Ailoot-satser

#### Priser etter konfigurasjon

| Konfigurasjon | Prisplan | Kostnad |
| --- | --- | --- |
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Kostnad Inndata · Inngående tokener **$0.000572** / 1K tokener Utdata · Utgående tokener **$0.00572** / 1K tokener Inndata · Lesing fra hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time **—** / 1K tokener |

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. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot Ultra · Anthropic Messages

Komplett, minimal JSON-kroppcurl · bruk UTF-8-dokumentet dittPython · lagre hele resultatet

```json
{
  "model": "qwen/qwen3-vl-235b-a22b-thinking",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3-vl-235b-a22b-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen/qwen3-vl-235b-a22b-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Motta og lagre resultater

#### Ailoot Ultra · Anthropic Messages

JSON eller SSE

##### Behold alle ferdige resultater

Behold alle fullstendige returnerte svar, filer og innholdsdeler.

Behold alle innholdsblokker, resonneringssignaturer og faktiske ID-er for verktøybruk. Sett sammen alle SSE-blokkendringer; den første tekstblokken er ikke hele resultatet.

##### Hvis det opprinnelige svaret må kontrolleres

Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`id` | Typestring |
| Felt`model` | Typestring |
| Felt`content[]` | Typetext\|thinking\|tool\_use\|other content block |
| Felt`stop_reason` | Typestring\|null |
| Felt`usage` | Typeobject |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |

### Aliaser

#### Modellaliaser

**Ailoot Ultra** [`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

#### Aliaser for metodestier

`/chat/completions`

#### Tilknyttede anroper-ID-er

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen3-vl-235b-a22b-thinking`

[`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

Alibaba /`qwen3-vl-235b-a22b-thinking`

Modell-ID

- `qwen/qwen3-vl-235b-a22b-thinking`
- `qwen3-vl-235b-a22b-thinking`

### Start

Qwen3-VL-235B-A22B-Thinking er Qwens mixture-of-experts-modell for syn og språk, for resonnement om tekst, bilder og video. Bruk Thinking-utgaven til STEM-spørsmål, dokumentgrunnlag, romlige sammenhenger, visuelt kodearbeid og videoanalyse med tidsstempler, med en innebygd kontekst på 262 144 tokener.

Godkjente inndata

Tekst

Resultater

Tekst

### Tilgjengelig i Ailoot · inndata & metoder

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Inndatatyper

`text`

Utdatatyper

`text`

Utdataformat

json eller SSE

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser qwen3-vl-235b-a22b-thinking | Standard— |
| Felt`messages` | Type`message[]` | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
| Felt`messages[].role` | Type`string` | KravPåkrevd | Verdier & grenser Eksempler: system, user, assistant, tool, function Vilkår: Disse rollene representeres eksplisitt av kompatibilitetstyper i kildekoden; det eksakte rollesettet for modellen er fortsatt modellspesifikt. Avhenger av modellen | Standard— |
| Felt`messages[].content` | Type`string\|content_part[]\|null` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`messages[].tool_calls` | Type`tool_call[]` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`messages[].tool_call_id` | Type`string` | KravValgfritt | Verdier & grenser Gjelder når: role=tool; bruk faktisk returnert ID | Standard— |
| Felt`messages[].name` | Type`string` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`messages[].reasoning_content` | Type`string` | KravValgfritt | Verdier & grenser Gjelder når: Send den faktisk returnerte resonneringen tilbake der denne modellen bruker den | Standard— |
| Felt`messages[].reasoning_details` | Type`object\|array` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`max_tokens` | Type`integer` | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
| Felt`max_completion_tokens` | Type`integer` | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
| Felt`stream` | Type`boolean` | KravValgfritt | Verdier & grenser | Standardfalse |
| Felt`stream_options.include_usage` | Type`boolean` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`temperature` | Type`number` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`top_p` | Type`number` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`stop` | Type`string\|string[]` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`tools` | Type`function_tool[]` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`tools[].type` | Type`string` | KravValgfritt | Verdier & grenser function Avhenger av modellen | Standard— |
| Felt`tools[].function.name` | Type`string` | KravPåkrevd | Verdier & grenser Gjelder når: funksjonsverktøy oppgitt | Standard— |
| Felt`tools[].function.description` | Type`string` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`tools[].function.parameters` | Type`JSON_schema` | KravValgfritt | Verdier & grenser | Standard— |
| Felt`tool_choice` | Type`string\|object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`parallel_tool_calls` | Type`boolean` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`response_format` | Type`object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`reasoning_effort` | Type`string` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`reasoning` | Type`object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`service_tier` | Type`string` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`instructions` | Type`string` | KravValgfritt | Verdier & grenser Kompatibilitetsfelt | Standard— |
| Felt`functions` | Type`function[]` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`function_call` | Type`string\|object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`prompt_cache_options` | Type`object` | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
| Felt`modalities` | Type`string[]` | KravValgfritt | Verdier & grenser text | Standard— |
| Felt`provider` | Type`object` | KravValgfritt | Verdier & grenser Vilkår: provider.options avvises på denne Ultra-tekstruten | Standard— |
| Felt`cache_control.ttl` | Type`string` | KravValgfritt | Verdier & grenser Vilkår: 1h avvises på faktiske steder for mellomlagring av ledetekster | Standard— |

Kombinasjoner av inngående materialer

**Tekst** · UTF8-tekst

`messages[].content`

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`content_type` | Avtaleapplication/json |
| Parameter`required` | Avtalemodel, messages |
| Parameter`material_types` | Avtaletext |
| Parameter`messages` | Avtalemeldingstabell med role/content-struktur |
| Parameter`file_material` | Avtalefaktisk UTF-8-dokument satt inn som bokstavelig tekst; ingen fil-ID utledes |
| Parameter`optional_controls` | Avtalestream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parameter`control_scope` | Avtalemodellspesifikt; brukerens funksjonsverktøy skiller seg fra driftede verktøy |
| Parameter`output_modalities` | Avtaletext |
| Parameter`hosted_operations` | Avtalefalse |
| Parameter`multimodal_input_binding` | Avtalenull |

Livssyklus: `synchronous_or_streamed`

Send eksakt modell-ID sammen med messages.

Kontekstlengde er ikke en outputgrense.

En tekstfil kan levere bokstavelig tekst; bilde-, lyd- og filobjektinput trenger eksakt binding.

### Priser

Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.

Hurtigmodus

Ikke angitt Når hurtigmodus er valgt

Flex-modus

Ikke angitt Når flex-modus er valgt

Maksimal resonneringsinnsats

Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats

#### Ailoot-satser

#### Priser etter konfigurasjon

| Konfigurasjon | Prisplan | Kostnad |
| --- | --- | --- |
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Kostnad Inndata · Inngående tokener **$0.000572** / 1K tokener Utdata · Utgående tokener **$0.00572** / 1K tokener Inndata · Lesing fra hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time **—** / 1K tokener |

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. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-strømming

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen3-vl-235b-a22b-thinking", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='qwen3-vl-235b-a22b-thinking',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='qwen3-vl-235b-a22b-thinking',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Motta og lagre resultater

#### Ailoot Ultra · OpenAI Chat

json eller SSE

##### Behold alle ferdige resultater

Behold alle fullstendige returnerte svar, filer og innholdsdeler.

Behold hvert svaralternativ med innhold, verktøykall og resonnering. Sett sammen endringer i SSE etter svaralternativets/verktøyets indeks, og behold endelig avslutningsgrunn og bruksdata.

##### Hvis det opprinnelige svaret må kontrolleres

Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`choices[].index` | Typeinteger |
| Felt`choices[].message.content` | Typestring\|null |
| Felt`choices[].message.tool_calls` | Typetool\_call\[\] |
| Felt`choices[].message.reasoning_content` | Typestring |
| Felt`choices[].message.reasoning_details` | Typeobject\|array |
| Felt`choices[].finish_reason` | Typestring\|null |
| Felt`usage` | Typeobject |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |

### Aliaser

#### Modellaliaser

**Ailoot Ultra** [`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

#### Aliaser for metodestier

`/chat/completions`

#### Tilknyttede anroper-ID-er

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=chat), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen3-vl-235b-a22b-thinking`

[`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

Alibaba /`qwen3-vl-235b-a22b-thinking`

Modell-ID

- `qwen/qwen3-vl-235b-a22b-thinking`
- `qwen3-vl-235b-a22b-thinking`

### Start

Qwen3-VL-235B-A22B-Thinking er Qwens mixture-of-experts-modell for syn og språk, for resonnement om tekst, bilder og video. Bruk Thinking-utgaven til STEM-spørsmål, dokumentgrunnlag, romlige sammenhenger, visuelt kodearbeid og videoanalyse med tidsstempler, med en innebygd kontekst på 262 144 tokener.

Godkjente inndata

Tekst

Resultater

json · sse

### Tilgjengelig i Ailoot · inndata & metoder

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Inndatatyper

`text`

Utdatatyper

`json`, `sse`

Utdataformat

JSON eller SSE

| Felt | Type | Krav | Verdier & grenser | Standard |
| --- | --- | --- | --- | --- |
| Felt`model` | Type`string` | KravPåkrevd | Verdier & grenser qwen3-vl-235b-a22b-thinking | Standard— |
| Felt`messages` | Type`message[]` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`messages[].role` | Type`string` | KravPåkrevd | Verdier & grenser user, assistant | Standard— |
| Felt`messages[].content` | Type`string` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`max_tokens` | Type`integer` | KravPåkrevd | Verdier & grenser | Standard— |
| Felt`stream` | Type`boolean` | KravValgfritt | Verdier & grenser | Standardfalse |

Kombinasjoner av inngående materialer

**Tekst** · UTF-8-tekst

`messages[].content-streng`

Metodeparametere og livssyklus

| Parameter | Avtale |
| --- | --- |
| Parameter`content_type` | Avtaleapplication/json |
| Parameter`required` | Avtalemodel, messages, max\_tokens |
| Parameter`optional_controls` | Avtalestream |
| Parameter`material_types` | Avtaletext |
| Parameter`text_file_material` | AvtaleLes det faktiske UTF-8-dokumentet og legg teksten i den angitte input- eller meldingsinnholdsstrengen. |

Livssyklus: `synchronous_or_streamed`

### Priser

Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.

Hurtigmodus

Ikke angitt Når hurtigmodus er valgt

Flex-modus

Ikke angitt Når flex-modus er valgt

Maksimal resonneringsinnsats

Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats

#### Ailoot-satser

#### Priser etter konfigurasjon

| Konfigurasjon | Prisplan | Kostnad |
| --- | --- | --- |
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Kostnad Inndata · Inngående tokener **$0.000572** / 1K tokener Utdata · Utgående tokener **$0.00572** / 1K tokener Inndata · Lesing fra hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer **$0** / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time **—** / 1K tokener |

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. [Slik fungerer reservasjon og oppgjør →](https://ailoot.ai/docs/nb/billing/reserve/)

### Eksempelforespørsler

#### Ailoot Ultra · Anthropic Messages

Komplett, minimal JSON-kroppcurl · bruk UTF-8-dokumentet dittPython · lagre hele resultatet

```json
{
  "model": "qwen3-vl-235b-a22b-thinking",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen3-vl-235b-a22b-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen3-vl-235b-a22b-thinking', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Motta og lagre resultater

#### Ailoot Ultra · Anthropic Messages

JSON eller SSE

##### Behold alle ferdige resultater

Behold alle fullstendige returnerte svar, filer og innholdsdeler.

Behold alle innholdsblokker, resonneringssignaturer og faktiske ID-er for verktøybruk. Sett sammen alle SSE-blokkendringer; den første tekstblokken er ikke hele resultatet.

##### Hvis det opprinnelige svaret må kontrolleres

Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.

Svarfelter

| Felt | Type |
| --- | --- |
| Felt`id` | Typestring |
| Felt`model` | Typestring |
| Felt`content[]` | Typetext\|thinking\|tool\_use\|other content block |
| Felt`stop_reason` | Typestring\|null |
| Felt`usage` | Typeobject |

Feil og neste trinn

| Svar | Vilkår | Neste trinn |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |

### Aliaser

#### Modellaliaser

**Ailoot Ultra** [`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

#### Aliaser for metodestier

`/chat/completions`

#### Tilknyttede anroper-ID-er

[`qwen/qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen%2Fqwen3-vl-235b-a22b-thinking&fmt=messages), [`qwen3-vl-235b-a22b-thinking`](https://ailoot.ai/models/nb/#m=qwen%2Fqwen3-vl-235b-a22b-thinking&route=Ultra&caller=qwen3-vl-235b-a22b-thinking&fmt=messages)

FAQ · qwen/qwen3-vl-235b-a22b-thinking

Hvilke inndata og resultater er tilgjengelige?

`POST /v1/chat/completions` · `qwen/qwen3-vl-235b-a22b-thinking`: `text` → `text` `POST /v1/messages` · `qwen/qwen3-vl-235b-a22b-thinking`: `text` → `json`, `sse` `POST /v1/chat/completions` · `qwen3-vl-235b-a22b-thinking`: `text` → `text` `POST /v1/messages` · `qwen3-vl-235b-a22b-thinking`: `text` → `json`, `sse`

Hvilke felt bruker forespørselen?

`POST /v1/chat/completions` · `qwen/qwen3-vl-235b-a22b-thinking`: `model`, `messages`, `stream` `POST /v1/messages` · `qwen/qwen3-vl-235b-a22b-thinking`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/chat/completions` · `qwen3-vl-235b-a22b-thinking`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `qwen3-vl-235b-a22b-thinking`: `model`, `messages`, `max_tokens`, `stream`

Hvilke grenser gjelder?

`POST /v1/chat/completions` · `qwen/qwen3-vl-235b-a22b-thinking`: `messages.min_items`: `1` `POST /v1/chat/completions` · `qwen3-vl-235b-a22b-thinking`: `messages.min_items`: `1`

Koble Ailoot til Claude Code, OpenCode, Hermes eller egen applikasjon.

## Selskapet og dets prosjektportefølje

Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.

## Kjøp tokener med rabatt.

Abonnementsrabatt for jevnlig bruk. Kampanjekoder gir opptil 50% på tokenkjøp.

Abonnement

Velg et rabattabonnement for faste forespørsler.

Kampanjekode opptil 50%

Oppgi kode ved kjøp. Prisen beregnes på nytt etter gjeldende kampanje.

Kostnader i historikken

Modell, tokener og beløp lagres for hver forespørsel.

[Velg abonnement](https://ailoot.ai/docs/nb/billing/subscriptions/) · [Se modellpriser](https://ailoot.ai/models/nb/)

## Koble API-et til produktet du selger.

SaaS, apper og boter etter Ailoots offentlige tilbud og lisensavtale. Be om forhandlerlisens for videresalg.

Kommersiell applikasjon

Bygg tekst-, bilde-, video- og lydgenerering inn i betalte funksjoner i tjenesten.

Forhandlerlisens

Send prosjektbeskrivelse og tilgangsopplegg. Be om skriftlige vilkår for bruk og videresalg.

Dokumenter på nettstedet

Offentlig tilbud, lisensavtale og retningslinjer for databehandling er tilgjengelige før tilkobling.

[Be om forhandlerlisens](mailto:support@ailoot.ai) · [Offentlig tilbud og lisensavtale](https://ailoot.ai/legal/offer?lang=nb)

## Ailoot · Selskapet og dets prosjektportefølje





Ailoot bygger på etablert driftserfaring, en stor kundebase, stabil tjeneste og løpende KPI-kontroll.





Selskapet og dets prosjektportefølje: millioner av kunder; månedlig salg for milliarder.





Ailoot bruker denne driftserfaringen til API-tilgang til AI-funksjoner i kundenes produkter, agenter, applikasjoner og automatiseringer.
