models

qwen3-coder-plus-2025-09-23

Markdown · JSON

qwen3-coder-plus-2025-09-23

Qwen3-Coder-Plus-2025-09-23 is Alibaba’s momentopname van september 2025 voor programmeeragents, met door de maker beschreven verbeteringen in de robuustheid van toolaanroepen en de veiligheid van code.

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

Qwen3-Coder-Plus-2025-09-23 is de momentopname van 23 september 2025 van Alibaba’s model voor programmeeragents. Vergeleken met de momentopname van 22 juli beschrijft de maker een verbeterde robuustheid in downstreamtaken en toolaanroepen, samen met een verhoogde codeveiligheid.

Lever het codepad en de beperkingen ervan aan

Lever de betrokken bestanden, het verwachte gedrag en concrete foutuitlokkende of representatieve invoer aan. Benoem de interfaces, machtigingen en aannames over gegevens die de wijziging moet behouden. Vermeld voor een veiligheidsgerichte beoordeling het specifieke gedrag of de invoergrens die moet worden geïnspecteerd.

Maak toolfeedback deel van het bewijsmateriaal

Wanneer de omringende toepassing een softwareomgeving biedt, bewaar dan tussen stappen de werkelijke commandoresultaten en bijgewerkte broncode. Vraag om een gerichte patch of een controle die de mogelijke oorzaak van een fout onderscheidt. De toepassing bepaalt welke handelingen kunnen worden uitgevoerd.

Toets de wijziging aan werkelijk gedrag

Voer het betrokken pad uit en inspecteer de uitvoer en foutafhandeling. Beoordeel waar relevant de gewijzigde machtigingen en invoervalidatie. Bewaar deze momentopnamenaam bij de bron, de patch en het verificatieresultaat, zodat een evaluatie aan de septemberrelease gekoppeld blijft.

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen3-coder-plus-2025-09-23

qwen3-coder-plus-2025-09-23

Alibaba /qwen3-coder-plus-2025-09-23

Aan de slag

Qwen3-Coder-Plus-2025-09-23 is Alibaba’s momentopname van september 2025 voor programmeeragents, met door de maker beschreven verbeteringen in de robuustheid van toolaanroepen en de veiligheid van code.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Invoer
text
Uitvoer
text
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
qwen3-coder-plus-2025-09-23
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
Afhankelijk van het model
Standaard—
Veldmessages[].contentTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: Tekstgesprek
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Combinaties van invoermaterialen

Tekst · UTF8-tekst

messages[].content

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages
Parametermaterial_typesContracttext
ParametermessagesContractberichtenarray met de structuur role/content
Parameterfile_materialContractwerkelijk UTF-8-document ingevoegd als letterlijke tekst; er wordt geen bestands-ID afgeleid
Parameteroptional_controlsContractstream
Parametercontrol_scopeContractTekstgesprek; stream is een booleaanse waarde en is standaard false.
Parameteroutput_modalitiesContracttext
Parameterhosted_operationsContractfalse
Parametermultimodal_input_bindingContractnull

Methodealiasnamen: /chat/completions

Levenscyclus: synchronous_or_streamed

Stuur het exacte model-ID mee met messages.

Contextlengte is geen uitvoerlimiet.

Een tekstbestand kan letterlijke tekst aanleveren; beeld-, audio- en bestandsobjectinvoer vereisen een exacte koppeling.

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Niet opgegeven Wanneer de snelle modus geselecteerd is
Flex-modus
Niet opgegeven Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt

Ailoot-tarieven

Prijzen per configuratie

ConfiguratieTariefstaffelKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefKosten
Invoer · Invoertokens $0.001144 / 1K tokens
Uitvoer · Uitvoertokens $0.00458 / 1K tokens
Invoer · Cache lezen $0 / 1K tokens
Invoer · Cache schrijven $0 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · OpenAI Chat

curlPython SDK
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-coder-plus-2025-09-23","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
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-coder-plus-2025-09-23", 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"))

Resultaten ophalen en opslaan

Ailoot Ultra · OpenAI Chat

json of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar elke keuze en de bijbehorende inhoud, toolaanroepen en redeneringen. Voeg in SSE delta’s samen per keuze-/toolindex en bewaar de uiteindelijke reden van beëindiging en de verbruiksgegevens.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
Veldchoices[].indexTypeinteger
Veldchoices[].message.contentTypestring|null
Veldchoices[].message.tool_callsTypetool_call[]
Veldchoices[].message.reasoning_contentTypestring
Veldchoices[].message.reasoning_detailsTypeobject|array
Veldchoices[].finish_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot Ultra qwen3-coder-plus-2025-09-23

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

qwen3-coder-plus-2025-09-23

Ailoot Ultra · Anthropic Messages POST /v1/messages qwen3-coder-plus-2025-09-23

qwen3-coder-plus-2025-09-23

Alibaba /qwen3-coder-plus-2025-09-23

Aan de slag

Qwen3-Coder-Plus-2025-09-23 is Alibaba’s momentopname van september 2025 voor programmeeragents, met door de maker beschreven verbeteringen in de robuustheid van toolaanroepen en de veiligheid van code.

Toegestane invoer
Tekst
Resultaten
json · sse

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Anthropic Messages POST /v1/messages
Invoer
text
Uitvoer
json, sse
Uitvoerformaat
JSON of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
qwen3-coder-plus-2025-09-23
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limietenStandaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
user, assistant
Standaard—
Veldmessages[].contentTypestringVereisteVereistWaarden en limietenStandaard—
Veldmax_tokensTypeintegerVereisteVereistWaarden en limietenStandaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Combinaties van invoermaterialen

Tekst · UTF-8-tekst

messages[].content als tekenreeks

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages, max_tokens
Parameteroptional_controlsContractstream
Parametermaterial_typesContracttext
Parametertext_file_materialContractLees het werkelijke UTF-8-document en plaats de tekst ervan in de aangegeven invoer of in de inhoudstekenreeks van een bericht.

Levenscyclus: synchronous_or_streamed

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Niet opgegeven Wanneer de snelle modus geselecteerd is
Flex-modus
Niet opgegeven Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt

Ailoot-tarieven

Prijzen per configuratie

ConfiguratieTariefstaffelKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefKosten
Invoer · Invoertokens $0.001144 / 1K tokens
Uitvoer · Uitvoertokens $0.00458 / 1K tokens
Invoer · Cache lezen $0 / 1K tokens
Invoer · Cache schrijven $0 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Anthropic Messages

Volledige minimale JSON-bodycurl · gebruik je UTF-8-documentPython · sla het volledige resultaat op
{
  "model": "qwen3-coder-plus-2025-09-23",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
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-coder-plus-2025-09-23', '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
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-coder-plus-2025-09-23', '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))

Resultaten ophalen en opslaan

Ailoot Ultra · Anthropic Messages

JSON of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar alle inhoudsblokken, handtekeningen van redeneringen en werkelijke toolgebruik-ID’s. Voeg alle SSE-blokdelta’s samen; het eerste tekstblok is niet de volledige uitvoer.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
VeldidTypestring
VeldmodelTypestring
Veldcontent[]Typetext|thinking|tool_use|other content block
Veldstop_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot Ultra qwen3-coder-plus-2025-09-23

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

qwen3-coder-plus-2025-09-23

FAQ · qwen3-coder-plus-2025-09-23
Welke invoer en resultaten zijn beschikbaar?

POST /v1/chat/completions · qwen3-coder-plus-2025-09-23: text → text

POST /v1/messages · qwen3-coder-plus-2025-09-23: text → json, sse

Welke velden gebruikt het verzoek?

POST /v1/chat/completions · qwen3-coder-plus-2025-09-23: model, messages, stream

POST /v1/messages · qwen3-coder-plus-2025-09-23: model, messages, max_tokens, stream

Welke limieten gelden?

POST /v1/chat/completions · qwen3-coder-plus-2025-09-23: messages.min_items: 1

Meer details

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement
Kies een abonnement met korting voor je terugkerende verzoeken.
Promotiecode tot 50%
Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.
Kosten in de geschiedenis
Model, tokens en bedrag worden per verzoek bewaard.

Kies een abonnement · Bekijk modelprijzen

Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie
Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.
Resellerlicentie
Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.
Documenten op de site
Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

Vraag een resellerlicentie aan · Aanbodvoorwaarden en licentieovereenkomst