Model parameters
We serve open-weight models from many different developers. They do not all accept the same request parameters, and the platform does not paper over the difference.
Some things are rejected rather than dropped, and return a 400:
reasoning_effortsent to a model that doesn’t support reasoning, or set to a value outside the accepted set (see Reasoning models).- A content type the model doesn’t accept — an image part sent to a text-only
model. Check
architecture.input_modalitieson the model. max_tokens(ormax_completion_tokens) above the model’smax_completion_tokensceiling.
The last two used to succeed and silently discard your input: an image sent to a
text-only model returned 200 and an answer written from the text alone.
Checking what a model supports
Section titled “Checking what a model supports”Ask the API. The model detail endpoint returns the authoritative list:
curl -i "https://api.resetdata.ai/api/v1/models/detail?slug=zai/glm-5.2" \ -H "Authorization: Bearer $RESETDATA_API_KEY"Confirm you got a 200, then pipe the body through jq to pull out the fields
you care about:
curl -s "https://api.resetdata.ai/api/v1/models/detail?slug=zai/glm-5.2" \ -H "Authorization: Bearer $RESETDATA_API_KEY" \ | jq '{supported_parameters, default_parameters, context_length, max_completion_tokens}'supported_parameters is the allowlist. default_parameters shows what the
model applies when you don’t specify a value.
The same fields appear on every entry in GET /api/v1/models, so you can audit
your whole integration in one call.
How much this varies
Section titled “How much this varies”Real differences across the current catalog:
| Parameter | Availability |
|---|---|
temperature, top_p, max_tokens, stream |
Effectively universal on text models |
top_k |
Some models only |
repetition_penalty |
A minority of models |
min_p |
Rare — a couple of models |
logprobs / top_logprobs |
Rare |
logit_bias |
Rare |
reasoning_effort |
Reasoning models only — a small subset |
detail |
Vision models, for image input fidelity |
Non-text models have entirely different vocabularies. Image models take
steps, width, height, cfg_scale, seed. Embedding models take
encoding_format, dimensions, input_type. Rerankers take top_n,
return_documents. Transcription takes language and response_format.
Tool calling
Section titled “Tool calling”There is no single “supports tools” flag — tool calling is available exactly
when tools and tool_choice appear in supported_parameters. The app shows
a Function-calling badge derived from the same check.
Tool support is genuinely not universal in this catalog. Several capable text models, and all image, audio, embedding and reranker models, do not offer it. Verify before designing an agent loop around a given model.
Reasoning models
Section titled “Reasoning models”Models that support reasoning_effort accept an effort level that trades latency
and token spend against answer quality.
reasoning_effort accepts one of seven values:
none minimal low medium high xhigh maxThis is a unified set. Reasoning models do not all implement seven levels — most implement two or three — so the platform maps your value onto the levels the model actually has, following that model’s own published documentation. Two consequences worth planning around:
- Distinct values can behave identically. On a model with three native
levels, several of the seven collapse onto the same one. Asking for
mediuminstead ofhighmay change nothing at all. - Levels are not comparable across model families.
highon one model is nothighon another. Treat effort as a per-model dial you tune, not a portable setting you copy between models.
To see what a given model offers, read default_parameters from the model
detail endpoint. Models that declare distinct effort levels expose them as
reasoning_effort_levels:
curl -s "https://api.resetdata.ai/api/v1/models/detail?slug=deepseek/deepseek-v4-flash" \ -H "Authorization: Bearer $RESETDATA_API_KEY" \ | jq '.default_parameters'Not every reasoning model declares the list. When reasoning_effort_levels is
absent, the model accepts the full set above but the mapping onto its native
levels is not published — assume fewer distinct levels than you sent, and
measure rather than trusting the label.
Values outside the seven are rejected with a 400 naming the accepted set.
This matters more than it sounds: reasoning_effort is case-sensitive, so
"HIGH" is not "high" and will be rejected rather than quietly ignored.
Reasoning by default
Section titled “Reasoning by default”Whether a model reasons when you omit reasoning_effort varies by model —
and some models reason by default at a high effort level. Where a model declares
one, reasoning_effort_default names the level used when you leave the field
out:
curl -s "https://api.resetdata.ai/api/v1/models/detail?slug=deepseek/deepseek-v4-flash" \ -H "Authorization: Bearer $RESETDATA_API_KEY" \ | jq '.default_parameters.reasoning_effort_default'When it is absent, the upstream model’s own default applies.
DeepSeek V4 Flash declares high, matching api.deepseek.com, which
reasons by default. Omitting reasoning_effort on that model therefore produces
reasoning tokens — and those are billed as output tokens.
Context and output limits
Section titled “Context and output limits”context_length is the total window (input plus output). max_completion_tokens
is the ceiling on a single response, and is often much smaller than the context
window — these are separate limits and both are per-model.
Switching models safely
Section titled “Switching models safely”When moving an integration from one model to another:
- Diff
supported_parametersbetween the two. - Check
max_completion_tokens— output caps vary far more than context windows. - Confirm
tools/tool_choiceif you rely on function calling. - Re-check pricing; input and output rates differ independently between models.
- Re-tune sampling. Identical settings do not produce identical behaviour across model families.