Sampling parameters now return a 400, and effort is a different control
The common read: Temperature is the first setting to change when output varies, so setting it to zero is the standard way to make a model behave.
Current models no longer support the three sampling parameters. The reference marks temperature, top_p and top_k deprecated and states the failure mode for each: temperature takes 1.0 for backwards compatibility and rejects everything else with a 400, top_k rejects any value at all, top_p accepts 0.99 and above. There is no warning step: the same request that works on an older model id returns an error as soon as you change the id.
No parameter replaces them: the migration guides say to remove them and use prompting instead. The request-level control current models do add is effort, and it sets how much work the model does, not how random the output is. The default is high on most models and medium on Claude Opus 5.5, and setting a model's default explicitly is identical to omitting it. effort affects all tokens in the response, including text, tool calls and thinking, so lower effort means fewer tool calls, not only shorter answers.
A common failure: a deploy that changes only the model id causes a total outage, and the team blames the deploy instead of the parameters the new model rejects. Read the parameter list before you read the prompt. Temperature has no successor setting, and even temperature: 0 never guaranteed identical outputs. The boilerplate you have copied since 2024 now breaks the request, and in production the first sign is usually a 400.

