KEMBAR78
Make your first API call to Qwen - Alibaba Cloud Model Studio - Alibaba Cloud Documentation Center
All Products
Search
Document Center

Alibaba Cloud Model Studio:Make your first API call to Qwen

Last Updated:Oct 20, 2025

Alibaba Cloud Model Studio lets you call large language models (LLMs) through OpenAI compatible interfaces or the DashScope SDK.

This topic uses Qwen as an example to guide you through your first API call. You will learn how to:

  • Obtain an API key

  • Configure your local development environment

  • Call the Qwen API

Account settings

  1. Register an account: If you do not have an Alibaba Cloud account, you must first register one.

  2. Select a region: Model Studio provides the International Edition (Singapore) and the Mainland China Edition (Beijing). The two editions differ in terms of the console, endpoint, models, and their pricing, see Models and pricing.

    • International Edition: Endpoints and model services are located in international regions excluding Mainland China. The default endpoint is Singapore.

    • Mainland China Edition: Endpoints and model services are located in Mainland China. Currently, only the Beijing endpoint is supported.

  3. Complete account verification: To activate the Mainland China Edition, this step is necessary. To activate the International Edition, you can skip this step.

    Use your Alibaba Cloud account to complete account verification:

    • Choose Individual Verification or Upgrade to Enterprise, and click Verify now.

    • In the Additional Information section of the page that appears, select Yes for Purchase cloud resources or enable acceleration inside the Chinese mainland.

    • For other items, see Account verification overview.

  4. Activate Model Studio: Use your Alibaba Cloud account to go to the Model Studio console (Singapore or Beijing). After you read and agree to the Terms of Service, Model Studio is automatically activated. If the Terms of Service do not appear, this indicates that you have already activated Model Studio.

  5. Obtain an API key: Go to the Key Management (Singapore or Beijing) page, click Create API Key. Later, you will use the API Key to call the models.

    When you create a new API key, set Workspace to Default Workspace. To use an API key from a sub-workspace, the Alibaba Cloud account owner must authorize the corresponding sub-workspace to use the specific models. For more information, see Authorize a sub-workspace to call models.

Set your API key as an environment variable

Set the API key as an environment variable to avoid hardcoding it in your code. This reduces the risk of leaks.

Procedure

Linux

Add permanent environment variable

If you want the API key environment variable to persist across all new sessions for the current user, add it as a permanent environment variable.

  1. Run the following command to add the environment variable to the ~/.bashrc file.

    # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
    echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bashrc

    Alternatively, you can manually modify the ~/.bashrc file.

    Edit manually

    Run the following command to open the ~/.bashrc file.

    nano ~/.bashrc

    Add the following content to the configuration file.

    # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
    export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

    In the nano editor, press Ctrl + X, then press Y, and then press Enter to save and close the file.

  2. Run the following command to make the changes take effect.

    source ~/.bashrc
  3. Open another terminal window and run the following command to check whether the environment variable takes effect.

    echo $DASHSCOPE_API_KEY

Add temporary environment variable

If you want to use the environment variable only in the current session, add it as a temporary environment variable.

  1. Run the following command.

    # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
    export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
  2. Run the following command to check whether the environment variable takes effect.

    echo $DASHSCOPE_API_KEY

macOS

Add permanent environment variable

If you want the API key environment variable to persist across all new sessions for the current user, add it as a permanent environment variable.

  1. Run the following command in the terminal to view the default shell type.

    echo $SHELL
  2. Follow the steps that correspond to your default shell type.

    Zsh
    1. Run the following command to add the environment variable to the ~/.zshrc file.

      # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
      echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.zshrc

      Alternatively, you can manually modify the ~/.zshrc file.

      Edit manually

      Run the following command to open the shell configuration file.

      nano ~/.zshrc

      Add the following content to the configuration file.

      # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
      export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

      In the nano editor, press Ctrl + X, then press Y, and then press Enter to save and close the file.

    2. Run the following command to make the changes take effect.

      source ~/.zshrc
    3. Open another terminal window and run the following command to check whether the environment variable takes effect.

      echo $DASHSCOPE_API_KEY
    Bash
    1. Run the following command to add the environment variable to the ~/.bash_profile file.

      # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
      echo "export DASHSCOPE_API_KEY='YOUR_DASHSCOPE_API_KEY'" >> ~/.bash_profile

      Alternatively, you can manually modify the ~/.bash_profile file.

      Edit manually

      Run the following command to open the shell configuration file.

      nano ~/.bash_profile

      Add the following content to the configuration file.

      # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
      export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

      To save and close the file in the nano editor, press Ctrl+X, then Y, and then Enter.

    2. Run the following command to make the changes take effect.

      source ~/.bash_profile
    3. Open another terminal window and run the following command to check whether the environment variable takes effect.

      echo $DASHSCOPE_API_KEY

Add temporary environment variable

If you want to use the environment variable only in the current session, add it as a temporary environment variable.

The following commands apply to Zsh and Bash.
  1. Run the following command.

    # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
    export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"
  2. Run the following command to check whether the environment variable takes effect.

    echo $DASHSCOPE_API_KEY

Windows

In Windows, you can configure environment variables using System Properties, CMD, or PowerShell.

System properties

Note
  • An environment variable configured using this method is permanent.

  • You must have administrator permissions to modify system environment variables.

  • After you configure the environment variable, the change does not take effect immediately in open command windows, Integrated Development Environments (IDEs), or other running applications. You must restart these programs or open a new command line window for the environment variable to take effect.

  1. On the Windows desktop, press Win+Q, search for Edit the system environment variables in the search box, and open the System Properties window.

  2. In the System Properties window, click Environment Variables. Then, in the System variables area, click New. Set Variable name to DASHSCOPE_API_KEY and Variable value to your DashScope API key.

    image

  3. Click OK in all three open windows to save the changes and complete the environment variable configuration.

  4. Open a CMD window or a Windows PowerShell window and run the following command to check whether the environment variable takes effect.

    • CMD query command:

      echo %DASHSCOPE_API_KEY%

      image

    • Windows PowerShell query command:

      echo $env:DASHSCOPE_API_KEY

      image

CMD

Add permanent environment variable

If you want the API key environment variable to persist across all new sessions for the current user, you can perform the following steps.

  1. Run the following command in the Command Prompt.

    # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
    setx DASHSCOPE_API_KEY "YOUR_DASHSCOPE_API_KEY"
  2. Open a new Command Prompt window.

  3. Run the following command in the new Command Prompt window to check whether the environment variable takes effect.

    echo %DASHSCOPE_API_KEY%

    image

Add temporary environment variable

If you want to use the environment variable only in the current session, you can run the following command in the Command Prompt.

# Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
set DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY

You can run the following command in the current session to check whether the environment variable takes effect.

echo %DASHSCOPE_API_KEY%

image

PowerShell

Add permanent environment variable

If you want the API key environment variable to persist across all new sessions for the current user, you can perform the following steps.

  1. Run the following command in PowerShell.

    # Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
    [Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User)
  2. Open a new PowerShell window.

  3. Run the following command in the new PowerShell window to check whether the environment variable takes effect.

    echo $env:DASHSCOPE_API_KEY

    image

Add temporary environment variable

If you want to use the environment variable only in the current session, you can run the following command in PowerShell.

# Replace YOUR_DASHSCOPE_API_KEY with your Alibaba Cloud Model Studio API key.
$env:DASHSCOPE_API_KEY = "YOUR_DASHSCOPE_API_KEY"

You can run the following command in the current session to check whether the environment variable takes effect.

echo $env:DASHSCOPE_API_KEY

image

Choose a programming language

Select a programming language or tool that you are familiar with.

Python

Step 1: Set up the Python environment

Check your Python version

Run the following command in the terminal to check if Python and pip are installed in your current environment:

Your Python version must be 3.8 or later. For more information, see Install Python.

python -V
pip --version

The following figure shows an example in Windows Command Prompt:

image

FAQ

Q: An error is reported when I run the python -V or pip --version command:

  • 'python' is not recognized as an internal or external command, operable program or batch file.

  • 'pip' is not recognized as an internal or external command, operable program or batch file.

  • -bash: python: command not found

  • -bash: pip: command not found

A: To resolve this issue, perform the following steps:

Windows
  1. Make sure that you have installed Python in your environment and added python.exe to the PATH environment variable. For more information, see Install Python.image

  2. If you have installed Python and added the environment variable but the error persists, close the current terminal, open a new one, and try again.

Linux and macOS

  1. Make sure that you have installed Python in your environment. For more information, see Install Python.

  2. If the error persists after you install Python, run the which python pip command to check if python and pip exist in the system.

    • If the following result is returned, close the current terminal, open a new one, and try again.

      /usr/bin/python
      /usr/bin/pip
    • If the following result is returned, run the which python3 pip3 command to check again.

      /usr/bin/which: no python in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
      /usr/bin/which: no pip in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)

      If the following result is returned, use python3 -V and pip3 --version to check the versions.

      /usr/bin/python3
      /usr/bin/pip3

Configure a virtual environment (Optional)

After you install Python, you can create a virtual environment to install the OpenAI Python SDK or DashScope Python SDK. This helps you avoid dependency conflicts with other projects.

  1. Create a virtual environment

    Run the following command to create a virtual environment named .venv:

    # If the command fails to run, you can replace python with python3 and run it again.
    python -m venv .venv
  2. Activate the virtual environment

    On Windows, run the following command to activate the virtual environment:

    .venv\Scripts\activate

    If you use macOS or Linux, run the following command to activate the virtual environment: source .venv/bin/activate

    source .venv/bin/activate

Install the OpenAI Python SDK or DashScope Python SDK

You can call models on the Alibaba Cloud Model Studio platform using the OpenAI Python SDK or the DashScope Python SDK.

Install the OpenAI Python SDK

Run the following command to install the OpenAI Python SDK:

# If the command fails to run, you can replace pip with pip3 and run it again.
pip install -U openai

image

When the Successfully installed ... openai-x.x.x message appears in the terminal, the OpenAI Python SDK has been installed.

Install the DashScope Python SDK

Run the following command to install the DashScope Python SDK:

# If the command fails to run, you can replace pip with pip3 and run it again.
pip install -U dashscope

image

When the Successfully installed ... dashscope-x.x.x message appears in the terminal, the DashScope Python SDK has been installed.

Note

If the WARNING: You are using pip version xxx; however, version xxx is available. message appears during the SDK installation, it is a notification to update your pip tool and does not affect the SDK installation. You can ignore this message.

Step 2: Call the LLM API

OpenAI Python SDK

If you have installed Python and the OpenAI Python SDK, you can follow these steps to send your API request.

  1. Create a file named hello_qwen.py.

  2. Copy the following code into hello_qwen.py and save the file.

    import os
    from openai import OpenAI
    
    try:
        client = OpenAI(
            # The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://modelstudio.console.alibabacloud.com/?tab=model#/api-key
            # If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx",
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            # The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1
            base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
        )
    
        completion = client.chat.completions.create(
            model="qwen-plus",  
            messages=[
                {'role': 'system', 'content': 'You are a helpful assistant.'},
                {'role': 'user', 'content': 'Who are you?'}
                ]
        )
        print(completion.choices[0].message.content)
    except Exception as e:
        print(f"Error message: {e}")
        print("For more information, see https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code")
  3. Run python hello_qwen.py or python3 hello_qwen.py on the command line.

    If the No such file or directory message appears, specify the full file path of the file.

    After the command runs, the following output is returned:

    I am a large-scale language model developed by Alibaba Cloud. My name is Qwen.

DashScope Python SDK

If you have installed Python and the DashScope Python SDK, you can follow these steps to send your API request.

  1. Create a file named hello_qwen.py.

  2. Copy the following code into hello_qwen.py and save the file.

    import os
    from dashscope import Generation
    import dashscope
    # The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/api/v1
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    
    messages = [
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': 'Who are you?'}
        ]
    response = Generation.call(
        # The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://modelstudio.console.alibabacloud.com/?tab=model#/api-key
        # If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key = "sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"), 
        model="qwen-plus",   
        messages=messages,
        result_format="message"
    )
    
    if response.status_code == 200:
        print(response.output.choices[0].message.content)
    else:
        print(f"HTTP return code: {response.status_code}")
        print(f"Error code: {response.code}")
        print(f"Error message: {response.message}")
        print("For more information, see https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code")
  3. Run python hello_qwen.py or python3 hello_qwen.py on the command line.

    Note

    The command in this example must be run from the directory where the Python file is located. If you want to run it from another location, you must specify the full file path.

    After the command runs, the following output is returned:

    I am a large language model from Alibaba Cloud. My name is Qwen.

Node.js

Step 1: Set up the Node.js environment

Check the Node.js installation status

Run the following command in the terminal to check if Node.js and npm are installed in your current environment:

node -v
npm -v

The following figure shows an example in Windows Command Prompt:

image

This command displays your current Node.js version. If Node.js is not installed in your environment, go to the Node.js official website to download it.

Install the SDK

Run the following command in the terminal:

npm install --save openai
# or
yarn add openai
Note

If the installation fails, you can configure a traffic mirror source to complete the installation. For example:

npm config set registry https://registry.npmmirror.com/

After you configure the traffic mirror source, run the SDK installation command again.

image

When the added xx package in xxs message appears in the terminal, the OpenAI SDK has been installed. You can use npm list openai to check the specific version information.

Step 2: Call the LLM API

  1. Create a hello_qwen.mjs file.

  2. Copy the following code into the file.

    import OpenAI from "openai";
    
    try {
        const openai = new OpenAI(
            {
                // The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://modelstudio.console.alibabacloud.com/?tab=model#/api-key
                // If you have not configured an environment variable, replace the following line with your Model Studio API key: apiKey: "sk-xxx",
                apiKey: process.env.DASHSCOPE_API_KEY,
                // The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1
                baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
            }
        );
        const completion = await openai.chat.completions.create({
            model: "qwen-plus",  
            messages: [
                { role: "system", content: "You are a helpful assistant." },
                { role: "user", content: "Who are you?" }
            ],
        });
        console.log(completion.choices[0].message.content);
    } catch (error) {
        console.log(`Error message: ${error}`);
        console.log("For more information, see https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
    }
  3. Run the following command on the command line to send an API request:

    node hello_qwen.mjs
    Note
    • The command in this example must be run from the directory where the hello_qwen.mjs file is located. If you want to run it from another location, you must specify the full file path.

    • Make sure that the SDK is installed in the same directory as the hello_qwen.mjs file. Otherwise, a Cannot find package 'openai' imported from xxx error is reported.

    After the command runs successfully, the following output is returned:

    I am a language model from Alibaba Cloud. My name is Qwen.

Java

Step 1: Set up the Java environment

Check your Java version

Run the following command in the terminal:

java -version
# (Optional) If you use Maven to manage and build Java projects, you must also make sure that Maven is correctly installed in your development environment.
mvn --version

The following figure shows an example in Windows Command Prompt:

image

To use the DashScope Java SDK, you need Java 8 or a later version. You can check the first line of the output to confirm the Java version. For example, the output openjdk version "16.0.1" 2021-04-20 indicates that the current Java version is Java 16. If Java is not installed in your current environment or the version is earlier than Java 8, go to Java Downloads to download and install it.

Install the SDK

If Java is installed in your environment, install the DashScope Java SDK. For more information about SDK versions, see DashScope Java SDK. Add the Java SDK dependency and replace the-latest-version with the latest version number.

XML

  1. Open the pom.xml file of your Maven project.

  2. Add the following dependency information within the <dependencies> tag.

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dashscope-sdk-java</artifactId>
        <!-- Replace 'the-latest-version' with the latest version number: https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
        <version>the-latest-version</version>
    </dependency>
  3. Save the pom.xml file.

  4. Use a Maven command, such as mvn compile or mvn clean install, to update the project dependencies. Maven automatically downloads and adds the DashScope Java SDK to your project.

The following figure shows an example in the IntelliJ IDEA IDE on Windows:

image

Gradle

  1. Open the build.gradle file of your Gradle project.

  2. Add the following dependency information in the dependencies block.

    dependencies {
        // Replace 'the-latest-version' with the latest version number: https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
        implementation group: 'com.alibaba', name: 'dashscope-sdk-java', version: 'the-latest-version'
    }
  3. Save the build.gradle file.

  4. On the command line, switch to the root directory of your project and run the following Gradle command to update the project dependencies. This command automatically downloads and adds the DashScope Java SDK to your project.

    ./gradlew build --refresh-dependencies

The following figure shows an example in the IntelliJ IDEA IDE on Windows:

image

Step 2: Call the LLM API

Run the following code to call the LLM API.

import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/api/v1
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        Message systemMsg = Message.builder()
                .role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant.")
                .build();
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("Who are you?")
                .build();
        GenerationParam param = GenerationParam.builder()
                // The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://modelstudio.console.alibabacloud.com/?tab=model#/api-key
                // If you have not configured an environment variable, replace the following line with your Model Studio API key: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // For a list of models, see https://www.alibabacloud.com/help/en/model-studio/getting-started/models
                .model("qwen-plus")
                .messages(Arrays.asList(systemMsg, userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("Error message: "+e.getMessage());
            System.out.println("For more information, see https://www.alibabacloud.com/help/en/model-studio/developer-reference/error-code");
        }
        System.exit(0);
    }
}

After the code runs, the following output is returned:

I am a large-scale language model developed by Alibaba Cloud. My name is Qwen.

curl

You can call models using OpenAI compatible HTTP or DashScope HTTP. For a list of models, see Models and pricing.

Note

If you have not configured an environment variable, replace -H "Authorization: Bearer $DASHSCOPE_API_KEY" \ with -H "Authorization: Bearer sk-xxx" \.

OpenAI compatible HTTP

The URL in the code example is for the Singapore region. If you use a model in the China (Beijing) region, you must replace the URL with https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions.

Run the following command to send an API request:

Windows

Run the following command in Command Prompt:

# ======= Important =======
# The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
# The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Delete this comment when you run the command. ===

curl -X POST "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions" \
-H "Authorization: Bearer %DASHSCOPE_API_KEY%" \
-H "Content-Type: application/json" \
-d "{
    \"model\": \"qwen-plus\",
    \"messages\": [
        {
            \"role\": \"system\",
            \"content\": \"You are a helpful assistant.\"
        },
        {
            \"role\": \"user\",
            \"content\": \"Who are you?\"
        }
    ]
}"

Linux/macOS

Run the following command in the terminal:

# ======= Important =======
# The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
# The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Delete this comment when you run the command. ===

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-plus",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "Who are you?"
        }
    ]
}'

After you send the API request, the following response is returned:

{
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "I am a large language model from Alibaba Cloud. My name is Qwen."
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 22,
        "completion_tokens": 16,
        "total_tokens": 38
    },
    "created": 1728353155,
    "system_fingerprint": null,
    "model": "qwen-plus",
    "id": "chatcmpl-39799876-eda8-9527-9e14-2214d641cf9a"
}

DashScope HTTP

The URL in the code example is for the Singapore region. If you use a model in the China (Beijing) region, you must replace the URL with https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation.

Run the following command to send an API request:

Windows

Run the following command in Command Prompt:

# ======= Important =======
# The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
# The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Delete this comment when you run the command. ===

curl -X POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer %DASHSCOPE_API_KEY%" \
-H "Content-Type: application/json" \
-d "{
  \"model\": \"qwen-plus\",
  \"input\": {
    \"messages\": [
      {
        \"role\": \"system\",
        \"content\": \"You are a helpful assistant.\"
      },
      {
        \"role\": \"user\",
        \"content\": \"Who are you?\"
      }
    ]
  },
  \"parameters\": {
    \"result_format\": \"message\"
  }
}"

Linux/macOS

Run the following command in the terminal:

# ======= Important =======
# The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/en/model-studio/get-api-key
# The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Delete this comment when you run the command. ===

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-plus",
    "input":{
        "messages":[      
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "Who are you?"
            }
        ]
    },
    "parameters": {
        "result_format":"message"
    }
}'

After you send the API request, the following response is returned:

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": "I am a large language model from Alibaba Cloud. My name is Qwen."
                }
            }
        ]
    },
    "usage": {
        "total_tokens": 38,
        "output_tokens": 16,
        "input_tokens": 22
    },
    "request_id": "87f776d7-3c82-9d39-b238-d1ad38c9b6a9"
}

Other languages

Call the LLM API

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"log"
	"net/http"
	"os"
)

type Message struct {
	Role    string `json:"role"`
	Content string `json:"content"`
}
type RequestBody struct {
	Model    string    `json:"model"`
	Messages []Message `json:"messages"`
}

func main() {
	// Create an HTTP client.
	client := &http.Client{}
	// Construct the request body.
	requestBody := RequestBody{
		// For a list of models, see https://www.alibabacloud.com/help/en/model-studio/getting-started/models
		Model: "qwen-plus",
		Messages: []Message{
			{
				Role:    "system",
				Content: "You are a helpful assistant.",
			},
			{
				Role:    "user",
				Content: "Who are you?",
			},
		},
	}
	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		log.Fatal(err)
	}
	// Create a POST request. The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
	req, err := http.NewRequest("POST", "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions", bytes.NewBuffer(jsonData))
	if err != nil {
		log.Fatal(err)
	}
	// Set request headers.
	// The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://modelstudio.console.alibabacloud.com/?tab=model#/api-key
	// If you have not configured an environment variable, replace the following line with your Model Studio API key: apiKey := "sk-xxx"
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")
	// Send the request.
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	// Read the response body.
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	// Print the response content.
	fmt.Printf("%s\n", bodyText)
}
<?php
// The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
$url = 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions';
// The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://modelstudio.console.alibabacloud.com/?tab=model#/api-key
// If you have not configured an environment variable, replace the following line with your Model Studio API key: $apiKey = "sk-xxx";
$apiKey = getenv('DASHSCOPE_API_KEY');
// Set request headers.
$headers = [
    'Authorization: Bearer '.$apiKey,
    'Content-Type: application/json'
];
// Set the request body.
$data = [
    "model" => "qwen-plus",
    "messages" => [
        [
            "role" => "system",
            "content" => "You are a helpful assistant."
        ],
        [
            "role" => "user",
            "content" => "Who are you?"
        ]
    ]
];
// Initialize a cURL session.
$ch = curl_init();
// Set cURL options.
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Execute the cURL session.
$response = curl_exec($ch);
// Check for errors.
if (curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
}
// Close the cURL resource.
curl_close($ch);
// Output the response.
echo $response;
?>
using System.Net.Http.Headers;
using System.Text;

class Program
{
    private static readonly HttpClient httpClient = new HttpClient();

    static async Task Main(string[] args)
    {
        //  The API keys for the Singapore and China (Beijing) regions are different. To obtain an API key, see https://modelstudio.console.alibabacloud.com/?tab=model#/api-key
        // If you have not configured an environment variable, replace the following line with your Model Studio API key: string? apiKey = "sk-xxx";
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");

        if (string.IsNullOrEmpty(apiKey))
        {
            Console.WriteLine("The API key is not set. Make sure that the 'DASHSCOPE_API_KEY' environment variable is set.");
            return;
        }
        // The following URL is for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
        string url = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions";
        // For a list of models, see https://www.alibabacloud.com/help/en/model-studio/getting-started/models
        string jsonContent = @"{
            ""model"": ""qwen-plus"",
            ""messages"": [
                {
                    ""role"": ""system"",
                    ""content"": ""You are a helpful assistant.""
                },
                {
                    ""role"": ""user"", 
                    ""content"": ""Who are you?""
                }
            ]
        }";

        // Send the request and get the response.
        string result = await SendPostRequestAsync(url, jsonContent, apiKey);

        // Output the result.
        Console.WriteLine(result);
    }

    private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
    {
        using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
        {
            // Set request headers.
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            // Send the request and get the response.
            HttpResponseMessage response = await httpClient.PostAsync(url, content);

            // Process the response.
            if (response.IsSuccessStatusCode)
            {
                return await response.Content.ReadAsStringAsync();
            }
            else
            {
                return $"Request failed: {response.StatusCode}";
            }
        }
    }
}

API reference

  • For information about the request and response parameters of the Qwen API, see Qwen.

  • For more information about other models, see Models and pricing.

FAQ

What to do if the Model.AccessDenied error is reported after I call the LLM API?

A: This error occurs because you are using the API key of a sub-workspace, and the sub-workspace does not have permission to access the applications or models in the default workspace. To use the API key of a sub-workspace, the Alibaba Cloud account administrator must grant model authorization to the sub-workspace. For example, this topic uses the Qwen-Plus model. For more information, see Authorize a sub-workspace to call models.

What to do next

View more models

The sample code uses the qwen-plus model. Alibaba Cloud Model Studio also supports other Qwen models and third-party models such as DeepSeek and Kimi. For more information about supported models and their API references, see Models and pricing.

Learn about advanced usage

The sample code implements a simple Q&A interaction. To learn more about advanced uses of the Qwen API, such as streaming output, structured output, and function calling, see the topics in the Overview of text generation models section.

Experience models online

To interact with a large model in a dialog box, similar to the experience on Qwen Chat, visit Playground (Singapore or Beijing).