Migrate your Anthropic application to Model Studio by changing three settings. This topic covers the request and response parameters with code examples.
To migrate an existing Anthropic application to Model Studio, change these settings:
Replace
After configuring Claude Desktop or Claude Code, the connection test fails with
api_key: Replace with the Model Studio API key.base_url: Replace with a Model Studio endpoint listed below.model: Replace with a supported model name, such asqwen3.7-plus.
- Singapore
- China (Beijing)
- Germany (Frankfurt)
- US (Virginia)
- Japan (Tokyo)
SDK
base_url:https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropicHTTP request URL:POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropic/v1/messages{WorkspaceId} with your actual workspace ID.
Authentication: Pass your Model Studio API key in either the x-api-key header or the Authorization: Bearer header.
Request Bodymodelstring (Required)Model name. Supported models:
Supported Models Qwen-Max: qwen3.8-max, qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3.6-max-preview, qwen3-max, qwen3-max-2026-01-23, qwen3-max-previewQwen-Plus: qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.5-plus, qwen3.5-plus-2026-04-20, qwen3.5-plus-2026-02-15, qwen-plus, qwen-plus-latest, qwen-plus-2025-09-11Qwen-Flash: qwen3.8-flash, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.6-flash-2026-04-16, qwen3.5-flash, qwen3.5-flash-2026-02-23, qwen-flash, qwen-flash-2025-07-28Qwen-Turbo: qwen-turboQwen-Coder: qwen3-coder-next, qwen3-coder-plus, qwen3-coder-plus-2025-09-23, qwen3-coder-flashQwen-VL: qwen3-vl-plus, qwen3-vl-flash, qwen-vl-max, qwen-vl-plusQwen Open-Source Models: qwen3.6-27b, qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.8-2.4t-a95b, qwen3.8-27bThird-Party Modelsdeepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731, kimi-k3, kimi-k2.7-code, kimi-k2.5, kimi-k2-thinking, glm-5.1, glm-5, glm-4.7, glm-4.6, MiniMax-M2.5, MiniMax-M2.1 integer (Required)
string or array (Optional)System prompt that defines model behavior. system is a top-level parameter — the messages array does not accept a system role.A string equals a single type="text" block. Pass an array to mark prompt caching breakpoints.
Properties type string (Required)Fixed value: text.text string (Required)The system prompt text.cache_control object (Optional)Prompt caching breakpoint. On cache hit, subsequent requests are billed at the cache read rate. Contains only type, fixed to ephemeral.array (Required)The message array, arranged in alternating user/assistant turns.
messages array element role string (Required)The message role. Valid values: user, assistant.content string or array (Required)Plain text string or structured content array. A string equals a single content block with type="text".
content array element types Text
Properties type string (Required)Fixed value: text.text string (Required)The text content.cache_control object (Optional)Prompt caching breakpoint. Contains only type, fixed to ephemeral.
Properties type string (Required)Fixed value: image.source object (Required)The source of the image data.
Properties type string (Required)Valid values: url (public image URL), base64 (Base64-encoded).url stringThe public URL of the image. Required when type is url.media_type stringThe MIME type of the image, such as image/jpeg. Required when type is base64.data stringThe Base64-encoded image data. Required when type is base64.
Properties type string (Required)Fixed value: video.source object (Required)The source of the video data.
Properties type string (Required)Valid values: url (public video URL), base64 (Base64-encoded).url stringThe public URL of the video. Required when type is url.media_type stringThe MIME type of the video, such as video/mp4. Required when type is base64.data stringThe Base64-encoded video data. Required when type is base64.
Properties type string (Required)Fixed value: tool_use.id string (Required)The unique identifier of the tool call, used to associate the result in a subsequent tool_result.name string (Required)The name of the called tool.input object (Required)The input parameters of the tool call. The structure is determined by the input_schema of the corresponding tool in tools.cache_control object (Optional)Prompt caching breakpoint. Contains only type, fixed to ephemeral. The tool call content participates in the cache prefix.
Properties type string (Required)Fixed value: tool_result.tool_use_id string (Required)Corresponds to the id in the tool_use block.content string (Required)Content returned by the tool.cache_control object (Optional)Prompt caching breakpoint. Contains only type, fixed to ephemeral.boolean (Optional)Whether to enable streaming. Default value: false.temperature number (Optional)Controls the diversity of generated text. Value range: [0, 2). Higher values produce more random results.This range is different from the official Anthropic range of [0.0, 1.0]. When migrating from Anthropic, verify the value of this parameter. number (Optional)Nucleus sampling probability threshold.Bothtop_k integer (Optional)Candidate set size during sampling.stop_sequences array (Optional)Text sequences that trigger generation to stop. Output ends before the matched sequence.After a match, the stop_reason in the response is still end_turn, and the response does not include the matched sequence.object (Optional)Extended thinking configuration. When enabled, the model reasons before responding, and the response includes thinking-type content blocks. Not all models support thinking mode.
Properties type string (Required)Valid values: enabled (enable thinking mode), disabled (disable thinking mode).budget_tokens integer (Optional, to be deprecated)
This parameter will be deprecated. For new integrations, use Maximum tokens for the thinking process. Disjoint from max_tokens: this parameter limits the thinking portion, while max_tokens limits the final reply. A larger budget allows more thorough analysis on complex questions. Takes effect when type is enabled.array (Optional)Tool definitions for function calling.
tools array element name string (Required)The tool name.description string (Optional)The description of the tool function.input_schema object (Required)The JSON Schema definition of the tool input parameters.object (Optional)Tool selection strategy:
object (Optional)
Properties effort string (Optional)Controls the inference intensity of models. The valid values and default values vary by model.
object (Optional)Structured output configuration. When enabled, the model returns a JSON string. Behavior varies by model:
Properties type string (Required)Fixed value: json_schema.schema object (Required)JSON Schema object that follows the standard JSON Schema specification. Should include type (data type), properties (field definitions), required (array of required field names), and additionalProperties (must be set to false). |
Python |
Non-streaming ResponseidstringUnique message identifier.type stringFixed value: message.role stringFixed value: assistant.model stringThe model used for generation.content arrayThe content array.
content array element types Text
Properties type stringFixed value: text.text stringThe text response generated by the model.
Properties type stringFixed value: thinking.thinking stringThe model's reasoning before the final response.signature stringCurrently fixed as an empty string.
Properties type stringFixed value: tool_use.id stringUnique tool call identifier, used to match the tool_result.name stringThe name of the called tool.input objectThe input parameters of the tool call.stringReason generation stopped. Valid values: end_turn (normal completion), max_tokens (token limit reached), tool_use (tool call).stop_sequence stringAlways null.usage objectToken usage statistics.In streaming calls, the usage field of the message_start event contains only input_tokens and output_tokens. The full four fields are returned in the message_delta event.
Properties input_tokens integerInput tokens.output_tokens integerOutput tokens.cache_creation_input_tokens integerTokens consumed for cache creation.cache_read_input_tokens integerTokens consumed from cache reads. | Response Example |
Streaming Responsemessage_startFirst stream event, marks message start.
Properties type stringFixed value: message_start.message objectThe initial message object. content is an empty array, and usage contains only input_tokens and output_tokens.
Properties type stringFixed value: content_block_start.index integer0-based index corresponding to position in the content array.content_block objectThe initial object of the content block. The type value is text, thinking, or tool_use. For the tool_use type, the input field is an empty object in this event, and the complete input parameters are assembled from subsequent content_block_delta deltas.
Properties type stringFixed value: content_block_delta.index integerThe index of the associated content block.delta objectDelta object. type values:
Properties type stringFixed value: content_block_stop.index integerThe index of the ended content block.
Properties type stringFixed value: message_delta.delta objectContains stop_reason and stop_sequence. For valid values, see the Non-streaming Response table above.usage objectComplete token usage statistics, including input_tokens, output_tokens, cache_creation_input_tokens, and cache_read_input_tokens.
Properties type stringFixed value: message_stop.In addition, streaming responses periodically send ping events ({"type":"ping"}) to keep the connection alive. Clients can ignore them. | Streaming response example |
FAQ
After configuring Claude Desktop or Claude Code, the connection test fails withModel discovery — Gateway /v1/models returned HTTP 404, or the request URL contains/v1/v1/models. How do I fix it?
The model discovery feature of clients such as Claude Desktop and Claude Code automatically appends /v1/models to the configured base URL. Check the following two points:
- Do not end the base URL with
/v1/: it should end at/apps/anthropic(for example, for China (Beijing) usehttps://dashscope.aliyuncs.com/apps/anthropic; see the endpoint information above for other regions). If you mistakenly enter.../apps/anthropic/v1/, the client appends/v1/modelsand produces the duplicated path/v1/v1/models, which returns HTTP 404. Therefore, when you get a 404, first check whether the actual request URL contains a duplicated/v1/v1/; if so, remove the trailing/v1/from the base URL. - Add models manually to skip discovery: the Model Studio Anthropic-compatible endpoint provides only the Messages API (
/v1/messages) and does not provide a model list endpoint (/v1/models), so the model discovery request returns 404 as well. Manually add models (for example,qwen3.7-plus) under Models in the client to skip automatic discovery.