DeepSeek V4.1 Flash 1017 and DeepSeek V4 Pro 0813 both work in Cursor through Novita AI’s OpenAI-compatible endpoint, so you can add them as custom models without an adapter, a local proxy, or a separate gateway. The whole setup is one base URL, one API key, and the exact model ID for each model you want in the picker. The table below is the complete configuration; the rest of the guide covers where each value goes, how the two models differ in cost, and what to check when Agent Mode does not behave.
| Cursor setting | Value to paste |
|---|---|
| Provider | OpenAI-compatible |
| OpenAI API key | Your Novita AI key from Key Management |
| Override OpenAI Base URL | https://api.novita.ai/openai |
| Custom model 1 | deepseek/deepseek-v4.1-flash-1017 |
| Custom model 2 | deepseek/deepseek-v4-pro-0813 |
| Optional third model | deepseek/deepseek-v4-flash-0731 |
Model IDs and the base URL match the current Novita AI catalog, checked October 19, 2026.
Before You Start
You need three things:
- A paid Cursor plan. Cursor does not offer personal API keys on Free or Plus; they are included from Premium upward and on the legacy Pro, Pro+, Ultra, Teams, and Enterprise plans. On Teams and Enterprise, own-key requests still carry Cursor’s per-token fee on top of what Novita AI bills, so check both sides of the cost before rolling this out to a team.
- A Novita AI account with credit. Model usage is billed per token by Novita AI, separate from the Cursor subscription.
- The Cursor desktop app, updated. Settings labels move between releases, so match on the field names below rather than exact pixel positions.
One limitation applies before you start: custom API keys cover chat models only. Tab completion keeps using Cursor’s built-in models, and features that depend on Cursor’s own model stack, such as Apply and Composer, are not covered by your Novita AI key. Cursor documents the chat-model limit in its API key help page.
Step 1: Create a Novita AI API Key
Sign in to Novita AI, open Key Management, and create a new key. Copy it immediately and store it in your password manager or local secret store. Treat it like any other bearer token: do not paste it into a repository, a screenshot, or a shared chat.
If the account is new, check that it has a positive balance before wiring Cursor to it. A key with no balance produces authentication errors that look like configuration mistakes.
Step 2: Point Cursor at the Novita AI Base URL
Open Cursor Settings, go to the Models tab, and find the API configuration section. In current builds it is under API Keys.
- Enable the OpenAI API Key toggle.
- Paste your Novita AI key into the OpenAI API key field.
- Enable Override OpenAI Base URL and paste
https://api.novita.ai/openai. - Use Cursor’s Verify button if your build shows one. A rejected key almost always means a truncated paste or a key from a different account.
The base URL is the same endpoint that serves every other Novita AI chat model, so you can point Cursor at one URL and keep several models from different families in the same picker.
Do not append /chat/completions to the base URL field. Cursor appends the route itself. A full endpoint pasted into that field produces 404 responses.
Step 3: Add the DeepSeek Model IDs as Custom Models
Cursor will not discover Novita-hosted models automatically. Click + Add Custom Model once per model and paste the ID exactly:
deepseek/deepseek-v4.1-flash-1017deepseek/deepseek-v4-pro-0813
Both IDs include a date suffix. The suffix is part of the ID, not a version note, so deepseek/deepseek-v4.1-flash and deepseek/deepseek-v4.1-flash-1017 are separate catalog entries and can behave differently. Copy the ID from the model page rather than typing it from memory.
If you also want the text-only revision, add deepseek/deepseek-v4-flash-0731. It has the same 1,048,576-token context window but a different price point, covered below.
After adding the models, open a new chat and confirm that each one appears in the model picker. If a model is missing, reload the Cursor window from the command palette with Developer: Reload Window before changing anything else.
Step 4: Run a First Request in Chat and Agent Mode
Start with Ask Mode and a short prompt, for example “Explain the entry point of this file.” That confirms the key, base URL, and model ID all line up without involving tool calls. Once a normal chat reply works, switch to Agent Mode on a small task such as adding a docstring or renaming a local variable.
If Agent Mode fails while Chat works, isolate the layers before editing settings. Call the same model directly from a shell and confirm the model answers:
curl https://api.novita.ai/openai/chat/completions \
-H "Authorization: Bearer $NOVITA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-v4.1-flash-1017",
"messages": [{"role": "user", "content": "Reply with one sentence about DeepSeek in Cursor."}]
}'
If that request succeeds, the key, URL, and model ID are correct and the remaining problem is in Cursor’s model configuration. If it fails, fix the API side first. For a tool-calling check, send the same request with a small tools array and confirm the response contains a tool_calls entry; that separates a model-side tool-calling problem from a Cursor-side one.
DeepSeek V4.1 Flash vs V4 Pro for Cursor
Both models share the same context window and output ceiling, so the choice comes down to price, input type, and how much reasoning the task needs.
| Model | Model ID | Context | Max output | Input price per 1M | Output price per 1M | Cached input per 1M | Input type |
|---|---|---|---|---|---|---|---|
| DeepSeek V4.1 Flash 1017 | deepseek/deepseek-v4.1-flash-1017 | 1,048,576 | 393,216 | $0.30 | $1.20 | $0.006 | Text and image |
| DeepSeek V4 Pro 0813 | deepseek/deepseek-v4-pro-0813 | 1,048,576 | 393,216 | $1.32 | $3.96 | $0.044 | Text |
| DeepSeek V4 Flash 0731 | deepseek/deepseek-v4-flash-0731 | 1,048,576 | 393,216 | $0.44 | $1.32 | $0.028 | Text |
Pricing and context from the Novita AI model pages and pricing page, checked October 19, 2026.
A Cursor agent loop is input-heavy: every turn resends file contents and tool output. That makes the input price and cache-read price matter more than a one-off chat comparison suggests. Sending 1M input tokens plus 1M output tokens with no cache hits costs $1.50 on V4.1 Flash, $1.76 on V4 Flash 0731, and $5.28 on V4 Pro 0813. Pro is roughly 3.5x the cost of V4.1 Flash for the same token volume.
That does not make Pro the wrong choice. It is the better default when a wrong answer costs more than the tokens, such as long-context planning or knowledge-heavy code review. V4.1 Flash is the better default for routine agent work and for anything that starts with a screenshot or diagram, since it is the only model in this group that accepts image input. DeepSeek V4 Flash 0731 is mostly a compatibility choice for teams already tuned to its behavior; on input, output, and cached input it costs more than the newer V4.1 Flash.
Before committing a team-wide default, run a sample of your own tasks through both models and compare accepted diffs and retry rate. Unit price is only half of the cost equation; a cheaper model that needs three retries is not cheaper. The DeepSeek V4 Pro vs Flash vs V4.1 Flash comparison covers the same tradeoff with the full benchmark table if you need to justify the choice to a team.
Both models list function calling, structured outputs, and serverless delivery on Novita AI, which is what Agent Mode needs in order to act on files and tools. DeepSeek V4.1 Flash 1017 also accepts image input, so a screenshot of a failing UI or a diagram can go straight into the chat without a separate OCR step.
Troubleshooting DeepSeek in Cursor Agent Mode
Most failures fall into a small set of causes. Match the symptom before changing multiple settings at once.
| Symptom | Likely cause | Fix |
|---|---|---|
model not found or a 404 on every request | Model ID typed by hand or missing the date suffix | Copy the exact ID from the model page and re-add the custom model |
| Custom model missing from the picker | Model was not saved, or Cursor has not reloaded the model list | Re-add it with + Add Custom Model, then run Developer: Reload Window |
401 or failed to authenticate | Truncated key, revoked key, or key from another account | Regenerate the key and paste it again; confirm the account has balance |
| Chat works, Agent Mode returns an error | The request includes tool definitions the model or configuration does not handle | Confirm the exact model ID, then repeat the failing task on a smaller file set |
| Agent responds but never edits files | Agent Mode is disabled or the task is outside its tool scope | Enable Agent Mode and retry on a task confined to one file |
| Request too large or context errors | Repository context plus chat history exceeds the effective budget | Narrow the scope with @ file references instead of whole-folder context |
| Slow responses or timeouts | Long tool loops or very large prompts | Break the task into smaller steps; test the same model in Chat Mode |
| Tab completion or Composer ignores the model | Expected with custom API keys | Use Cursor’s built-in models for those features |
Two of these deserve more detail.
Agent Mode failures are not automatically model failures. Cursor sends its own tool schema with each agent request. If the direct request from Step 4 returns a normal answer but Agent Mode still fails, the key and model ID are fine and the issue is in how Cursor is calling the model. Retest with a one-file task before touching Novita AI settings.
A model that never appears in the picker is almost always a missing custom-model entry. Enabling the OpenAI key and base URL only tells Cursor where to send requests; it does not add models to the list. The + Add Custom Model step is separate and easy to skip.
If a failure persists after these checks, capture the exact error text from Cursor’s output panel. It distinguishes authentication, routing, and model-level errors quickly, and it is the fastest input for a support request.
FAQ
Can I use DeepSeek in Cursor without a paid Cursor plan?
No. Cursor’s own-API-key path is available on paid plans from Premium upward and on the legacy Pro, Pro+, Ultra, Teams, and Enterprise plans; Free and Plus do not include it. Once you are on an eligible plan, model usage is billed by Novita AI, not Cursor, and you can check the current per-token rates on the Novita AI pricing page.
Which DeepSeek model should I add to Cursor first?
Start with DeepSeek V4.1 Flash 1017. At $0.30 per 1M input tokens and $1.20 per 1M output tokens it is the cheapest of the current DeepSeek V4 entries on Novita AI, and it accepts both text and image input, which makes it the more useful default for agent work. See the DeepSeek V4.1 Flash 1017 model page for the full spec.
Does Agent Mode work with a custom DeepSeek model?
It can, provided the model ID is correct and the model supports function calling. Both DeepSeek V4.1 Flash 1017 and DeepSeek V4 Pro 0813 list function calling on Novita AI. If Agent Mode fails while Chat works, test the same model ID directly against the endpoint with a tool definition, then compare the result with the error Cursor reports.
Why does Cursor say the DeepSeek model was not found?
The model ID is wrong, usually because the date suffix was dropped or typed by hand. Cursor sends whatever string you entered to Novita AI, and Novita AI matches it exactly. Re-add the model with the ID copied from the model page, for example deepseek/deepseek-v4-pro-0813 on DeepSeek V4 Pro 0813.
Is DeepSeek V4 Pro worth the higher price in Cursor?
It is when the task is reasoning-heavy and a bad answer is expensive. V4 Pro 0813 costs $1.32 per 1M input tokens and $3.96 per 1M output tokens, against $0.30 and $1.20 for V4.1 Flash. For routine edits and long agent loops, Flash is usually the better spend; for long-context planning and knowledge-heavy review, Pro’s higher unit price can still be cheaper than rework. The DeepSeek V4 Pro 0813 model page lists the current specs.
Does Cursor’s Zero Data Retention apply when I use my own key?
No. Cursor documents that its Zero Data Retention policy does not apply when you bring your own API key; data handling follows the provider’s policy, and the key itself is sent with each request rather than stored on Cursor’s servers. Check the provider’s privacy terms before using customer code in any third-party editor.