Resellers/Vendor routing
Choosing Vendors and Their Order
One model can be served by several vendors; for example, deepseek-v4.1-flash can be served by deepseek, opencode, or volcengine. By default the platform picks a vendor by priority and moves to the next one when a vendor is unavailable. The price depends only on the model, never on which vendor serves the request. To control this yourself, add a provider object to the request body.
On this pageexpand_more
provider fieldslink
onlyUse only the listed vendors, for example {"only": ["deepseek"]}.
ignoreNever use the listed vendors, for example {"ignore": ["opencode"]}.
orderTry the listed vendors in this order, moving to the next one when a vendor is unavailable. Vendors you do not list still come last as a fallback; to exclude them, combine order with only or ignore.
Vendor IDslink
provider only matters for models with more than one vendor. Closed models such as Claude, GPT, Gemini, and Grok are served only by their official vendor and need no preference. The vendor IDs in use today are listed below. The vendors that serve a given model are shown in the Vendors row of its model detail page (in default priority order) and in the providers field of GET https://wokey.ai/api/models.
| Vendor ID | Vendor |
|---|---|
| deepseek | DeepSeek (official) |
| moonshot | Kimi (official, Moonshot AI) |
| zhipu | GLM (official, Zhipu) |
| minimax | MiniMax (official) |
| volcengine | Volcengine Ark: Doubao, plus selected DeepSeek, GLM, Kimi, and MiniMax models |
| opencode | OpenCode Go: Tencent Hy4, plus selected DeepSeek, GLM, Kimi, and MiniMax models |
| ollama | Ollama Cloud: selected DeepSeek, GLM, Kimi, and MiniMax models |
Exampleslink
curl https://api.wokey.ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [
{ "role": "user", "content": "Hello" }
],
"provider": {
"order": ["volcengine", "deepseek"],
"ignore": ["opencode"]
}
}'The OpenAI and Anthropic Python SDKs reject unknown top-level arguments, so pass provider in extra_body.
from openai import OpenAI
client = OpenAI(base_url="https://api.wokey.ai/v1", api_key="YOUR_API_KEY")
response = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Hello"}],
extra_body={"provider": {"only": ["deepseek"]}},
)
print(response.choices[0].message.content)Noteslink
- /chat/completions, /responses, and /messages all accept it in the same form.
- An unknown vendor ID returns 400 invalid_request_error. A preference that excludes every vendor of the model returns 404 no_eligible_provider.
- provider only narrows the choice. It applies together with any vendor restriction set on the API key and cannot re-enable a vendor the key excludes.
- To keep the prompt cache, a conversation that has moved to another vendor stays there instead of switching back to the first vendor in order.
- provider is a routing directive for the platform and is never forwarded upstream.