Source: https://ailoot.ai/models/nb/qwen-qwen3-30b-a3b-thinking-2507/
Canonical: https://ailoot.ai/models/nb/qwen-qwen3-30b-a3b-thinking-2507/
Language: nb

# Qwen3 30B A3B Thinking 2507

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

## [Qwen3 30B A3B Thinking 2507](https://ailoot.ai/models/nb/qwen-qwen3-30b-a3b-thinking-2507/)

Qwen3-30B-A3B-Thinking-2507 er Qwens tekstmodell med bare tenkemodus for krevende matematikk, naturvitenskap, kodearbeid og logisk resonnement. Denne faste 2507-utgaven har en innebygd kontekst på 262 144 tokener og et større resonnementsbudsjett, med dokumenterte verktøykall og betingede arbeidsflyter for ultralang kontekst.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `Qwen/Qwen3-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/qwen-qwen3-30b-a3b-thinking-2507/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `Qwen/Qwen3-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/qwen-qwen3-30b-a3b-thinking-2507/#method-1)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/qwen-qwen3-30b-a3b-thinking-2507/#method-2)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/qwen-qwen3-30b-a3b-thinking-2507/#method-3)

Om modellen

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

Hovedpunkter: den faste utgivelsen Thinking-2507

Qwen3-30B-A3B-Thinking-2507 er en tekstgenereringsmodell med fokus på krevende resonnement. Qwen beskriver forbedringer innen logikk, matematikk, naturvitenskap, kodearbeid, instruksjonsfølging, verktøybruk og tekstgenerering, sammen med lengre tenkesekvenser og bedre forståelse av lang kontekst. Velg akkurat denne 2507-utgaven når oppgaven har nytte av vedvarende resonnement, som å undersøke konkurrerende forklaringer, løse et matematisk problem i flere trinn eller arbeide seg gjennom en kompleks kodeendring.

Modelloversikt og modus

Mixture-of-experts-modellen har totalt 30,5 milliarder parametere og 3,3 milliarder aktiverte parametere, med 128 eksperter og åtte valgt per token på tvers av 48 lag. Den innebygde konteksten er 262 144 tokener. Den tar imot tekst og returnerer tekst; verktøyresultater oppgis gjennom en tilknyttet applikasjonsarbeidsflyt. Dette modellkontrollpunktet støtter bare tenkning. Det er adskilt fra den tidligere hybride Qwen3-30B-A3B, FP8-utgaven av den og Qwen3-30B-A3B-Instruct-2507. Du skal ikke anta at hybridmodellens bryter for ikke-tenkning gjelder her.

Standardsamtalemalen starter allerede resonnementssekvensen med en åpningsmarkør for tenkning, så en uttrykkelig innstilling enable\_thinking=True er unødvendig. En returnert sekvens kan inneholde avslutningsmarkøren uten å gjenta åpningsmarkøren. Produsentens eksempel skiller resonnementet fra sluttresultatet. Bevar dette skillet når du ber om et konkret sluttprodukt: konklusjonen i et bevis, en kodeendring eller en beslutningstabell bør være lett å finne etter den lengre forklaringen.

Klargjøring av en krevende oppgave

Gi modellen hele problemstillingen, begrensningene og relevant dokumentasjon. For en kodeendring tar du med den eksisterende funksjonen, inndata som gir feil, og forventet oppførsel. Be deretter om en foreslått kodeendring med en forklaring av grensetilfeller. For et vitenskapelig spørsmål skiller du observasjoner fra forutsetninger og spør hvilken konklusjon som følger av hver. For lange retningslinjer eller en spesifikasjon beholder du delidentifikatorer og ber om en kortfattet beslutning støttet av de relevante bestemmelsene. Dette er praktisk bruk av de dokumenterte resonnementsområdene, ikke påstander om at modellen har anvendt en kodeendring eller validert et eksperiment.

Fordi denne versjonen kan resonnere utførlig, reserverer du plass til både resonnement og sluttresultat. Qwen anbefaler å beholde en kontekst over 131 072 tokener når det er mulig ved konfigurering av modellen, selv om en mindre kontekst ville lette minnepresset. Tallet for innebygd kontekst inkluderer sekvensbudsjettet; det er ikke et løfte om at hele plassen kan brukes til et dokument samtidig som svarplassen er ubegrenset.

Agentbruk

Produsenten dokumenterer verktøykall og anbefaler Qwen-Agent til verktøymaler og tolking, blant annet integrasjon med konfigurerte verktøy og arbeidsflyter med kodefortolker. Definer verktøyene og det tiltenkte resultatet uttrykkelig. En applikasjon kan for eksempel la modellen gjennomgå hentet dokumentasjon, bruke en tillatt kalkulator og deretter produsere en rapport som forklarer beregningen. Henting og kjøring tilhører de tilknyttede verktøyene; modellens evne til verktøykall fastslår ikke i seg selv tilgang til internett, et kodemiljø eller forretningssystemer.

Behandling av ultralang tekst

Qwen dokumenterer en valgfri arbeidsflyt som når omtrent én million tokener ved å kombinere Dual Chunk Attention med MInference sparse attention. Den første teknikken deler lange sekvenser i blokker og bevarer samhandlingen mellom dem; den andre konsentrerer beregningen om utvalgte oppmerksomhetsrelasjoner. Dette er en ekstra konfigurasjonsvei utover den innebygde konteksten på 262 144 tokener. Produsentens oppskrift krever en spesiell konfigurasjon for lang kontekst og anslår omtrent 240 GB samlet GPU-minne til modellvekter, hurtigbufret oppmerksomhetstilstand og aktiveringstopper.

Denne oppskriften har konkrete ressursgrenser: hurtigbufret sekvenstilstand, aktiveringsminne og samlet inndatalengde kan hver for seg bruke opp den konfigurerte kapasiteten. En arbeidsflyt med én million tokener avhenger derfor av konfigurasjon, minne og støttet oppmerksomhetsimplementasjon. For praktisk dokumentgjennomgang starter du med det relevante materialet, markerer dokumentgrenser og ber om sporbar dokumentasjon fremfor å behandle størst mulig inndata som en erstatning for et tydelig spørsmål.

Veiledning og grenser for generering

Qwen anbefaler temperatur 0,6, top\_p 0.95, top\_k 20 og min\_p 0. Den foreslår et utdatabudsjett på 32 768 tokener for de fleste forespørsler og 81 920 for uvanlig krevende matematiske problemer eller programmeringsproblemer. Dette er anbefalinger om genereringsbudsjett fremfor en separat publisert absolutt utdatagrense. En tilstedeværelsesstraff mellom null og to kan redusere gjentakelser, men høyere verdier kan blande språk eller senke kvaliteten noe.

Angi formatet for sluttresultatet i prompten, som et avgrenset matematisk resultat eller et svarfelt for et flervalgsspørsmål. Behold bare delen med sluttresultatet i samtalehistorikken, slik produsenten anbefaler. Lengre resonnement er nyttig når det produserer et resultat som kan kontrolleres; gjennomgå forutsetninger, beregninger og foreslått kode før du stoler på resultatet.

Praktisk oppgave

### Praktisk oppgave

Teknisk eksempel på engelsk

```
Solve a constrained staffing assignment

Assign three reviewers, Ada, Ben and Cy, to morning, afternoon and evening shifts, one each. Ada cannot work evening. Ben must work later than Ada. Cy cannot work morning. List every valid assignment and explain how each constraint eliminates alternatives. Finish with whether the assignment is unique; do not assume additional availability.
```

#### Forventet resultat

```
An enumeration of all valid assignments, a constraint check and a separate uniqueness conclusion.
```

#### Kontroller resultatet

```
Every assignment uses all three shifts once and satisfies Ben later than Ada without adding availability rules.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `Qwen/Qwen3-30B-A3B-Thinking-2507`

[`Qwen/Qwen3-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=chat)

Alibaba /`Qwen/Qwen3-30B-A3B-Thinking-2507`

Modell-ID

- `Qwen/Qwen3-30B-A3B-Thinking-2507`
- `qwen3-30b-a3b-thinking-2507`

### Start

Qwen3-30B-A3B-Thinking-2507 er Qwens tekstmodell med bare tenkemodus for krevende matematikk, naturvitenskap, kodearbeid og logisk resonnement. Denne faste 2507-utgaven har en innebygd kontekst på 262 144 tokener og et større resonnementsbudsjett, med dokumenterte verktøykall og betingede arbeidsflyter for ultralang kontekst.

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-30B-A3B-Thinking-2507 | 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.0002** / 1K tokener Utdata · Utgående tokener **$0.0008** / 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-30B-A3B-Thinking-2507","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-30B-A3B-Thinking-2507", 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-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=chat), [`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=chat)

#### Aliaser for metodestier

`/chat/completions`

#### Tilknyttede anroper-ID-er

[`Qwen/Qwen3-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=chat), [`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `Qwen/Qwen3-30B-A3B-Thinking-2507`

[`Qwen/Qwen3-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=messages)

Alibaba /`Qwen/Qwen3-30B-A3B-Thinking-2507`

Modell-ID

- `Qwen/Qwen3-30B-A3B-Thinking-2507`
- `qwen3-30b-a3b-thinking-2507`

### Start

Qwen3-30B-A3B-Thinking-2507 er Qwens tekstmodell med bare tenkemodus for krevende matematikk, naturvitenskap, kodearbeid og logisk resonnement. Denne faste 2507-utgaven har en innebygd kontekst på 262 144 tokener og et større resonnementsbudsjett, med dokumenterte verktøykall og betingede arbeidsflyter for ultralang kontekst.

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-30B-A3B-Thinking-2507 | 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.0002** / 1K tokener Utdata · Utgående tokener **$0.0008** / 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-30B-A3B-Thinking-2507",
  "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-30B-A3B-Thinking-2507', '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-30B-A3B-Thinking-2507', '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-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=messages), [`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=messages)

#### Aliaser for metodestier

`/chat/completions`

#### Tilknyttede anroper-ID-er

[`Qwen/Qwen3-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=messages), [`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=messages)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen3-30b-a3b-thinking-2507`

[`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=chat)

Alibaba /`qwen3-30b-a3b-thinking-2507`

Modell-ID

- `Qwen/Qwen3-30B-A3B-Thinking-2507`
- `qwen3-30b-a3b-thinking-2507`

### Start

Qwen3-30B-A3B-Thinking-2507 er Qwens tekstmodell med bare tenkemodus for krevende matematikk, naturvitenskap, kodearbeid og logisk resonnement. Denne faste 2507-utgaven har en innebygd kontekst på 262 144 tokener og et større resonnementsbudsjett, med dokumenterte verktøykall og betingede arbeidsflyter for ultralang kontekst.

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-30b-a3b-thinking-2507 | 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.0002** / 1K tokener Utdata · Utgående tokener **$0.0008** / 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-30b-a3b-thinking-2507", "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-30b-a3b-thinking-2507',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-30b-a3b-thinking-2507',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-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=chat), [`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=chat)

#### Aliaser for metodestier

`/chat/completions`

#### Tilknyttede anroper-ID-er

[`Qwen/Qwen3-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=chat), [`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen3-30b-a3b-thinking-2507`

[`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=messages)

Alibaba /`qwen3-30b-a3b-thinking-2507`

Modell-ID

- `Qwen/Qwen3-30B-A3B-Thinking-2507`
- `qwen3-30b-a3b-thinking-2507`

### Start

Qwen3-30B-A3B-Thinking-2507 er Qwens tekstmodell med bare tenkemodus for krevende matematikk, naturvitenskap, kodearbeid og logisk resonnement. Denne faste 2507-utgaven har en innebygd kontekst på 262 144 tokener og et større resonnementsbudsjett, med dokumenterte verktøykall og betingede arbeidsflyter for ultralang kontekst.

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-30b-a3b-thinking-2507 | 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.0002** / 1K tokener Utdata · Utgående tokener **$0.0008** / 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-30b-a3b-thinking-2507",
  "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-30b-a3b-thinking-2507', '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-30b-a3b-thinking-2507', '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-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=messages), [`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=messages)

#### Aliaser for metodestier

`/chat/completions`

#### Tilknyttede anroper-ID-er

[`Qwen/Qwen3-30B-A3B-Thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=Qwen%2FQwen3-30B-A3B-Thinking-2507&fmt=messages), [`qwen3-30b-a3b-thinking-2507`](https://ailoot.ai/models/nb/#m=Qwen%2FQwen3-30B-A3B-Thinking-2507&route=Ultra&caller=qwen3-30b-a3b-thinking-2507&fmt=messages)

FAQ · Qwen/Qwen3-30B-A3B-Thinking-2507

Hvilke inndata og resultater er tilgjengelige?

`POST /v1/chat/completions` · `Qwen/Qwen3-30B-A3B-Thinking-2507`: `text` → `text` `POST /v1/messages` · `Qwen/Qwen3-30B-A3B-Thinking-2507`: `text` → `json`, `sse` `POST /v1/chat/completions` · `qwen3-30b-a3b-thinking-2507`: `text` → `text` `POST /v1/messages` · `qwen3-30b-a3b-thinking-2507`: `text` → `json`, `sse`

Hvilke felt bruker forespørselen?

`POST /v1/chat/completions` · `Qwen/Qwen3-30B-A3B-Thinking-2507`: `model`, `messages`, `stream` `POST /v1/messages` · `Qwen/Qwen3-30B-A3B-Thinking-2507`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/chat/completions` · `qwen3-30b-a3b-thinking-2507`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `qwen3-30b-a3b-thinking-2507`: `model`, `messages`, `max_tokens`, `stream`

Hvilke grenser gjelder?

`POST /v1/chat/completions` · `Qwen/Qwen3-30B-A3B-Thinking-2507`: `messages.min_items`: `1` `POST /v1/chat/completions` · `qwen3-30b-a3b-thinking-2507`: `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.
