Source: https://ailoot.ai/models/sv/qwen-qwen3-5-plus-20260420/
Canonical: https://ailoot.ai/models/sv/qwen-qwen3-5-plus-20260420/
Language: sv

# Qwen: Qwen3.5 Plus 2026-04-20

[Markdown](https://ailoot.ai/models/sv/qwen-qwen3-5-plus-20260420/index.md) · [JSON](https://ailoot.ai/models/sv/qwen-qwen3-5-plus-20260420/facts.json)

## [Qwen: Qwen3.5 Plus 2026-04-20](https://ailoot.ai/models/sv/qwen-qwen3-5-plus-20260420/)

Qwen3.5 Plus 2026-04-20 är den fasta versionen från den 20 april av Qwens Plus-modell för bild och språk. Tillverkaren framhäver förbättrad agentkodning med bibehållet resonemang, kunskap och arbete med lång kontext, för komplexa uppgifter som kombinerar tillhandahållen text eller visuellt material med en konkret leverans.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3.5-plus-20260420`](https://ailoot.ai/models/sv/qwen-qwen3-5-plus-20260420/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3.5-plus-20260420`](https://ailoot.ai/models/sv/qwen-qwen3-5-plus-20260420/#method-1)

Om modellen

Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.

Den fasta Plus-versionen från den 20 april

Qwen3.5 Plus 2026-04-20 är versionen från den 20 april 2026 av Qwens Plus-familj, som har inbyggd bild- och språkförståelse. Tillverkarens utgåvemeddelande identifierar en betydande förbättring i agentkodning jämfört med versionen från den 15 februari, tillsammans med bättre inferenseffektivitet och bibehållen kunskap, resonemang och förmågor för lång kontext. Håll den daterade utgåvan åtskild från ett föränderligt Plus-namn och från den öppna kontrollpunkten Qwen3.5-397B-A17B.

Familjen tar emot text med bilder eller video och producerar textresultat. Området stöder en utvecklingsuppgift med underlag från en skärmbild, en fråga om ett tekniskt diagram eller en dokumentbaserad förklaring. Versionsnamnet fastställer inte i sig den öppna kontrollpunktens parameterantal, aktiverade experter eller exakta arkitektur, så dessa siffror tillskrivs inte denna utgåva här.

Agentkodning

Utgåvans huvudändring är bättre kodningsförmåga i ett agentflöde. Tillhandahåll projektkrav, relevanta filer eller utdrag, befintligt beteende och artefakten som förväntas vid slutförande. För en uppgift som omvandlar en skärmbild till ett gränssnitt ska den visuella referensen och funktionsbegränsningar bifogas; begär sedan redigerbar källkod och en förklaring av avsett beteende. För en kodbasändring ska den berörda funktionen och indata som visar problemet identifieras; be sedan om en patch och de kontroller som behövs för att bedöma den.

Ett kodflöde i flera steg gynnas av faktisk återkoppling: inspektionsresultat, observerade fel och granskningsfynd kan returneras till modellen under arbetets gång. Applikationen styr verktygen och utför tillåtna åtgärder. Begär en rapport om vad som föreslagits, vad som observerats och vad som förblir olöst.

Kunskap och resonemang

Tillverkaren säger att versionen behåller stark kunskap och resonemang samtidigt som agentarbetet förbättras. För en analytisk uppgift ska källfakta skiljas från antaganden och den sökta slutsatsen specificeras. Begär stödjande avsnitt, värden eller kodidentifierare så att resultatet kan kontrolleras. För en professionell rapport ska relevant material och önskade avsnitt ges i stället för att modellen förväntas känna till ett privat projekts saknade kontext.

Qwen3.5 Plus-familjen dokumenteras som en familj med hybridresonemang, där resonemang är aktiverat som standard. Familjens flöde kan ge ett direkt svar när resonemang stängs av, medan resonemang och slutsvarsinnehåll behandlas separat. Den specifika aprilversionens gränssnitt ska använda sina egna dokumenterade kontroller; en familjebeskrivning av lägen lovar inte att varje applikation exponerar en viss parameter.

Arbete med lång kontext

Alibabas särskilda tabell för versionen från den 20 april anger en kontext på 1,000,000 token, högst 991,808 token indata för direkta svar eller 983,616 för resonemang och högst 65,536 utdata i båda lägena. Överför inte den öppna Qwen3.5-kontrollpunktens inbyggda eller utökade kontextsiffror till en hård gräns för denna Plus-version. Förbered långa indata med dokumentgränser, sididentifierare, kodsökvägar och definitioner som behövs för uppgiften.

En användbar begäran kan be om en tabell som kopplar krav till implementation, en dokumentjämförelse eller en rapport som identifierar belägg för varje slutsats. Håll orelaterat material utanför prompten och lämna plats för svaret. Förmåga till lång kontext hjälper till att samla fler belägg; den är ingen garanti för fullständig återgivning eller ersättning för en tydlig fråga.

Uppgiftsberedning för produktionsliknande arbete

Tillverkaren positionerar utgåvan för komplexa agenter, kodflöden och användning med fokus på genomströmning. Definiera uppgiftens observerbara resultat: filer att producera, beteende att implementera eller fynd att förklara. Där verktyg är anslutna ska deras verkliga returnerade resultat skiljas från modellens textförslag. Ange slutformatet så att artefakten kan föras in i ett gransknings- eller applikationsflöde, samtidigt som syntax och innehåll kontrolleras separat.

Den särskilda versionstabellen anger funktionsanrop, strukturerade utdata, webbsökning, prefixkomplettering och kontextcache; batchinferens och finjustering stöds inte. Detta är funktioner i producentens flöde och mediefilgränser förblir en separat specifikation. En begäran om text i JSON-form, kodkörning eller källhämtning ska därför förbli ett begärt flöde snarare än en antagen inbyggd garanti. Förbättringen som tillverkaren beskriver är kvalitativ; den ska inte bli ett ovillkorligt löfte om latens eller genomströmning.

Praktiska begränsningar

Spara den exakta daterade Plus-utgåvan och källmaterialet med resultatet vid jämförelse av senare revideringar. Kontrollera genererad kod, beräkningar och extraherade visuella detaljer mot den tillhandahållna källan och redovisa olösta belägg uttryckligen. Det användbara resultatet är en konkret textartefakt knuten till uppgiftskraven, med exakt daterad Plus-identitet och dokumenterade producentgränser för indata, utdata och verktyg uttryckligt angivna.

Praktisk uppgift

### Praktisk uppgift

Tekniskt exempel på engelska

```
Repair an asynchronous search race

A search field calls fetchResults(query).then(render) after each keystroke. Results for an older query sometimes arrive after the latest query and overwrite the screen. Propose a focused JavaScript change that renders only the newest request's result. Preserve the existing fetchResults and render interfaces, handle request failures and describe a reversed-response-order test.
```

#### Förväntat resultat

```
A code proposal, a brief request-order explanation and a deterministic out-of-order response test.
```

#### Kontrollera resultatet

```
Check an older response cannot overwrite the latest result, including after a failed newer request.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `qwen/qwen3.5-plus-20260420`

[`qwen/qwen3.5-plus-20260420`](https://ailoot.ai/models/sv/#m=qwen%2Fqwen3.5-plus-20260420&route=Ultra&caller=qwen%2Fqwen3.5-plus-20260420&fmt=chat)

Alibaba /`qwen/qwen3.5-plus-20260420`

### Start

Qwen3.5 Plus 2026-04-20 är den fasta versionen från den 20 april av Qwens Plus-modell för bild och språk. Tillverkaren framhäver förbättrad agentkodning med bibehållet resonemang, kunskap och arbete med lång kontext, för komplexa uppgifter som kombinerar tillhandahållen text eller visuellt material med en konkret leverans.

Godkända indata

Text

Resultat

Text

### Tillgängligt i Ailoot · indata & metoder

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

Indatatyper

`text`

Utdatatyper

`text`

Utdataformat

json eller SSE

| Fält | Typ | Krav | Värden & gränser | Standard |
| --- | --- | --- | --- | --- |
| Fält`model` | Typ`string` | KravObligatoriskt | Värden & gränser qwen/qwen3.5-plus-20260420 | Standard— |
| Fält`messages` | Typ`message[]` | KravObligatoriskt | Värden & gränser Minsta antal objekt: 1 | Standard— |
| Fält`messages[].role` | Typ`string` | KravObligatoriskt | Värden & gränser Exempel: system, user, assistant, tool, function Villkor: Dessa roller representeras uttryckligen av källkodens kompatibilitetstyper; den exakta rolluppsättningen är fortfarande modellspecifik. Beror på modellen | Standard— |
| Fält`messages[].content` | Typ`string\|content_part[]\|null` | KravValfritt | Värden & gränser | Standard— |
| Fält`messages[].tool_calls` | Typ`tool_call[]` | KravValfritt | Värden & gränser | Standard— |
| Fält`messages[].tool_call_id` | Typ`string` | KravValfritt | Värden & gränser Gäller när: role=tool; använd det faktiska returnerade ID:t | Standard— |
| Fält`messages[].name` | Typ`string` | KravValfritt | Värden & gränser | Standard— |
| Fält`messages[].reasoning_content` | Typ`string` | KravValfritt | Värden & gränser Gäller när: Skicka tillbaka det faktiska returnerade resonemanget när modellen använder det | Standard— |
| Fält`messages[].reasoning_details` | Typ`object\|array` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`max_tokens` | Typ`integer` | KravValfritt | Värden & gränser Minimum: 1 Beror på modellen | Standard— |
| Fält`max_completion_tokens` | Typ`integer` | KravValfritt | Värden & gränser Minimum: 1 Beror på modellen | Standard— |
| Fält`stream` | Typ`boolean` | KravValfritt | Värden & gränser | Standardfalse |
| Fält`stream_options.include_usage` | Typ`boolean` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`temperature` | Typ`number` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`top_p` | Typ`number` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`stop` | Typ`string\|string[]` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`tools` | Typ`function_tool[]` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`tools[].type` | Typ`string` | KravValfritt | Värden & gränser function Beror på modellen | Standard— |
| Fält`tools[].function.name` | Typ`string` | KravObligatoriskt | Värden & gränser Gäller när: verktyg av typen funktion har tillhandahållits | Standard— |
| Fält`tools[].function.description` | Typ`string` | KravValfritt | Värden & gränser | Standard— |
| Fält`tools[].function.parameters` | Typ`JSON_schema` | KravValfritt | Värden & gränser | Standard— |
| Fält`tool_choice` | Typ`string\|object` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`parallel_tool_calls` | Typ`boolean` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`response_format` | Typ`object` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`reasoning_effort` | Typ`string` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`reasoning` | Typ`object` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`service_tier` | Typ`string` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`instructions` | Typ`string` | KravValfritt | Värden & gränser Kompatibilitetsfält | Standard— |
| Fält`functions` | Typ`function[]` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`function_call` | Typ`string\|object` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`prompt_cache_options` | Typ`object` | KravValfritt | Värden & gränser Beror på modellen | Standard— |
| Fält`modalities` | Typ`string[]` | KravValfritt | Värden & gränser text | Standard— |
| Fält`provider` | Typ`object` | KravValfritt | Värden & gränser Villkor: provider.options avvisas på denna Ultra-textrutt | Standard— |
| Fält`cache_control.ttl` | Typ`string` | KravValfritt | Värden & gränser Villkor: 1h avvisas på de faktiska platserna för promptcache | Standard— |

Kombinationer av indatamaterial

**Text** · UTF8-text

`messages[].content`

Metodparametrar och livscykel

| Parameter | Avtal |
| --- | --- |
| Parameter`content_type` | Avtalapplication/json |
| Parameter`required` | Avtalmodel, messages |
| Parameter`material_types` | Avtaltext |
| Parameter`messages` | Avtalmeddelandearray med strukturen role/content |
| Parameter`file_material` | Avtaldet faktiska UTF-8-dokumentet infogat som bokstavlig text; inget fil-ID härleds |
| Parameter`optional_controls` | Avtalstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parameter`control_scope` | Avtalmodellspecifikt; användarens funktionsverktyg skiljer sig från värdbaserade verktyg |
| Parameter`output_modalities` | Avtaltext |
| Parameter`hosted_operations` | Avtalfalse |
| Parameter`multimodal_input_binding` | Avtalnull |

Livscykel: `synchronous_or_streamed`

Skicka det exakta modell-ID:t tillsammans med messages.

Kontextlängden är inte en utdatagräns.

En textfil kan tillhandahålla bokstavlig text; bild-/ljud-/filobjektsindata kräver exakt bindning.

### Priser

Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.

Snabbt läge

Standardpris När snabbt läge är valt

Flex-läge

Standardpris När läget flex är valt

Högsta resonemangsnivå

Standardpris När den högsta resonemangsnivån använder standardjusteringen (default)

#### Ailoot-priser

#### Priser efter konfiguration

Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.

| Konfiguration | Prislista | Kontexttoken, fler än | Kontexttoken, upp till och med | Avgift |
| --- | --- | --- | --- | --- |
| KonfigurationGrundpriser för token | PrislistaGrundpris | Kontexttoken, fler än— | Kontexttoken, upp till och medIngen övre gräns | Avgift Indata · Indatatoken **$0.0006** / 1K token Utdata · Utdatatoken **$0.0036** / 1K token Indata · Cacheläsning **—** / 1K token Indata · Skrivning till cache **$0.00075** / 1K token Indata · Skrivning till cache, 1 tim **—** / 1K token |
| KonfigurationNivå 1 för förfrågans längd | Prislista— | Kontexttoken, fler än0 | Kontexttoken, upp till och med256 000 | Avgift Indata · Indatatoken **$0.0006** / 1K token Utdata · Utdatatoken **$0.0036** / 1K token Indata · Cacheläsning **—** / 1K token Indata · Skrivning till cache **$0.00075** / 1K token Indata · Skrivning till cache, 1 tim **—** / 1K token |
| KonfigurationNivå 2 för förfrågans längd | Prislista— | Kontexttoken, fler än256 000 | Kontexttoken, upp till och medIngen övre gräns | Avgift Indata · Indatatoken **$0.00075** / 1K token Utdata · Utdatatoken **$0.0045** / 1K token Indata · Cacheläsning **—** / 1K token Indata · Skrivning till cache **$0.0009375** / 1K token Indata · Skrivning till cache, 1 tim **—** / 1K token |

Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. [Så fungerar reservation och slutreglering →](https://ailoot.ai/docs/sv/billing/reserve/)

### Exempelbegäranden

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-strömning

```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.5-plus-20260420", "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='qwen/qwen3.5-plus-20260420',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='qwen/qwen3.5-plus-20260420',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")
```

### Ta emot och spara resultat

#### Ailoot Ultra · OpenAI Chat

json eller SSE

##### Behåll alla färdiga resultat

Behåll varje fullständigt returnerat svar, fil och innehållsdel.

Behåll varje svarsalternativ och dess innehåll/verktygsanrop/resonemang. Sätt i SSE samman deltauppdateringar efter svarsalternativets/verktygets index och behåll den slutliga avslutsorsaken och användningsuppgifterna.

##### Om det ursprungliga svaret behöver kontrolleras

Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls.

Svarsfält

| Fält | Typ |
| --- | --- |
| Fält`choices[].index` | Typinteger |
| Fält`choices[].message.content` | Typstring\|null |
| Fält`choices[].message.tool_calls` | Typtool\_call\[\] |
| Fält`choices[].message.reasoning_content` | Typstring |
| Fält`choices[].message.reasoning_details` | Typobject\|array |
| Fält`choices[].finish_reason` | Typstring\|null |
| Fält`usage` | Typobject |

Fel och nästa steg

| Svar | Villkor | Nästa steg |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde | Nästa stegKorrigera de angivna fälten före en ny begäran om att skapa. |

### Alias

#### Modellalias

**Ailoot Ultra** [`qwen/qwen3.5-plus-20260420`](https://ailoot.ai/models/sv/#m=qwen%2Fqwen3.5-plus-20260420&route=Ultra&caller=qwen%2Fqwen3.5-plus-20260420&fmt=chat)

#### Alias för metodsökvägar

Använd metodsökvägarna som visas ovan.

#### Relaterade anropar-ID:n

[`qwen/qwen3.5-plus-20260420`](https://ailoot.ai/models/sv/#m=qwen%2Fqwen3.5-plus-20260420&route=Ultra&caller=qwen%2Fqwen3.5-plus-20260420&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `qwen/qwen3.5-plus-20260420`

[`qwen/qwen3.5-plus-20260420`](https://ailoot.ai/models/sv/#m=qwen%2Fqwen3.5-plus-20260420&route=Ultra&caller=qwen%2Fqwen3.5-plus-20260420&fmt=messages)

Alibaba /`qwen/qwen3.5-plus-20260420`

### Start

Qwen3.5 Plus 2026-04-20 är den fasta versionen från den 20 april av Qwens Plus-modell för bild och språk. Tillverkaren framhäver förbättrad agentkodning med bibehållet resonemang, kunskap och arbete med lång kontext, för komplexa uppgifter som kombinerar tillhandahållen text eller visuellt material med en konkret leverans.

Godkända indata

Text

Resultat

json · sse

### Tillgängligt i Ailoot · indata & metoder

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

Indatatyper

`text`

Utdatatyper

`json`, `sse`

Utdataformat

JSON eller SSE

| Fält | Typ | Krav | Värden & gränser | Standard |
| --- | --- | --- | --- | --- |
| Fält`model` | Typ`string` | KravObligatoriskt | Värden & gränser qwen/qwen3.5-plus-20260420 | Standard— |
| Fält`messages` | Typ`message[]` | KravObligatoriskt | Värden & gränser | Standard— |
| Fält`messages[].role` | Typ`string` | KravObligatoriskt | Värden & gränser user, assistant | Standard— |
| Fält`messages[].content` | Typ`string` | KravObligatoriskt | Värden & gränser | Standard— |
| Fält`max_tokens` | Typ`integer` | KravObligatoriskt | Värden & gränser | Standard— |
| Fält`stream` | Typ`boolean` | KravValfritt | Värden & gränser | Standardfalse |

Kombinationer av indatamaterial

**Text** · UTF-8-text

`sträng i messages[].content`

Metodparametrar och livscykel

| Parameter | Avtal |
| --- | --- |
| Parameter`content_type` | Avtalapplication/json |
| Parameter`required` | Avtalmodel, messages, max\_tokens |
| Parameter`optional_controls` | Avtalstream |
| Parameter`material_types` | Avtaltext |
| Parameter`text_file_material` | AvtalLäs det faktiska UTF-8-dokumentet och placera texten i det angivna input-fältet eller i strängen för meddelandets innehåll. |

Livscykel: `synchronous_or_streamed`

### Priser

Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.

Snabbt läge

Standardpris När snabbt läge är valt

Flex-läge

Standardpris När läget flex är valt

Högsta resonemangsnivå

Standardpris När den högsta resonemangsnivån använder standardjusteringen (default)

#### Ailoot-priser

#### Priser efter konfiguration

Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.

| Konfiguration | Prislista | Kontexttoken, fler än | Kontexttoken, upp till och med | Avgift |
| --- | --- | --- | --- | --- |
| KonfigurationGrundpriser för token | PrislistaGrundpris | Kontexttoken, fler än— | Kontexttoken, upp till och medIngen övre gräns | Avgift Indata · Indatatoken **$0.0006** / 1K token Utdata · Utdatatoken **$0.0036** / 1K token Indata · Cacheläsning **—** / 1K token Indata · Skrivning till cache **$0.00075** / 1K token Indata · Skrivning till cache, 1 tim **—** / 1K token |
| KonfigurationNivå 1 för förfrågans längd | Prislista— | Kontexttoken, fler än0 | Kontexttoken, upp till och med256 000 | Avgift Indata · Indatatoken **$0.0006** / 1K token Utdata · Utdatatoken **$0.0036** / 1K token Indata · Cacheläsning **—** / 1K token Indata · Skrivning till cache **$0.00075** / 1K token Indata · Skrivning till cache, 1 tim **—** / 1K token |
| KonfigurationNivå 2 för förfrågans längd | Prislista— | Kontexttoken, fler än256 000 | Kontexttoken, upp till och medIngen övre gräns | Avgift Indata · Indatatoken **$0.00075** / 1K token Utdata · Utdatatoken **$0.0045** / 1K token Indata · Cacheläsning **—** / 1K token Indata · Skrivning till cache **$0.0009375** / 1K token Indata · Skrivning till cache, 1 tim **—** / 1K token |

Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. [Så fungerar reservation och slutreglering →](https://ailoot.ai/docs/sv/billing/reserve/)

### Exempelbegäranden

#### Ailoot Ultra · Anthropic Messages

Komplett minimal JSON-kroppcurl · använd ditt UTF-8-dokumentPython · spara hela resultatet

```json
{
  "model": "qwen/qwen3.5-plus-20260420",
  "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.5-plus-20260420', '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.5-plus-20260420', '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))
```

### Ta emot och spara resultat

#### Ailoot Ultra · Anthropic Messages

JSON eller SSE

##### Behåll alla färdiga resultat

Behåll varje fullständigt returnerat svar, fil och innehållsdel.

Behåll alla innehållsblock, resonemangssignaturer och faktiska ID:n för verktygsanvändning. Sätt samman alla SSE-deltauppdateringar för blocken; ett första textblock är inte hela utdata.

##### Om det ursprungliga svaret behöver kontrolleras

Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls.

Svarsfält

| Fält | Typ |
| --- | --- |
| Fält`id` | Typstring |
| Fält`model` | Typstring |
| Fält`content[]` | Typtext\|thinking\|tool\_use\|other content block |
| Fält`stop_reason` | Typstring\|null |
| Fält`usage` | Typobject |

Fel och nästa steg

| Svar | Villkor | Nästa steg |
| --- | --- | --- |
| Svar400 · `invalid_request_error` | VillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde | Nästa stegKorrigera de angivna fälten före en ny begäran om att skapa. |

### Alias

#### Modellalias

**Ailoot Ultra** [`qwen/qwen3.5-plus-20260420`](https://ailoot.ai/models/sv/#m=qwen%2Fqwen3.5-plus-20260420&route=Ultra&caller=qwen%2Fqwen3.5-plus-20260420&fmt=messages)

#### Alias för metodsökvägar

Använd metodsökvägarna som visas ovan.

#### Relaterade anropar-ID:n

[`qwen/qwen3.5-plus-20260420`](https://ailoot.ai/models/sv/#m=qwen%2Fqwen3.5-plus-20260420&route=Ultra&caller=qwen%2Fqwen3.5-plus-20260420&fmt=messages)

FAQ · Qwen: Qwen3.5 Plus 2026-04-20

Vilka indata och resultat finns?

`POST /v1/chat/completions` · `qwen/qwen3.5-plus-20260420`: `text` → `text` `POST /v1/messages` · `qwen/qwen3.5-plus-20260420`: `text` → `json`, `sse`

Vilka fält använder begäran?

`POST /v1/chat/completions` · `qwen/qwen3.5-plus-20260420`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `qwen/qwen3.5-plus-20260420`: `model`, `messages`, `max_tokens`, `stream`

Vilka gränser gäller?

`POST /v1/chat/completions` · `qwen/qwen3.5-plus-20260420`: `messages.min_items`: `1`

Anslut Ailoot till Claude Code, OpenCode, Hermes eller din app.

## Företaget och dess projektportfölj

Företaget och dess projektportfölj: miljontals kunder; månatlig försäljning för miljarder.

## Köp token med rabatt.

Prenumerationsrabatt för återkommande arbete. Kampanjkoder ger upp till 50% vid tokenköp.

Prenumeration

Välj en rabatterad plan för återkommande anrop.

Kampanjkod upp till 50%

Ange koden vid köpet. Priset räknas om enligt kampanjen.

Kostnader i historiken

Modell, token och belopp sparas för varje anrop.

[Välj prenumeration](https://ailoot.ai/docs/sv/billing/subscriptions/) · [Se modellpriser](https://ailoot.ai/models/sv/)

## Anslut API till produkten som du säljer.

SaaS, appar och botar enligt Ailoots officiella villkor och licensavtal. Begär återförsäljarlicens för vidareförsäljning.

Kommersiell applikation

Bygg text-, bild-, video- och ljudgenerering i tjänstens betalda funktioner.

Återförsäljarlicens

Skicka projektbeskrivning och åtkomstupplägg. Begär skriftliga villkor för användning och vidareförsäljning.

Dokument på webbplatsen

Officiella villkor, licensavtal och databehandlingspolicy finns tillgängliga före anslutning.

[Begär återförsäljarlicens](mailto:support@ailoot.ai) · [Officiella villkor och licensavtal](https://ailoot.ai/legal/offer?lang=sv)

## Ailoot · Företaget och dess projektportfölj





Ailoot bygger på etablerad driftserfarenhet, en stor kundbas, stabil service och löpande KPI-kontroll.





Företaget och dess projektportfölj: miljontals kunder; månatlig försäljning för miljarder.





Ailoot använder denna driftserfarenhet för API-åtkomst till AI-funktioner i kundernas produkter, agenter, applikationer och automatiseringar.
