Create and store the key
Create the key in Console and load it from AIWAVE_API_KEY. Keep it out of source control and client-side code.
Create a key, set the AIWave base URL, pin a verified model ID, and inspect the usage returned with the response.
Use the same model ID and payload shape in the code and in your acceptance note.
Create the key in Console and load it from AIWAVE_API_KEY. Keep it out of source control and client-side code.
Point the OpenAI-compatible client to https://aiwave.live/v1.
Start with deepseek-v4-pro, then use the same test pattern for glm-5.1 or kimi-k3.
Check the response, status, usage fields, request record, and charge before you move more traffic.
Use the protocol that belongs to the selected family. This prevents a model ID from being sent to a path that returns a misleading 404 or an unreadable response envelope.
Route matrix checked 2026-09-10| Family | Route | Protocol | Boundary |
|---|---|---|---|
| GPT | /v1/chat/completions | OpenAI-compatible | Route facts recorded; public price pending |
| Chinese models | /v1/chat/completions | OpenAI-compatible | Public rate card available |
| Claude | /v1/messages | Anthropic native | Native route; compatible path is model-dependent |
| Gemini | /v1beta/models/{id}:generateContent | Gemini native | Native route; image IDs do not use /v1/images/generations |
| Image routes | /v1/images/generations or provider-native | Route-specific | Check the model-family contract before sending media |
See Models for exact IDs and Request Recovery when the route and model do not agree.
Each example uses the same verified route and model ID.
import os
from openai import OpenAI
client = OpenAI(base_url="https://aiwave.live/v1", api_key=os.environ["AIWAVE_API_KEY"])
response = client.chat.completions.create(model="deepseek-v4-pro", messages=[{"role": "user", "content": "Hello"}])
print(response.usage)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://aiwave.live/v1", apiKey: process.env.AIWAVE_API_KEY });
const response = await client.chat.completions.create({ model: "deepseek-v4-pro", messages: [{ role: "user", content: "Hello" }] });
console.log(response.usage);curl "https://aiwave.live/v1/chat/completions" \
+ -H "Authorization: Bearer $AIWAVE_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{"model":"deepseek-v4-pro","messages":[{"role":"user","content":"Hello"}]}'OpenClaw, WorkBuddy, and a custom agent can use the same AIWave key and USD balance. Start with an OpenAI-compatible model and exact model ID, then use the native route when the model family requires it.