curl --request POST \
--url http://localhost:8080/v1/chat/completions \
--header 'Content-Type: application/json' \
--data '
{
"model": "openai/gpt-5-nano",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}
'
{
"id": "<string>",
"object": "chat.completion",
"created": 123,
"model": "openai/gpt-5-nano",
"choices": [
{
"index": 123,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "<string>",
"refusal": "<string>",
"tool_calls": [
{
"id": "<string>",
"type": "function",
"function": {
"name": "<string>",
"arguments": "<string>"
},
"custom": {
"name": "<string>",
"input": "<string>"
}
}
]
}
}
],
"usage": {
"prompt_tokens": 123,
"completion_tokens": 123,
"total_tokens": 123,
"prompt_tokens_details": {
"cached_tokens": 123,
"cache_write_tokens": 123,
"audio_tokens": 123
},
"completion_tokens_details": {
"reasoning_tokens": 123,
"accepted_prediction_tokens": 123,
"rejected_prediction_tokens": 123,
"audio_tokens": 123
}
},
"system_fingerprint": "<string>",
"service_tier": "<string>"
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}HTTP API
Create a chat completion
Route one chat completion to the provider named by the model string.
POST
/
v1
/
chat
/
completions
curl --request POST \
--url http://localhost:8080/v1/chat/completions \
--header 'Content-Type: application/json' \
--data '
{
"model": "openai/gpt-5-nano",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}
'
{
"id": "<string>",
"object": "chat.completion",
"created": 123,
"model": "openai/gpt-5-nano",
"choices": [
{
"index": 123,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "<string>",
"refusal": "<string>",
"tool_calls": [
{
"id": "<string>",
"type": "function",
"function": {
"name": "<string>",
"arguments": "<string>"
},
"custom": {
"name": "<string>",
"input": "<string>"
}
}
]
}
}
],
"usage": {
"prompt_tokens": 123,
"completion_tokens": 123,
"total_tokens": 123,
"prompt_tokens_details": {
"cached_tokens": 123,
"cache_write_tokens": 123,
"audio_tokens": 123
},
"completion_tokens_details": {
"reasoning_tokens": 123,
"accepted_prediction_tokens": 123,
"rejected_prediction_tokens": 123,
"audio_tokens": 123
}
},
"system_fingerprint": "<string>",
"service_tier": "<string>"
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"code": "insufficient_quota",
"param": "<string>",
"origin": "gateway",
"warpllm_code": "quota_exceeded",
"provider": "deepseek",
"provider_status": 402,
"provider_code": "<string>"
}
}Body
application/json
Fields not listed here are forwarded to the provider untouched.
A provider/model routing string. The prefix is required; an unlisted name is an error, never a guess.
Examples:
"openai/gpt-5-nano"
"deepseek/deepseek-v4-flash"
"openrouter/anthropic/claude-sonnet-4"
Show child attributes
Show child attributes
true returns server-sent events instead of one JSON body.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
"auto", "none", "required", or a named function.
- Option 1
- Option 2
Show child attributes
Show child attributes
Reasoning budget hint for models that accept one.
Response
The completion, whole or streamed.
Example:
"chat.completion"
Your provider/model routing string, not the upstream name.
Example:
"openai/gpt-5-nano"
Show child attributes
Show child attributes
Show child attributes
Show child attributes