Request Format
All requests use JSON and require these headers:Successful Responses
Response shapes vary by endpoint, each following its own API spec:- Chat Completions — OpenAI standard response format
- Claude Messages — Anthropic standard response format
- Gemini — Google standard response format
- Asynchronous Tasks — QWave API unified task response format
Billing Field (usage.cost)
Text and embedding endpoints return the actual charge of each call (quota, integer) in theusage object:
- Non-streaming →
usage.costin the response body - Streaming (SSE) → the last data frame carrying
usage(see Streaming) - Async tasks →
pre_consumed_coston submission (pre-deduction),costin the terminal state (settlement;0after refund on failure/cancellation)
Error Responses
Error structures differ slightly across endpoints: Synchronous endpoints (chat / messages / images, etc.) — OpenAI-compatible format with atype field:
/v1/tasks/...) — Simplified format with only message + code: