OpenAI-compatible chat completions backed by DeepSeek V4.1 Flash, DeepSeek's current Flash model. Thinking is on by default and returns in message.reasoning_content; send thinking={"type":"disabled"} to turn it off. Reasoning tokens are billed at the output rate within usage.completion_tokens. Tool calling and streaming are supported. Set model to deepseek-v4.1-flash; served on /v1/chat/completions only.
Try in Playground →Authentication
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
Create an API Key in the console to start.
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | Yes | Model ID, here deepseek-v4.1-flash. |
| messages | array | Yes | Array of messages; each has role (system/user/assistant) and content. content may be a string, or an array of {type:text} and {type:image_url} parts for image understanding (multimodal/vision). |
| stream | boolean | No | Stream the response as SSE. Default false. |
| temperature | number | No | Sampling temperature, 0–2. |
| max_tokens | integer | No | Maximum number of tokens to generate. |
| web_search | boolean | No | Set true to enable web search: the gateway augments the prompt with live results (citing sources) before the model answers. Can also be triggered via a tools entry {"type":"web_search"}. |
| thinking | object | No | Thinking switch: {"type": "disabled"} turns thinking off for a direct, faster answer with fewer output tokens. When omitted, thinking is on and the reasoning returns in message.reasoning_content. |
Request example
curl https://nezhagate.com/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"}], "stream": false}'Response
{
"id": "chatcmpl_xxx",
"object": "chat.completion",
"model": "deepseek-v4.1-flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"reasoning_content": "The user is greeting me, so a short friendly reply fits...",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 42,
"total_tokens": 51,
"completion_tokens_details": {"reasoning_tokens": 31}
}
}Image input (Vision)
Put an image in the message content array and the model will analyze it (visual Q&A, reading text / OCR, …). image_url accepts a public image link or an inline base64 data URL (data:image/png;base64,...). Available on multimodal models (gpt-5.5, gemini series, …).
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "deepseek-v4.1-flash", "messages": [{"role": "user", "content": [{"type": "text", "text": "What is in this picture?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'Error codes
Every error body carries error.message / error.type / error.code / error.param - branch on code; the full list is in the integration guide.
| HTTP | code | Description |
|---|---|---|
| 401 | invalid_api_key | API Key missing or invalid |
| 402 | insufficient_quota | Insufficient balance or Key over quota |
| 400 | invalid_request | Unsupported model or parameter |
| 429 | rate_limit_exceeded | Upstream rate limit |
| 502 | upstream_error | All upstream routes failed |