Chat completions

POST /v1/chat/completions is the main product. It accepts the OpenAI Chat Completions body.

Minimum body

{
  "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
  "messages": [{"role": "user", "content": "Hello"}]
}

Parameters we honor

FieldNotes
modelMust be a live /v1/models id
messagesStandard roles: system, user, assistant, tool
streamSee Streaming
temperature, top_p, max_tokensForwarded when the host accepts them
tools / tool_choiceSee Tool calling
web_searchProxy-side search; see Web search
deep_researchMulti-search report. stream: true sends the loop, then the report. Keep a timeout of at least 5 minutes; see Deep research
mcp / tools: [{type:"mcp"}]See MCP
reasoning_effort / thinkingDeepSeek only if reasoning compat is on

Content may be a string or a multimodal array (text, image_url, file) when file ingestion is enabled.

What we do not claim

This is not a full OpenAI clone. Assistants API, image generation, embeddings, audio, and batch jobs are not exposed. If a field is ignored, the host still runs the completion.

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://api.proxy.gonka.gg/v1",
    api_key="sk-your-api-key-here",
)

response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-V4-Flash-0731",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

Unknown proxy fields (web_search, deep_research, mcp, MCP tool types) belong in extra_body so the official SDK does not strip them.

TypeScript

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.proxy.gonka.gg/v1",
  apiKey: "sk-your-api-key-here",
});

const response = await client.chat.completions.create({
  model: "deepseek-ai/DeepSeek-V4-Flash-0731",
  messages: [{ role: "user", content: "Hello!" }],
});