Skip to main content

Capability matrix

Every table on this page is generated from the code that serves requests and from the production model policy, so it cannot say something the router doesn't do. Where a cell says a parameter is dropped, the response header X-MindsHub-Dropped-Params will name it at request time; where it says clamped, X-MindsHub-Clamped-Params will (except on a stream whose 200 went out early; see Errors). The rule behind both is in Core concepts.

Legend​

CellMeaning
yesHonored on every model behind this API.
per modelHonored where the target model takes it, dropped and named in X-MindsHub-Dropped-Params where it doesn't. The models table says which.
partialHonored with a limitation stated in the row's notes.
noAccepted and ignored. The request succeeds and the feature silently doesn't happen.
400Refused with a 400 naming the field, because serving the request would answer a different question than the one asked.
no fieldThis API's wire format has no field for it.
forwarded / adapted / conditional / ignored / rejectedThe parameter table's own vocabulary: relayed as sent; honored with translation; honored per model; accepted and ignored; refused with a 400.

Features by API​

One row per feature, one column per request format. Spellings differ by API; the semantics are the same because all three reach the same service.

FeatureChat CompletionsResponsesMessagesNotes
Streamingyes · streamyes · streamyes · stream
Tool callingyes · toolsyes · toolsyes · tools
Parallel tool callsper model · parallel_tool_callsper model · parallel_tool_callsper model · tool_choice.disable_parallel_tool_use
Structured output (JSON schema)per model · response_formatper model · text.formatper model · output_config.formatThe one parameter refused rather than dropped when the model can't honor it.
Schema-less JSON modepartialpartialno fieldjson_object is a 400 on the Claude family, which has no schema-less mode.
Reasoning effortper model · reasoning_effortper model · reasoning.effortper model · output_config.effort
Extended thinking objectno fieldno fieldper model · thinking
Reasoning carried across turnsno fieldper model · include: reasoning.encrypted_contentno field
Web searchyesyesyesNative or external per model; the models table says which. On a model without search the web tools are dropped.
Images inyesyesyesAccepted on every model; a model without vision returns its provider's own error.
PDF / file inputpartialnonoA Chat Completions file part reaches OpenAI-transport models only; Responses input_file parts and Anthropic Files API references are dropped.
Automatic prompt cachingyesyesyes
Explicit cache breakpointsno fieldno fieldpartialBlock-level cache_control is honored on Claude-family targets; the top-level auto-caching switch is ignored.
Server-side conversation stateno · storeyes · storeno fieldstore and previous_response_id; 30-day retention, chains walked 25 turns back.
Stored-response operationsno fieldyesno fieldGET/DELETE /v1/responses/{id}, input_items, cancel.
Token counting endpointno fieldno fieldyesPOST /v1/messages/count_tokens, free and unmetered.
Legacy functions / function_callyes · functionsno fieldno field
web_search_optionsyes · web_search_optionsno fieldno field
Sampling (temperature, top_p)per model · temperatureper model · temperatureper model · temperature
seed and repetition penaltiesper model · seedno fieldno field
verbosityper model · verbosityper model · text.verbosityno field
Conversations API (conversation)no field400 · conversationno field

Request parameters by API​

One row per parameter concept. Each cell shows how that API treats it (forwarded, adapted, conditional on the model, ignored, or rejected with a 400) and the spelling that API uses. The same tables, filtered to one API, appear on each API reference page.

GroupParameterChat CompletionsResponsesMessages
Structuremodeladapted · modeladapted · modeladapted · model
Structureconversation so faradapted · messagesadapted · inputconditional · messages
Structuresystem promptadapted · messages[role=system]adapted · instructionsconditional · system
Structurestreamforwarded · streamforwarded · streamforwarded · stream
Structurestream_optionsadapted · stream_optionsignored · stream_optionsno field
Generationmax_tokensconditional · max_tokensconditional · max_output_tokensconditional · max_tokens
Generationmax_completion_tokensadapted · max_completion_tokensno fieldno field
Generationtemperatureconditional · temperatureconditional · temperatureconditional · temperature
Generationtop_pconditional · top_pconditional · top_pconditional · top_p
Generationtop_kconditional · top_kno fieldconditional · top_k
Generationstop_sequencesconditional · stopno fieldconditional · stop_sequences
Generationseedconditional · seedno fieldno field
Generationpresence_penaltyconditional · presence_penaltyno fieldno field
Generationfrequency_penaltyconditional · frequency_penaltyno fieldno field
Generationverbosityconditional · verbosityconditional · text.verbosityno field
Reasoningreasoning_effortconditional · reasoning_effortconditional · reasoning.effortadapted · output_config.effort
Reasoningthinkingno fieldno fieldconditional · thinking
Reasoningincludeno fieldconditional · includeno field
Toolstoolsadapted · toolsadapted · toolsadapted · tools
Toolstool_choiceadapted · tool_choiceadapted · tool_choiceadapted · tool_choice
Toolsparallel_tool_callsconditional · parallel_tool_callsconditional · parallel_tool_callsadapted · tool_choice.disable_parallel_tool_use
Toolsweb_search_optionsadapted · web_search_optionsno fieldno field
Toolsmcp_serversno fieldno fieldadapted · mcp_servers
Toolsfunctionsadapted · functionsno fieldno field
Toolsfunction_calladapted · function_callno fieldno field
Output shaperesponse_formatconditional · response_formatconditional · text.formatadapted · output_config.format
Storage and chainingstoreignored · storeadapted · storeno field
Storage and chainingprevious_response_idno fieldadapted · previous_response_idno field
Storage and chainingbackgroundno fieldignored · backgroundno field
Accepted and ignoredmetadataignored · metadataignored · metadataignored · metadata
Accepted and ignoreduserignored · userignored · userno field
Accepted and ignoredsafety_identifierignored · safety_identifierignored · safety_identifierno field
Accepted and ignoredservice_tierignored · service_tierignored · service_tierignored · service_tier
Accepted and ignoredprompt_cache_keyignored · prompt_cache_keyignored · prompt_cache_keyno field
Accepted and ignoredprompt_cache_retentionignored · prompt_cache_retentionignored · prompt_cache_retentionno field
Accepted and ignorednignored · nno fieldno field
Accepted and ignoredlogprobsignored · logprobsno fieldno field
Accepted and ignoredtop_logprobsignored · top_logprobsignored · top_logprobsno field
Accepted and ignoredlogit_biasignored · logit_biasno fieldno field
Accepted and ignoredpredictionignored · predictionno fieldno field
Accepted and ignoredmodalitiesignored · modalitiesno fieldno field
Accepted and ignoredaudioignored · audiono fieldno field
Accepted and ignoredtruncationno fieldignored · truncationno field
Accepted and ignoredmax_tool_callsno fieldignored · max_tool_callsno field
Accepted and ignoredcache_control (top-level)no fieldno fieldignored · cache_control
Accepted and ignoredcontainerno fieldno fieldignored · container
Accepted and ignoredinference_geono fieldno fieldignored · inference_geo
Refusedconversationno fieldrejected (400) · conversationno field
Refusedpromptno fieldrejected (400) · promptno field
Refusedcontext_managementno fieldrejected (400) · context_managementno field

Providers​

Transport-level facts about each upstream provider. The models table below already has these intersected in; this table explains why a model row reads the way it does.

ProviderTransportNative web searchExternal search loopRemote MCPMCP approvalsMCP deny-listNamed tool_choicetool_choice: noneParams the transport can't carrymax_tokens floorNotes
openaiopenai_responsesopenai_nativenonativeyesnoyesyestop_k, stop_sequences, thinking, seed, presence_penalty, frequency_penalty16Real api.openai.com rejects max_tokens below 16; requests below the floor are raised to it.
anthropicanthropic_messagesanthropic_nativenonativenoyesyesyesseed, presence_penalty, frequency_penalty, verbositynone
geminigemini_nativegemini_google_searchnoour clientnoyesyesyesthinking, parallel_tool_calls, verbositynoneSets thinking depth through thinking_level, which the effort parameter carries; the fetch web tool is always dropped.
fireworksfireworksnoyesour clientnoyesyesnothinking, seed, presence_penalty, frequency_penalty, verbositynoneShares Anthropic's wire shape but not its backend: tool_choice: none is honored by dropping the tools.
moonshotmoonshotmoonshot_nativeyesour clientnoyesnoyesthinking, reasoning_effort, verbositynoneKimi reasons internally with no adjustable level. Its own $web_search builtin or the external loop, per policy.
metafireworksnoyesour clientnoyesyesnothinking, seed, presence_penalty, frequency_penalty, verbositynoneAs Fireworks. response_format is emulated as a synthetic tool call rather than sent natively, forced where the alias allows it and offered unforced (best effort) where it doesn't, pending verification of Meta's own spelling.
cerebrasmoonshotnoyesour clientnoyesyesyesthinking, top_k, verbositynone
groqmoonshotnoyesour clientnoyesyesyesthinking, top_k, verbositynone
xaiopenai_responsesopenai_nativenonativenonoyesyestop_k, stop_sequences, thinking, seed, presence_penalty, frequency_penalty, verbositynoneOpenAI-compatible Responses transport; verbosity unverified and dropped.

Request structure per transport​

What a request's shape may say on each wire, as opposed to what its parameters may say. A client can send a content block or a tool-schema keyword the target has no field for; where that happens it is dropped rather than forwarded into a 400, and named on X-MindsHub-Dropped-Content.

Two transports forward what they do not recognize instead, and the reason is published here rather than left to be inferred.

TransportProvidersContent blocks it carriesA block type it does not declareTool schema
anthropic_messagesanthropicdocument, image, image_url, redacted_thinking, search_result, server_tool_use, text, thinking, tool_result, tool_use, web_search_tool_resultforwarded — the target speaks Anthropic natively, so a block type this build has not enumerated is far more likely to be a new Anthropic block than a foreign one, and dropping it would break a request the upstream serves perfectly welljson_schema
fireworksfireworks, metaimage, image_url, text, tool_result, tool_usedropped and reportedjson_schema
gemini_nativegeminiimage_url, textdropped and reportedgemini_openapi
moonshotcerebras, groq, moonshotimage_url, textdropped and reportedjson_schema
openai_responsesopenai, xaicomputer_screenshot, encrypted_content, file, image, image_url, input_audio, input_file, input_image, input_text, output_text, refusal, summary_text, textforwarded — this transport carries every backend speaking an OpenAI-compatible Responses API, not just real OpenAI — xAI reuses it unchanged — so a type outside the allowlist may be exactly right for whichever backend the request is routed to, and this gateway cannot telljson_schema

Models​

One row per generation alias, in the order GET /v1/models lists them. Pinned versions share their family's facts. Embedding aliases are on Embeddings.

AliasProviderEffort levelsthinking objectWeb searchNamed tool_choicetool_choice: noneParallel tool callsJSON schemaJSON modeSamplingStop sequencesseed and penaltiesverbosityMax output tokensContext windowNotes
mindshub_airopenainot adjustablenonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
mindshub_blazecerebrasnone · highnononeyesyesyesyesyestemperature, top_pyesseed, presence_penalty, frequency_penaltynoprovider default131,072
gpt-oss-fireworksfireworksnot adjustablenononeyesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default131,072
sonnetanthropiclow · medium · high · xhigh · maxyesnative→ autodrops toolsyesyes400noneyesnoneno128,0001,000,000
sonnet-5-5anthropiclow · medium · high · xhigh · maxyesnative→ autodrops toolsyesyes400noneyesnoneno128,0001,000,000
sonnet-5anthropiclow · medium · high · maxyesnativeyesyesyesyes400noneyesnoneno128,0001,000,000
opusanthropiclow · medium · high · xhigh · maxyesnative→ autodrops toolsyesyes400noneyesnoneno128,0001,000,000
opus-5-5anthropiclow · medium · high · xhigh · maxyesnative→ autodrops toolsyesyes400noneyesnoneno128,0001,000,000
opus-5anthropiclow · medium · high · xhigh · maxyesnativeyesyesyesyes400noneyesnoneno128,0001,000,000
fableanthropiclow · medium · high · xhigh · maxyesnative→ autodrops toolsyesyes400noneyesnoneno128,0001,000,000
fable-5-1anthropiclow · medium · high · xhigh · maxyesnative→ autodrops toolsyesyes400noneyesnoneno128,0001,000,000
fable-5anthropiclow · medium · high · xhigh · maxyesnativeyesyesyesyes400noneyesnoneno128,0001,000,000
haikuanthropicnot adjustableyesnativeyesyesyesyes400temperature, top_p, top_kyesnonenoprovider default200,000[b]
haiku-4-5anthropicnot adjustableyesnativeyesyesyesyes400temperature, top_p, top_kyesnonenoprovider default200,000[b]
gptopenailow · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-6-astraopenailow · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-5-6-solopenainone · low · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-solopenailow · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-sol-6openainone · low · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-sol-6-1openailow · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-terraopenainone · low · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-terra-5-6openainone · low · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-lunaopenainone · low · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-luna-5-6openainone · low · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-luna-6openainone · low · medium · high · xhigh · maxnonativeyesyesyesyesyesnonenononeyes128,0001,050,000[a]
gpt-codexopenailow · medium · high · xhighnonativeyesyesyesyesyesnonenononeyes128,000400,000[a]
gpt-codex-5-3openailow · medium · high · xhighnonativeyesyesyesyesyesnonenononeyes128,000400,000[a]
gpt-miniopenainone · low · medium · high · xhighnonativeyesyesyesyesyestemperature, top_pnononeyesprovider default400,000[a]
gpt-mini-5-4openainone · low · medium · high · xhighnonativeyesyesyesyesyestemperature, top_pnononeyesprovider default400,000[a]
gpt-nanoopenainone · low · medium · high · xhighnonativeyesyesyesyesyestemperature, top_pnononeyesprovider default400,000[a]
gpt-nano-5-4openainone · low · medium · high · xhighnonativeyesyesyesyesyestemperature, top_pnononeyesprovider default400,000[a]
geminigeminilow · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
gemini-3-1-progeminilow · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
gemini-flashgeminilow · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
gemini-flash-3-8geminilow · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
gemini-flash-3-7geminilow · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
gemini-flash-3-6geminiminimal · low · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
gemini-flash-3-5geminiminimal · low · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
gemini-flash-3geminiminimal · low · medium · highnonativeyesyesnoyesyestemperature, top_p, top_kyesseed, presence_penalty, frequency_penaltynoprovider default1,048,576
gemini-flash-litegeminiminimal · low · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
gemini-flash-lite-3-1geminiminimal · low · medium · highnonativeyesyesnoyesyesnoneyesseed, presence_penalty, frequency_penaltyno65,5361,048,576
kimifireworksnot adjustablenoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—[c]
kimi-k3fireworksnot adjustablenoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
deepseek-v4-flashfireworksnone · low · high · maxnoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
deepseek-v4-1-flashfireworksnone · low · high · maxnoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
qwenfireworkslow · medium · xhighnoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
qwen-3-8-a95bfireworkslow · medium · xhighnoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
glmfireworkslow · high · maxnoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
glm-5-3fireworkslow · high · maxnoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
glm-5-3-flashfireworkslow · high · maxnoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
glm-flash-5-3fireworkslow · high · maxnoexternal (exa)yesdrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default—
muse-sparkmetanot adjustablenoexternal (exa)→ autodrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default1,048,576[d]
muse-spark-1-3metanot adjustablenoexternal (exa)→ autodrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default1,048,576
muse-spark-1-2metanot adjustablenoexternal (exa)→ autodrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default1,048,576
muse-spark-1-1metanot adjustablenoexternal (exa)→ autodrops toolsyesyesyestemperature, top_p, top_kyesnonenoprovider default1,048,576
grokxailow · medium · high · xhighnonativeyesyesyesyesyestemperature, top_pnononenoprovider default500,000
grok-4-7xailow · medium · high · xhighnonativeyesyesyesyesyestemperature, top_pnononenoprovider default500,000
grok-4-6xailow · medium · high · xhighnonativeyesyesyesyesyestemperature, top_pnononenoprovider default500,000
grok-4-5xailow · medium · highnonativeyesyesyesyesyestemperature, top_pnononenoprovider default500,000
  • [a] max_tokens below 16 is raised to 16.
  • [b] Takes temperature or top_p, not both: when both are sent, top_p is dropped and named in X-MindsHub-Dropped-Params.
  • [c] Takes temperature only at 1 and top_p only at 0.95; other values return the provider's own 400. Tool schemas are normalized for Kimi's stricter validator.
  • [d] Only tool_choice: "auto" is accepted upstream; named and required are rewritten to auto, none is honored by dropping the tools. response_format is emulated as an unforced synthetic tool call rather than sent natively (this alias cannot force one), pending verification of Meta's own spelling — best effort, not guaranteed — see Structured output.

No production alias currently routes to: moonshot, groq.

Generated from the live production model policy on 2026-10-08.