DeepSeek deepseek¶
DeepSeek's platform API — note the unprefixed paths: this API serves /chat/completions without a /v1. Routes are deepseek/<model> over openai-chat, paid by the deployment's own API key.
How we authenticate¶
There is no login flow here. DeepSeek issues a long-lived API key in its own console; an operator stores it once in the Skarbiec vault, and at final use the gateway redeems the deployment's capability for this provider through the local entitlements router, reduces the stored document to the bare key, and sends it as Authorization: Bearer <key>. The key has no refresh path and no invented expiry — it works until DeepSeek revokes it or an operator replaces it in the vault.
The two failure shapes point at two different repairs: a 503 credential_unauthorized means no capability, read grant or trust material produced a key at final use — repair the authorization chain (runbook); a 502 provider_failure with a provider_authentication: prefix means the key was produced and DeepSeek rejected it — repair the provider account.
Models¶
Pinned catalog rows, widened (never replaced) by live discovery through the models endpoint: deepseek/deepseek-chat, deepseek/deepseek-reasoner.
Plan usage¶
DeepSeek publishes no free plan-usage report for API keys. The ledger records that absence as the provider's own answer, never as a zero (subscription).
Endpoints¶
| Chat | https://api.deepseek.com/chat/completions |
| Model discovery | https://api.deepseek.com/models |
| Auth header | Authorization: Bearer <key> |
| Trusted host | api.deepseek.com |
| Base URL override | BRAMA_PROVIDER_DEEPSEEK_BASE_URL, validated with the refusals in provider |