Qwen3.7 Flash

qwen3.7-flash

Use the Qwen3.7 Flash API for chat, coding, and reasoning. Send conversation messages and include tool definitions on supported routes. Build developer assistants for code review, debugging, and implementation. Compare the available provider routes, request examples, and usage prices on OpenAny.

Published price
From $0.022 / 1M tokens
Billing unit
/ 1M tokens
Context / Max output
1000K / 128K
Listed routes
1
Base URL
https://api.openany.si/v1
POST
/v1/chat/completions
Authentication
Authorization: Bearer $OPENANY_API_KEY

Provider

Published price $0.022 / 1M tokens

Request parameters

ParameterType / rangeDefault valueRequiredDescription
messagesarray—YesThe conversation messages
modelstring—YesThe model to use
audioobject—NoOutput audio configuration for Qwen-Omni models. Requires modalities to include audio.
audio.formatstring · wav—NoOutput audio format. Only wav is supported.
audio.voicestring—NoVoice used for output audio.
enable_code_interpreterbooleanfalseNoWhether to enable the code interpreter feature. This is not a standard OpenAI parameter.
enable_searchbooleanfalseNoWhether to enable web search. This is not a standard OpenAI parameter.
enable_thinkingboolean—NoWhether to enable thinking mode for supported hybrid thinking models. Reasoning content is returned in reasoning_content.
frequency_penaltynumber · -2 ~ 20NoPenalty for repeated tokens
logprobsbooleanfalseNoWhether to return log probabilities for output tokens. Reasoning content does not include log probabilities.
max_completion_tokensinteger · >= 1—NoMaximum visible completion tokens
max_tokensinteger · >= 1—NoMaximum completion tokens
messages[].contentobject—NoMessage content. Can be text or model-specific multimodal content.
messages[].reasoning_contentstring—NoHistorical reasoning content from assistant messages. Required unchanged when using preserved thinking for supported models.
messages[].rolestring · system | user | assistant | tool—NoMessage role in the conversation.
modalitiesarray—NoOutput modalities. Applies only to Qwen-Omni models. Valid values include ["text"] and ["text","audio"].
ninteger · 1 ~ 1281NoNumber of choices to generate
parallel_tool_callsbooleanfalseNoWhether to enable parallel tool calling.
presence_penaltynumber · -2 ~ 20NoPenalty for previously used tokens
preserve_thinkingbooleanfalseNoWhether to append historical reasoning_content from assistant messages to the model input for supported models.
reasoning_effortstring · low | medium | high | xhigh | max | minimal | none—NoControls reasoning effort. Qwen3.8-Max-Preview supports low, medium, and xhigh. max/high map to xhigh, minimal maps to low, and none maps to enable_thinking=false.
response_formatobject—NoFormat constraint for the response
response_format.json_schemaobject—NoJSON Schema configuration. Required when response_format.type is json_schema.
response_format.json_schema.descriptionstring—NoDescription of the schema purpose.
response_format.json_schema.namestring—NoUnique schema name. Supports letters, numbers, underscores, and hyphens. Maximum length: 64 characters.
response_format.json_schema.schemaobject—NoJSON Schema object defining the output data structure.
response_format.json_schema.strictbooleanfalseNoWhether the model must strictly follow the schema constraints.
response_format.typestring · text | json_object | json_schema—NoResponse format type.
routeobject—NoOpenAny route configuration, including provider and other routing parameters
route_modestring—NoThe mode for routing the request
search_optionsobject—NoWeb search strategy. Effective only when enable_search is true.
search_options.enable_search_extensionbooleanfalseNoWhether to enable domain-specific search.
search_options.forced_searchbooleanfalseNoWhether to force web search instead of letting the model decide.
search_options.search_strategystring · turbo | max | agent | agent_maxturboNoSearch scale strategy. turbo balances speed and effectiveness; max is more comprehensive; agent and agent_max perform multi-round retrieval for supported models.
seedinteger—NoSeed for deterministic sampling
stopstring | array—NoSequences that stop generation
streambooleanfalseNoWhether to stream the response
stream_optionsobject—NoStreaming options. Effective only when stream is true.
stream_options.include_usagebooleanfalseNoWhether to include token usage information in the final streaming chunk.
temperaturenumber · 0 ~ 21NoSampling temperature
thinking_budgetinteger—NoMaximum number of tokens for the thinking process. Applies to supported Qwen reasoning models.
tool_choicestring | object · none | auto | required—NoTool selection policy: string modes none, auto, or required, or an object selecting a specific tool
tool_streambooleanfalseNoControls streaming behavior for complex tool arguments when stream is true. This is not a standard OpenAI parameter.
toolsarray—NoTools available to the model
tools[].functionobject—NoFunction tool definition.
tools[].function.descriptionstring—NoFunction description used by the model to decide when and how to call the tool.
tools[].function.namestring—NoFunction name. Supports letters, digits, underscores, and hyphens. Up to 64 tokens.
tools[].function.parametersobject—NoFunction parameters described with JSON Schema.
tools[].typestring · function—NoTool type. Currently only function is supported.
top_kinteger · >= 0—NoNumber of candidate tokens used for sampling. If null or greater than 100, top_k is disabled and only top_p takes effect. This is not a standard OpenAI parameter.
top_logprobsinteger · 0 ~ 50NoNumber of most likely candidate tokens to return at each generation step. Effective only when logprobs is true.
top_pnumber · 0 ~ 11NoNucleus sampling probability
vl_high_resolution_imagesbooleanfalseNoWhether to increase the maximum pixel limit for input images. Applies to supported Qwen VL models. This is not a standard OpenAI parameter.

Request example

curl 'https://api.openany.si/v1/chat/completions' \
  -H "Authorization: Bearer $OPENANY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "messages": [
    {
      "content": "hello",
      "role": "user"
    }
  ],
  "model": "qwen3.7-flash",
  "enable_code_interpreter": false,
  "enable_search": false,
  "frequency_penalty": 0,
  "logprobs": false,
  "n": 1,
  "parallel_tool_calls": false,
  "presence_penalty": 0,
  "preserve_thinking": false,
  "response_format.json_schema.strict": false,
  "search_options.enable_search_extension": false,
  "search_options.forced_search": false,
  "search_options.search_strategy": "turbo",
  "stream": false,
  "stream_options.include_usage": false,
  "temperature": 1,
  "tool_stream": false,
  "top_logprobs": 0,
  "top_p": 1,
  "vl_high_resolution_images": false
}'

Response example

Configured response example · not a live result

JSON
{
  "id": "chatcmpl-d288bf61-ff0d-91eb-a838-7804c54a2c05",
  "model": "qwen3.7-flash",
  "usage": {
    "total_tokens": 192,
    "prompt_tokens": 11,
    "completion_tokens": 181,
    "prompt_tokens_details": {
      "text_tokens": 11,
      "cached_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 181,
      "reasoning_tokens": 167
    }
  },
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today? 😊",
        "reasoning_content": "Here's a thinking process:\n\n1.  **Analyze User Input:** The user said \"hello\" - a simple greeting.\n2.  **Identify Intent:** The user is initiating a conversation, likely expecting a friendly response and possibly leading to a question or request.\n3.  **Determine Response Strategy:** \n   - Acknowledge the greeting warmly\n   - Keep it open-ended to encourage further interaction\n   - Maintain a helpful, conversational tone\n4.  **Draft Response (Mental):** Hello! How can I help you today?\n5.  **Refine Response:** Check for tone, clarity, and openness. The draft is good—friendly, concise, and invites the user to share their needs.\n6.  **Final Output Generation:** Match the refined version.✅"
      },
      "finish_reason": "stop"
    }
  ],
  "created": 1793809842,
  "openmodels_cost": 17
}

Error handling

400Check the model ID and request fields.
429Retry with exponential backoff.
5xxRetry only temporary provider failures.

JSON Schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "model",
    "messages"
  ],
  "properties": {
    "n": {
      "type": "integer",
      "default": 1,
      "maximum": 128,
      "minimum": 1,
      "description": "Number of choices to generate"
    },
    "seed": {
      "type": "integer",
      "description": "Seed for deterministic sampling"
    },
    "stop": {
      "type": [
        "string",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Sequences that stop generation"
    },
    "audio": {
      "type": "object",
      "description": "Output audio configuration for Qwen-Omni models. Requires modalities to include audio."
    },
    "model": {
      "type": "string",
      "description": "The model to use"
    },
    "route": {
      "type": "object",
      "description": "OpenAny route configuration, including provider and other routing parameters"
    },
    "tools": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Tools available to the model"
    },
    "top_k": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of candidate tokens used for sampling. If null or greater than 100, top_k is disabled and only top_p takes effect. This is not a standard OpenAI parameter."
    },
    "top_p": {
      "type": "number",
      "default": 1,
      "maximum": 1,
      "minimum": 0,
      "description": "Nucleus sampling probability"
    },
    "stream": {
      "type": "boolean",
      "default": false,
      "description": "Whether to stream the response"
    },
    "logprobs": {
      "type": "boolean",
      "default": false,
      "description": "Whether to return log probabilities for output tokens. Reasoning content does not include log probabilities."
    },
    "messages": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "The conversation messages"
    },
    "max_tokens": {
      "type": "integer",
      "minimum": 1,
      "description": "Maximum completion tokens"
    },
    "modalities": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Output modalities. Applies only to Qwen-Omni models. Valid values include [\"text\"] and [\"text\",\"audio\"]."
    },
    "route_mode": {
      "type": "string",
      "description": "The mode for routing the request"
    },
    "audio.voice": {
      "type": "string",
      "description": "Voice used for output audio."
    },
    "temperature": {
      "type": "number",
      "default": 1,
      "maximum": 2,
      "minimum": 0,
      "description": "Sampling temperature"
    },
    "tool_choice": {
      "enum": [
        "none",
        "auto",
        "required"
      ],
      "type": [
        "string",
        "object"
      ],
      "description": "Tool selection policy: string modes none, auto, or required, or an object selecting a specific tool"
    },
    "tool_stream": {
      "type": "boolean",
      "default": false,
      "description": "Controls streaming behavior for complex tool arguments when stream is true. This is not a standard OpenAI parameter."
    },
    "audio.format": {
      "enum": [
        "wav"
      ],
      "type": "string",
      "description": "Output audio format. Only wav is supported."
    },
    "tools[].type": {
      "enum": [
        "function"
      ],
      "type": "string",
      "description": "Tool type. Currently only function is supported."
    },
    "top_logprobs": {
      "type": "integer",
      "default": 0,
      "maximum": 5,
      "minimum": 0,
      "description": "Number of most likely candidate tokens to return at each generation step. Effective only when logprobs is true."
    },
    "enable_search": {
      "type": "boolean",
      "default": false,
      "description": "Whether to enable web search. This is not a standard OpenAI parameter."
    },
    "search_options": {
      "type": "object",
      "description": "Web search strategy. Effective only when enable_search is true."
    },
    "stream_options": {
      "type": "object",
      "description": "Streaming options. Effective only when stream is true."
    },
    "enable_thinking": {
      "type": "boolean",
      "description": "Whether to enable thinking mode for supported hybrid thinking models. Reasoning content is returned in reasoning_content."
    },
    "messages[].role": {
      "enum": [
        "system",
        "user",
        "assistant",
        "tool"
      ],
      "type": "string",
      "description": "Message role in the conversation."
    },
    "response_format": {
      "type": "object",
      "description": "Format constraint for the response"
    },
    "thinking_budget": {
      "type": "integer",
      "description": "Maximum number of tokens for the thinking process. Applies to supported Qwen reasoning models."
    },
    "presence_penalty": {
      "type": "number",
      "default": 0,
      "maximum": 2,
      "minimum": -2,
      "description": "Penalty for previously used tokens"
    },
    "reasoning_effort": {
      "enum": [
        "low",
        "medium",
        "high",
        "xhigh",
        "max",
        "minimal",
        "none"
      ],
      "type": "string",
      "description": "Controls reasoning effort. Qwen3.8-Max-Preview supports low, medium, and xhigh. max/high map to xhigh, minimal maps to low, and none maps to enable_thinking=false."
    },
    "tools[].function": {
      "type": "object",
      "description": "Function tool definition."
    },
    "frequency_penalty": {
      "type": "number",
      "default": 0,
      "maximum": 2,
      "minimum": -2,
      "description": "Penalty for repeated tokens"
    },
    "preserve_thinking": {
      "type": "boolean",
      "default": false,
      "description": "Whether to append historical reasoning_content from assistant messages to the model input for supported models."
    },
    "messages[].content": {
      "type": "object",
      "description": "Message content. Can be text or model-specific multimodal content."
    },
    "parallel_tool_calls": {
      "type": "boolean",
      "default": false,
      "description": "Whether to enable parallel tool calling."
    },
    "response_format.type": {
      "enum": [
        "text",
        "json_object",
        "json_schema"
      ],
      "type": "string",
      "description": "Response format type."
    },
    "max_completion_tokens": {
      "type": "integer",
      "minimum": 1,
      "description": "Maximum visible completion tokens"
    },
    "tools[].function.name": {
      "type": "string",
      "description": "Function name. Supports letters, digits, underscores, and hyphens. Up to 64 tokens."
    },
    "enable_code_interpreter": {
      "type": "boolean",
      "default": false,
      "description": "Whether to enable the code interpreter feature. This is not a standard OpenAI parameter."
    },
    "vl_high_resolution_images": {
      "type": "boolean",
      "default": false,
      "description": "Whether to increase the maximum pixel limit for input images. Applies to supported Qwen VL models. This is not a standard OpenAI parameter."
    },
    "response_format.json_schema": {
      "type": "object",
      "description": "JSON Schema configuration. Required when response_format.type is json_schema."
    },
    "tools[].function.parameters": {
      "type": "object",
      "description": "Function parameters described with JSON Schema."
    },
    "messages[].reasoning_content": {
      "type": "string",
      "description": "Historical reasoning content from assistant messages. Required unchanged when using preserved thinking for supported models."
    },
    "search_options.forced_search": {
      "type": "boolean",
      "default": false,
      "description": "Whether to force web search instead of letting the model decide."
    },
    "stream_options.include_usage": {
      "type": "boolean",
      "default": false,
      "description": "Whether to include token usage information in the final streaming chunk."
    },
    "tools[].function.description": {
      "type": "string",
      "description": "Function description used by the model to decide when and how to call the tool."
    },
    "search_options.search_strategy": {
      "enum": [
        "turbo",
        "max",
        "agent",
        "agent_max"
      ],
      "type": "string",
      "default": "turbo",
      "description": "Search scale strategy. turbo balances speed and effectiveness; max is more comprehensive; agent and agent_max perform multi-round retrieval for supported models."
    },
    "response_format.json_schema.name": {
      "type": "string",
      "description": "Unique schema name. Supports letters, numbers, underscores, and hyphens. Maximum length: 64 characters."
    },
    "response_format.json_schema.schema": {
      "type": "object",
      "description": "JSON Schema object defining the output data structure."
    },
    "response_format.json_schema.strict": {
      "type": "boolean",
      "default": false,
      "description": "Whether the model must strictly follow the schema constraints."
    },
    "search_options.enable_search_extension": {
      "type": "boolean",
      "default": false,
      "description": "Whether to enable domain-specific search."
    },
    "response_format.json_schema.description": {
      "type": "string",
      "description": "Description of the schema purpose."
    }
  }
}

Model API questions

How do I call Qwen3.7 Flash through OpenAny?

Use model ID qwen3.7-flash with an OpenAny key and the operation published in this model's API tab. The model API base is https://api.openany.si/v1. Confirm the protocol and request schema; model availability does not imply every OpenAI API operation is supported.

How is Qwen3.7 Flash billed?

Compare the published rate and billing unit of the selected provider route. Input, output and cache token rates may differ. Image, audio and video models can use other units. Recorded usage determines the charge under that route's billing contract.

Are Community and Verified routes the same as an official publisher API?

No. Inspect the provider name and supply classification for the specific route. A marketplace listing or a supply label is not a claim of publisher endorsement, identical service or measured uptime. Different route prices may reflect different supply and conditions.

Where do these prices come from, and when were they updated?

Rates come from the provider routes in OpenAny's public model catalog, not an independent quote from the model publisher. The catalog does not supply a price update timestamp. A page or catalog snapshot date is not a price revision date. Compare supply, billing units, tiers and conditions; a lower listed rate alone does not establish equivalent service or explain the price difference.

Use Qwen3.7 Flash with your agent

Inspect endpoint contracts and confirm availability and pricing before a paid call.