Compatibility matrix · verified routes, not guessed capabilities

Choose the route before you change the model.

AIWave keeps one key, one USD balance, and one domain. It does not pretend that OpenAI and Anthropic use the same wire protocol.

Model-family request contract

A shared account removes commercial re-integration. The request and response shape still follows the model family.

FamilyRecommended route and clientOutput limitSampling fieldsStreaming responseLast verified
Chinese models/v1/chat/completions
OpenAI-compatible client
max_tokens in current quickstart examples; verify model-specific exceptionstemperature and top_p are model-specificOpenAI-compatible SSE chunks on documented routes2026-09-24
tool-call matrix; streaming coverage remains partial
GPT/v1/chat/completions
Existing OpenAI client
Use max_completion_tokens when the model rejects max_tokens; current GPT route applies its verified parameter ruleDo not force a non-default value unless the selected model accepts itOpenAI-compatible shape; streaming not separately certified for every GPT model2026-09-28
Claude/v1/messages
Anthropic SDK or native HTTP
max_tokensThe verified route removes deprecated temperature and top_p fields before upstream deliveryAnthropic event stream; Chatbox path verified, every native event type not yet certified2026-10-01
Honest boundary.

A Claude request sent to /v1/chat/completions can be accepted and billed, but it returns an Anthropic envelope. No OpenAI choices field is present, so an OpenAI SDK parser fails. Use /v1/messages instead.

Claude: keep the account, use the native client.

The key, balance, and domain stay the same. Only the protocol-specific client changes.

Anthropic Python SDK
# Set ANTHROPIC_API_KEY to your AIWave key before running this example.
from anthropic import Anthropic
client = Anthropic(base_url="https://aiwave.live")
message = client.messages.create(model="claude-haiku-4-5-20251001", max_tokens=64, messages=[{"role": "user", "content": "Reply with exactly: OK"}])
print(message.content[0].text)
Native HTTP
# Export AIWAVE_API_KEY in your shell before running this request.
curl https://aiwave.live/v1/messages \
  -H "x-api-key: $AIWAVE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-haiku-4-5-20251001","max_tokens":64,"messages":[{"role":"user","content":"Reply with exactly: OK"}]}'

Examples use placeholders. Controlled route verification is recorded separately; never paste a real key into shared code or screenshots.

Known failure modes

Match the symptom before changing credentials or routes.

SymptomCauseFix
OpenAI client reports a missing choices field for ClaudeThe Claude route returned its native Anthropic envelopeUse the Anthropic SDK or POST /v1/messages
max_tokens is unsupported on a GPT modelThe model expects max_completion_tokensSend max_completion_tokens; retain the upstream error body when reporting a recurrence
Claude reports that temperature or top_p is deprecatedThe model requires those fields to be omittedThe verified AIWave Claude route removes both fields; if the error returns, keep the request ID and contact support
A stream parser receives unfamiliar event typesAn Anthropic event stream was parsed as OpenAI SSE chunksUse the matching Anthropic stream iterator for Claude
Run one bounded check before moving a workload.

Start with the quickstart, copy the exact fields from client setup, then compare the returned shape with this matrix.