Authentication & Base URL
Start by generating your key on the Get API key page via Google or email. You receive a single active key per account that replaces any previous one immediately.
Use this key in the Authorization header for all requests. The base URL for the DeepSeek coding API is fixed and works with any OpenAI-compatible client.
Change the base_url in your SDK to point to our servers. No phone number is required for signup.
Chat Completions Endpoint
Send your coding prompts to the POST /v1/chat/completions endpoint. The model ID to specify is uncensored.
This endpoint handles text input and returns text output. It does not support images, audio, or embeddings.
Use the standard message format with roles like user and assistant. The API refuses nothing except sexual content involving minors.
Streaming & Usage Data
Enable streaming by setting stream: true in your request. You receive chunks of text as they are generated.
The final chunk contains the complete usage data, including token counts for both input and output.
This approach reduces perceived latency for long code blocks. It is ideal for building interactive coding assistants.
Tool Calling & JSON Mode
Define tools in your request to allow the model to call functions. Use tool_choice to control when the model decides to call a tool.
Set response_format to {"type": "json_object"} for strict JSON output. This ensures your parser receives valid data every time.
Function calling works seamlessly with the uncensored model. You can integrate it into your existing workflow without changes.
Parameters: Temperature, Top-P, Seed
Control creativity with temperature. Higher values produce more varied code suggestions.
Use top_p to limit the token pool. Set seed for reproducible results during testing.
Other parameters include stop sequences, presence_penalty, and frequency_penalty. Adjust these to fine-tune the model's behavior for your specific use case.
Model ID & Context Window
The model ID is always uncensored. It runs on our servers and is not a resold vendor model.
The context window is 100,000 tokens total. This includes both the prompt and the completion.
Max output per request is 16,000 tokens. If you do not set max_tokens, the limit defaults to 2,048 tokens. Plan your prompts accordingly to fit within these constraints.
Rate Limits & Errors
You are limited to 300 requests per minute per key. Concurrency is capped at 8 simultaneous requests.
The request body must not exceed 8 MB. Errors like 401 indicate an invalid key. 402 means you have no credit. 429 signals rate limiting.
Errors and refusals do not consume your prepaid credit. Pay only for successful token usage. Top up with crypto when needed.
cURL
curl https://api.deepseekcodingapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "explain how this regex matches email addresses"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.deepseekcodingapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.deepseekcodingapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Streaming
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)