> ## Documentation Index
> Fetch the complete documentation index at: https://docs.portkey.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Dashscope

> Integrate Dashscope with Portkey for seamless completions, embeddings, and advanced features.

## Quick Start

Get started with Dashscope in under 2 minutes:

```python Python icon="python" theme={"system"}
from portkey_ai import Portkey

# 1. Install: pip install portkey-ai
# 2. Add @dashscope provider in model catalog
# 3. Use it:

portkey = Portkey(api_key="PORTKEY_API_KEY")

response = portkey.chat.completions.create(
    model="@dashscope/qwen-turbo",
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.choices[0].message.content)
```

```js Javascript icon="square-js" theme={"system"}
import Portkey from 'portkey-ai'

// 1. Install: npm install portkey-ai
// 2. Add @dashscope provider in model catalog
// 3. Use it:

const portkey = new Portkey({
    apiKey: "PORTKEY_API_KEY"
})

const response = await portkey.chat.completions.create({
    model: "@dashscope/qwen-turbo",
    messages: [{ role: "user", content: "Hello!" }]
})

console.log(response.choices[0].message.content)
```

```python OpenAI Py icon="python" theme={"system"}
from openai import OpenAI
from portkey_ai import PORTKEY_GATEWAY_URL

# 1. Install: pip install openai portkey-ai
# 2. Add @dashscope provider in model catalog
# 3. Use it:

client = OpenAI(
    api_key="PORTKEY_API_KEY",  # Portkey API key
    base_url=PORTKEY_GATEWAY_URL
)

response = client.chat.completions.create(
    model="@dashscope/qwen-turbo",
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.choices[0].message.content)
```

```js OpenAI JS icon="square-js" theme={"system"}
import OpenAI from "openai"
import { PORTKEY_GATEWAY_URL } from "portkey-ai"

// 1. Install: npm install openai portkey-ai
// 2. Add @dashscope provider in model catalog
// 3. Use it:

const client = new OpenAI({
    apiKey: "PORTKEY_API_KEY",  // Portkey API key
    baseURL: PORTKEY_GATEWAY_URL
})

const response = await client.chat.completions.create({
    model: "@dashscope/qwen-turbo",
    messages: [{ role: "user", content: "Hello!" }]
})

console.log(response.choices[0].message.content)
```

```sh cURL icon="square-terminal" theme={"system"}
# 1. Add @dashscope provider in model catalog
# 2. Use it:

curl https://api.portkey.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "x-portkey-api-key: $PORTKEY_API_KEY" \
  -d '{
    "model": "@dashscope/qwen-turbo",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
```

## Add Provider in Model Catalog

Before making requests, add Dashscope to your Model Catalog:

1. Go to [**Model Catalog → Add Provider**](https://app.portkey.ai/model-catalog/providers)
2. Select **Dashscope**
3. Enter your [Dashscope API key](https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key)
4. Name your provider (e.g., `dashscope`)

> [card] [Complete Setup Guide](https://docs.portkey.ai/docs/product/model-catalog.md)
>
> See all setup options and detailed configuration instructions

> [card] [Dashscope Documentation](https://help.aliyun.com/zh/model-studio/developer-reference/compatibility-of-openai-with-dashscope)
>
> Explore the official Dashscope documentation

***

## Dashscope Capabilities

### Embeddings

Generate embeddings for text using Dashscope embedding models:

```python Python theme={"system"}
from portkey_ai import Portkey

portkey = Portkey(api_key="PORTKEY_API_KEY", provider="@dashscope")

response = portkey.embeddings.create(
    input="Your text string goes here",
    model="text-embedding-v3"
)

print(response.data[0].embedding)
```

```javascript Node.js theme={"system"}
import Portkey from 'portkey-ai';

const portkey = new Portkey({
    apiKey: 'PORTKEY_API_KEY',
    provider: '@dashscope'
});

const response = await portkey.embeddings.create({
    input: "Your text string goes here",
    model: "text-embedding-v3"
});

console.log(response.data[0].embedding);
```

***

## Advanced Features

### Track End-User IDs

Monitor user-level costs and requests by passing user IDs:

```python Python theme={"system"}
from portkey_ai import Portkey

portkey = Portkey(api_key="PORTKEY_API_KEY", provider="@dashscope")

response = portkey.chat.completions.create(
    model="qwen-turbo",
    messages=[{"role": "user", "content": "Hello!"}],
    user="user_123456"  # Track this user's usage
)
```

```javascript Node.js theme={"system"}
import Portkey from 'portkey-ai';

const portkey = new Portkey({
    apiKey: 'PORTKEY_API_KEY',
    provider: '@dashscope'
});

const response = await portkey.chat.completions.create({
    model: "qwen-turbo",
    messages: [{ role: "user", content: "Hello!" }],
    user: "user_123456"  // Track this user's usage
});
```

![Portkey Logs with User ID](https://mintcdn.com/portkey-docs/wAHXB_jjwLt8bYcN/images/llms/logs.png?fit=max\&auto=format\&n=wAHXB_jjwLt8bYcN\&q=85\&s=5bb5f6c00cfbb4510128f772319ea814)

> [card] [Learn More About Metadata](https://docs.portkey.ai/docs/product/observability/metadata.md)
>
> Explore how to use custom metadata to enhance your request tracking and analysis

### Gateway Configurations

Use Portkey's Gateway features for advanced routing and reliability:

**Example: Conditional Routing**

```json theme={"system"}
{
  "strategy": {
    "mode": "conditional",
    "conditions": [
      {
        "query": { "metadata.user_plan": { "$eq": "paid" } },
        "then": "qwen-turbo"
      },
      {
        "query": { "metadata.user_plan": { "$eq": "free" } },
        "then": "gpt-3.5"
      }
    ],
    "default": "gpt-3.5"
  },
  "targets": [
    {
      "name": "qwen-turbo",
      "provider": "@dashscope"
    },
    {
      "name": "gpt-3.5",
      "provider": "@openai"
    }
  ]
}
```

![Conditional Routing Diagram](https://mintcdn.com/portkey-docs/wAHXB_jjwLt8bYcN/images/llms/conditional-routing.png?fit=max\&auto=format\&n=wAHXB_jjwLt8bYcN\&q=85\&s=435d0d6163ba594815df7b14d4373828)

> [card] [Load Balancing](https://docs.portkey.ai/docs/product/ai-gateway/load-balancing.md)
>
> Distribute requests across multiple targets

> [card] [Fallbacks](https://docs.portkey.ai/docs/product/ai-gateway/fallbacks.md)
>
> Automatically switch to backup targets

> [card] [Conditional Routing](https://docs.portkey.ai/docs/product/ai-gateway/conditional-routing.md)
>
> Route requests based on conditions

> [card] [Caching](https://docs.portkey.ai/docs/product/ai-gateway/cache-simple-and-semantic.md)
>
> Cache responses to reduce costs

### Guardrails

Enforce input/output checks with custom hooks:

```json theme={"system"}
{
  "provider": "@dashscope",
  "before_request_hooks": [{
    "id": "input-guardrail-id-xx"
  }],
  "after_request_hooks": [{
    "id": "output-guardrail-id-xx"
  }]
}
```

> [card] [Learn More About Guardrails](https://docs.portkey.ai/docs/product/guardrails.md)
>
> Enhance security and reliability with Portkey Guardrails

***

## Next Steps

> [card] [Gateway Configs](https://docs.portkey.ai/docs/product/ai-gateway.md)
>
> Add fallbacks, load balancing, and more

> [card] [Observability](https://docs.portkey.ai/docs/product/observability.md)
>
> Monitor and trace your Dashscope requests

> [card] [Prompt Library](https://docs.portkey.ai/docs/product/prompt-engineering-studio.md)
>
> Manage and version your prompts

> [card] [Metadata](https://docs.portkey.ai/docs/product/observability/metadata.md)
>
> Add custom metadata to requests

For complete SDK documentation:

> [card] [SDK Reference](https://docs.portkey.ai/docs/api-reference/sdk/list.md)
>
> Complete Portkey SDK documentation

***

For the most up-to-date information on supported features and endpoints, please refer to our [API Reference](https://docs.portkey.ai/docs/api-reference/inference-api/introduction.md).

***

> [card] [Portkey is now PRISMA AIRS AI Gateway. See it in action.](https://www.paloaltonetworks.in/ai-security/ai-gateway?utm_source=portkey\&utm_medium=referral\&utm_campaign=prisma_airs\&utm_content=docs_nav#contact)
>
> Contact Us


## Related topics

- [Enterprise Gateway](https://docs.portkey.ai/docs/changelog/enterprise.md)
- [Portkey Models](https://docs.portkey.ai/docs/product/model-catalog/portkey-models.md)
- [October](https://docs.portkey.ai/docs/changelog/2024/oct.md)
- [Overview](https://docs.portkey.ai/docs/integrations/llms.md)
- [April](https://docs.portkey.ai/docs/changelog/2025/apr.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.