URL DE BASE
https://devseek.space/v1
DOCS · v2
devseek parle le protocole OpenAI Chat Completions. N'importe quel SDK OpenAI fonctionne dès que vous changez l'URL de base.
URL DE BASE
https://devseek.space/v1
AUTHENTIFICATION
Authorization: Bearer dsk-…
MODÈLE
deepseek-v4.1-flash-free
224K tokens · 64K jetons
curl https://devseek.space/v1/chat/completions \
-H "Authorization: Bearer $DEVSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash-free",
"stream": true,
"messages": [{"role": "user", "content": "Write a binary search in Rust"}]
}'import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEVSEEK_API_KEY"],
base_url="https://devseek.space/v1",
)
stream = client.chat.completions.create(
model="deepseek-v4.1-flash-free",
messages=[{"role": "user", "content": "Write a binary search in Rust"}],
max_tokens=4096,
stream=True,
)
for chunk in stream:
if chunk.choices:
print(chunk.choices[0].delta.content or "", end="")import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.DEVSEEK_API_KEY,
baseURL: "https://devseek.space/v1",
});
const stream = await client.chat.completions.create({
model: "deepseek-v4.1-flash-free",
messages: [{ role: "user", content: "Review this diff for bugs" }],
stream: true,
});
for await (const c of stream) process.stdout.write(c.choices[0]?.delta?.content ?? "");from openai import OpenAI
client = OpenAI(api_key=KEY, base_url="https://devseek.space/v1")
tools = [{"type": "function", "function": {
"name": "run_tests",
"description": "Run the test suite and return failures",
"parameters": {"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"]}}}]
r = client.chat.completions.create(
model="deepseek-v4.1-flash-free", tools=tools,
messages=[{"role": "user", "content": "Tests in src/ fail. Investigate."}])
print(r.choices[0].message.tool_calls)# opencode.json — add devseek as an OpenAI-compatible provider
{
"provider": {
"devseek": {
"npm": "@ai-sdk/openai-compatible",
"options": { "baseURL": "https://devseek.space/v1", "apiKey": "{env:DEVSEEK_API_KEY}" },
"models": { "deepseek-v4.1-flash-free": { "limit": { "context": 224000, "output": 65536 } } }
}
}
}
# aider
export OPENAI_API_BASE=https://devseek.space/v1 OPENAI_API_KEY=$DEVSEEK_API_KEY
aider --model openai/deepseek-v4.1-flash-free
| Chemin | Ce qu'elle fait | Remarques |
|---|---|---|
GET /v1/models | Lister les modèles | Clé requise |
POST /v1/chat/completions | Chat, avec ou sans streaming, avec outils | stream: true pour SSE ; le bloc d'usage arrive en dernier |
GET /api/status | JSON d'état public | Sans clé |
GET /health | Test de vie | Sans clé |
L'entrée est limitée à 224K tokens et la sortie à 64K tokens. Nous estimons la taille de l'entrée à partir des octets de la requête (environ 3,3 octets par token) avant d'appeler le modèle, donc une requête proche de la limite peut être refusée un peu tôt.
Une session est une requête de chat completion commencée et pas encore terminée. Votre niveau fixe le nombre de sessions simultanées :
Au-delà de votre limite, vous recevez :
HTTP/1.1 429 Too Many Requests
Retry-After: 1
{"error":{"message":"Level 1 allows 3 concurrent sessions; 3 are already running. …",
"type":"rate_limit_error","code":"session_limit_reached",
"level":1,"session_limit":3,"sessions_in_use":3}}
Tout outil qui accepte un fournisseur compatible OpenAI fonctionne. Utilisez l'URL de base, votre clé et l'ID de modèle ci-dessous. Gardez les workers d'outils parallèles au niveau de votre limite de sessions ou en dessous.
| Statut / code | Signification | Que faire |
|---|---|---|
401 missing_api_key / invalid_api_key | Clé absente ou incorrecte | Envoyez Authorization: Bearer dsk-… |
400 invalid_json / invalid_messages | Corps ou messages mal formés | Corrigez la requête ; ne réessayez pas telle quelle |
400 context_length_exceeded | Entrée de plus de 224K tokens | Raccourcissez ou résumez la conversation |
404 model_not_found | Modèle inconnu | Utilisez deepseek-v4.1-flash-free |
413 body_too_large | Corps de plus de 4 MB | Envoyez moins de contexte |
429 session_limit_reached | Trop de sessions simultanées | Attendez la fin d'une requête, puis réessayez |
503 upstream_saturated / upstream_busy | devseek ou le modèle est à saturation | Réessayez après le délai indiqué par l'en-tête Retry-After |
502 upstream_error | Le backend du modèle a échoué | Vous pouvez réessayer sans risque |