OpenAI-compatible API server for DeepSeek
npm install @ziuchen/deepseek-apiAn OpenAI-compatible DeepSeek API proxy server implemented with Node.js 20+.
- ✅ Fully compatible with OpenAI API format
- ✅ Supports streaming responses (SSE)
- ✅ Supports DeepSeek R1 reasoning chain (reasoning_content)
- ✅ Supports online search mode
- ✅ Optional account pool rotation
- ✅ Local PoW computation (WASM)
- ✅ Zero production dependencies
| Model ID | Reasoning Chain | Online Search |
|---------|-----------------|---------------|
| deepseek-chat | ❌ | ❌ |
| deepseek-reasoner | ✅ | ❌ |
| deepseek-chat-search | ❌ | ✅ |
| deepseek-reasoner-search | ✅ | ✅ |
Aliases: deepseek-v3 → deepseek-chat, deepseek-r1 → deepseek-reasoner
``bash`
pnpm install
`bash`
cp .env.template .envEdit the .env file
`bash`
pnpm dev
`bash`
pnpm build
pnpm start
| Variable | Description | Default |
|----------|-------------|---------|
| LISTEN_HOST | Listening address | 127.0.0.1 |LISTEN_PORT
| | Listening port | 5001 |GATEWAY_KEYS
| | Gateway keys (comma-separated), required when using account pool mode | - |ACCOUNTS_JSON
| | Account pool JSON array | [] |
List available models.
Create a chat completion.
Request example:
`bash`
curl http://127.0.0.1:5001/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_DEEPSEEK_TOKEN" \
-d '{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'
Pass DeepSeek's Bearer Token directly in the Authorization header.
You can obtain the token from DeepSeek web app's local storage under the key userToken.
1. Configure GATEWAY_KEYS and ACCOUNTS_JSON
2. Use a gateway key as the Authorization header
3. The server will automatically choose an account from the pool and log in
ACCOUNTS_JSON format:
`json`
[
{"email": "user@example.com", "password": "xxx"},
{"mobile": "13800138000", "password": "xxx"}
]
```
src/
├── index.ts # Main entry - HTTP server
├── types.ts # Type definitions
├── constants.ts # Constants and env config
├── utils.ts # Utility functions
├── pow.ts # PoW WASM computation
├── account.ts # Account pool management
├── stream-parser.ts # DeepSeek stream response parser
├── deepseek.ts # DeepSeek API calls
└── routes.ts # Route handlers
public/
└── sha3_wasm_bg.*.wasm # PoW computation WASM file