Request formats

Three request formats cover the whole catalogue. One ChinaAPI key and one Base URL work across all of them, so send whichever one your client already speaks.

OpenAI

/v1/chat/completions

Use with OpenAI SDKs, Cherry Studio, Cline, Open WebUI, and most tool clients.

Claude

/v1/messages

Route Claude-style message payloads while keeping the same gateway key and quota controls.

OpenAI

/v1/responses

Use with Codex and other clients built on the Responses API. The console marks which models accept it.

Gemini models only Native Gemini requests go to POST /v1beta/models/{model}:generateContent. Only gemini-* models offer it, and not all of them do — each model's entry in Models lists the formats it accepts. Everything else takes one of the three formats above.
Timeouts and billing You are charged only for output that reached your client. If your client disconnects or times out before a non-streaming response is returned, the request is not charged. A streaming request is charged for its input and the output already delivered when the stream ends, and is not charged if no output was delivered. A request that runs out of its time budget before anything is delivered ends with a 504 error and is not charged. To tell us how long your client waits, send the X-Request-Timeout header in seconds; the official OpenAI and Anthropic SDKs already send their timeout.

Multi-turn Responses conversations point at an earlier reply with previous_response_id. If a follow-up comes back with previous_response_not_found, the earlier reply has not been lost: wait ten to twenty seconds and send the same request again rather than rebuilding the conversation from scratch.