ベース URL
https://devseek.space/v1
ドキュメント · v2
devseek は OpenAI Chat Completions プロトコルで通信します。ベース URL を変えれば、どの OpenAI SDK でも使えます。
ベース URL
https://devseek.space/v1
認証
Authorization: Bearer dsk-…
モデル
deepseek-v4.1-flash-free
224K トークン · 64K トークン
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
| ルート | 動作 | 注意 |
|---|---|---|
GET /v1/models | モデル一覧 | キーが必要 |
POST /v1/chat/completions | チャット(ストリーミング有無を選択、ツール対応) | SSE には stream: true。使用量のチャンクは最後に届きます |
GET /api/status | 公開状態 JSON | キー不要 |
GET /health | 稼働確認 | キー不要 |
入力は 224K トークン、出力は 64K トークンまでです。モデルを呼ぶ前にリクエストのバイト数から入力サイズを見積もるため(1 トークンあたり約 3.3 バイト)、上限に近いリクエストは少し早めに拒否されることがあります。
セッションとは、開始してまだ終わっていないチャット補完リクエスト 1 件のことです。同時に実行できるセッション数はレベルで決まります:
上限を超えると次が返ります:
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}}
OpenAI 互換のプロバイダーを受け付けるツールなら何でも使えます。以下のベース URL、ご自分のキー、モデル ID を指定してください。並列で動くツールのワーカーはセッション上限以下に保ってください。
| ステータス / コード | 意味 | 対処 |
|---|---|---|
401 missing_api_key / invalid_api_key | キーがない、または誤り | Authorization: Bearer dsk-… を送信してください |
400 invalid_json / invalid_messages | ボディまたは messages の形式が不正 | リクエストを修正してください。そのまま再試行しないでください |
400 context_length_exceeded | 入力が 224K トークン超過 | 会話を短くするか要約してください |
404 model_not_found | 不明なモデル | deepseek-v4.1-flash-free を使用してください |
413 body_too_large | ボディが 4 MB 超過 | コンテキストを減らしてください |
429 session_limit_reached | 同時セッションが多すぎます | リクエストが完了するのを待ってから再試行してください |
503 upstream_saturated / upstream_busy | devseek またはモデルが容量上限です | Retry-After ヘッダーに従って再試行してください |
502 upstream_error | モデルバックエンドの障害 | 再試行しても安全です |