Introduction
DeepSeek V4 Pro is the deliberate half of the DeepSeek V4 pair, served here on one OpenAI-compatible endpoint at /v1/chat/completions. It reads up to 1,048,576 tokens, reasons at high effort by default and can write a single reply of up to 384,000 tokens.
Low effort is there for quick drafts. Message content is text only, up to 256 messages per request; up to 128 tools, JSON output through response_format and SSE streaming are available, and input, cached input and output are metered separately.
Key features & highlights
High effort as the starting point
Review, migration and security work is where the extra reasoning pays, so this endpoint starts at high and leaves low for drafts. Effort is spent as output tokens, so it lands on the same bill and counts against the same max_tokens you set, not a separate rate.
Specification, code and tests in one request
1,048,576 tokens lets the design document, the implementation and the test suite travel together, so the model compares them instead of trusting your summary. Put invariant constraints in the system message and the material below it, oldest first, so every divergence is anchored to something the model can quote.
Room to write the whole answer
A reply can reach 384,000 tokens: an ordered plan, the SQL for each step and the queries that verify it fit in one response. The default of 32,768 truncates without an error, so size max_tokens to the deliverable.
Request parameters
| Parameter | Required | Description |
|---|---|---|
messages | Yes | At most 256 ordered turns, text content only. Send back |
reasoning_effort | No | none, low or high, high by default. none skips the reasoning pass entirely, which is the only way to keep reasoning tokens off your bill — they are charged as output. |
stop | No | Up to 4 sequences, as a string or an array. The reply ends as soon as the model writes one of them, and the matched text itself is left out. at least 1 characters · at least 1 items · at most 4 items |
max_tokens | No | Caps the reply at 384,000. The default of 32,768 will truncate a migration plan without an error. |
tools | No | Up to 128 function definitions per request. at most 128 items |
parallel_tool_calls | No | true or false, default true: the model may request several tool calls in one turn. Default: |
tool_choice | No | auto, none, required, or an object naming the function to call. |
response_format | No | Request a JSON object when the answer is consumed by code. |
Pricing
Input $1.32 / Output $3.96 per 1 million tokens
Use cases
Spec versus implementation audit
Send the design document and the code that claims to implement it in one request and ask for every divergence, ranked by blast radius. Neither side has to be summarised, so a missing invariant is caught by comparison rather than by memory.
Security passes at high
Point high effort at an authentication path or a funds-movement flow and ask for exploitable sequences, not style notes. The cost of the extra effort is output tokens; the cost of missing a privilege-escalation path is not.
Migration planning across a whole schema
Give the model every migration file plus the current table definitions and ask for an ordered plan with the rollback for each step. The plan, the SQL and the verification queries can all come back in one response.
Prompt guide & pro tips
Write the acceptance test into the system message
High effort is wasted on a vague brief. State what a correct answer must contain - divergences with file references, a ranked list, a rollback per step - before you paste the material, so the model is checking against something.
Send one call at the effort the task deserves
POST https://api.spicyapi.ai/v1/chat/completions with {"model": "deepseek/v4-pro", "messages": [{"role": "system", "content": "Compare the specification against the implementation. List every divergence with file references, then rank by blast radius."}, {"role": "user", "content": "<spec>\n\n<implementation>"}], "reasoning_effort": "high", "max_tokens": 32000}. Verify the top-ranked finding yourself before acting on it: high effort is more thorough, not infallible.
Request shapes that fail
image_url and file parts are rejected by the schema, so a body copied from a multimodal model fails before it is priced. max_tokens above 384,000 is invalid, and the 1,048,576-token window includes the system prompt and every earlier tool result.
API quick start
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "deepseek/v4-pro/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
See the API reference for authentication, the complete schema, polling, and error handling.







