Alibaba Cloud Model Studio (DashScope) Provider Guide
Alibaba Cloud Model Studio (DashScope) is a Tier-2 catalog provider:
OpenAI-wire-compatible with no behavioural quirks, so its entire integration is
one JSON file (src/lib/providers/catalog/dashscope.json) rather than
hand-written code. That file is the source of truth for everything on this
page.
Verification status: this entry is docs-verified only, not yet live-verified. The vendor's
/modelsendpoint needs a key (an unauthenticated GET of it returns HTTP 401), so the model ids come from the vendor's public documentation pages and the roster has not been checked against the API. No account was created and no API key was used to build it.evidence.liveMatrixisnulluntil someone runs the live capability matrix with a real key (see Verification status below).
Key Facts
- Provider id:
dashscope - Protocol: OpenAI-compatible (
/chat/completions) — the vendor's first API call page says "Alibaba Cloud Model Studio supports API calls to models through OpenAI-compatible interfaces and the DashScope SDK." - Base URL:
https://dashscope-intl.aliyuncs.com/compatible-mode/v1— the Singapore region, International deployment scope (see Base URL) - Default model:
qwen3.8-max - Models in catalog: 8, taken from the vendor's Models page, text-generation page and pricing page (retrieved 2026-09-29)
- Streaming: supported — the vendor's
Streaming output page
describes Server-Sent Events, enabled by setting
streamtotrue - Tool calling:
model-dependent— the Function Calling column on the text-generation page reads Supported forqwen3.8-max,qwen3.8-max-0902,qwen3.8-flash,qwen3.7-plus,qwen3.7-flash,deepseek-v4-proanddeepseek-v4-flashin its Recommended models table, and Unsupported for some models under Legacy models (for exampleqwen2.5-omni-7b). The OpenAI-compatible Chat page documents thetoolsparameter - Tools while streaming: supported — the function calling page has a Streaming output section that begins "Using streaming output lets you obtain the tool function name and input parameter information in real time"
- Structured output: supported — the
structured output page
documents
response_formatin JSON Object and JSON Schema modes. Its JSON Object list includeskimi-k3,deepseek-v4-proanddeepseek-v4-flash; its JSON Schema list reads "Qwen3.7-Plus series, Qwen3.7-Flash series, Qwen3.7-Max series, Qwen3.8-Max series, and Qwen3.8-Flash series models." - Structured output + tools together: not declared (
false) — no combined probe was possible without credentials - Embeddings: not declared
- Thinking:
falseon this entry, because NeuroLink'sthinkingLeveloption has not been exercised against it (no credentials were used). The text-generation page lists Thinking mode as Supported for the ids in its Recommended models table, and the OpenAI-compatible Chat page documents theenable_thinkingandreasoning_effortparameters - Billing:
free-tier— the vendor's free quota page says "the platform automatically grants you a free quota for various models" on first activation of Model Studio (Singapore region) - Key format: none declared. The vendor's
error-code page
says "Alibaba Cloud Model Studio API Keys start with
sk-", and NeuroLink does not validate it
Quick Start
1. Get an API key
- Visit: https://account.alibabacloud.com/register/intl_register.htm and create an Alibaba Cloud account (linked from https://www.alibabacloud.com/help/en/model-studio/first-api-call-to-qwen)
- Complete your account information, then open https://modelstudio.console.alibabacloud.com/ap-southeast-1 and agree to the service agreement to activate Model Studio (Singapore region); https://www.alibabacloud.com/help/en/model-studio/new-free-quota says the system then grants a free quota automatically
- Create an API key at https://modelstudio.console.alibabacloud.com/ap-southeast-1/settings/api-key with the region set to Singapore; https://www.alibabacloud.com/help/en/model-studio/get-api-key states that each region has its own endpoint, API keys, and model list, and that they cannot be used across regions. Copy the key when it is shown
- Free quota, per https://www.alibabacloud.com/help/en/model-studio/new-free-quota: valid for 90 days, typically 1,000,000 tokens for each model, and "After the free quota is exhausted, you are automatically billed on a pay-as-you-go basis."
- Set
DASHSCOPE_API_KEYin your .env file (the vendor's examples use the same variable name)
2. Configure
export DASHSCOPE_API_KEY=your-api-key
export DASHSCOPE_MODEL=qwen3.8-max # optional — overrides the default model
export DASHSCOPE_BASE_URL=https://dashscope-intl.aliyuncs.com/compatible-mode/v1 # optional — for example the workspace-dedicated domain
3. Use it
import { NeuroLink } from "@juspay/neurolink";
const neurolink = new NeuroLink();
const result = await neurolink.generate({
input: { text: "Explain context windows in one paragraph." },
provider: "dashscope",
model: "qwen3.8-max",
});
console.log(result.content);
# CLI
npx @juspay/neurolink generate "Hello" --provider dashscope
Per-request credentials are passed the same way as for the other catalog providers:
await neurolink.generate({
input: { text: "Hello" },
provider: "dashscope",
credentials: { dashscope: { apiKey: process.env.DASHSCOPE_API_KEY } },
});
Base URL
The catalog uses https://dashscope-intl.aliyuncs.com/compatible-mode/v1. The
vendor's regions page
lists dashscope-intl.aliyuncs.com as the Singapore DashScope domain, labelled
"existing domain", and says the China (Beijing) and Singapore regions each
support one service deployment scope, Chinese mainland and International
respectively. The
OpenAI-compatible Chat page
says "The existing domain remains fully functional."
The regions page also documents a workspace-dedicated domain,
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1,
labelled "(recommended)" in its endpoint comparison. To use it, set
DASHSCOPE_BASE_URL to that URL with your workspace id. The same page states:
"The DashScope domain (dashscope.aliyuncs.com) will no longer support new
features after September 30, 2026."
Models
| Model | Context | Vision | $/M in · out | Notes |
|---|---|---|---|---|
qwen3.8-max ⭐ | 1M | yes | $2 / $6 | NeuroLink default. The model in the vendor's OpenAI-compatible examples; the text-generation page says "For the strongest reasoning, choose qwen3.8-max." Thinking mode, Function Calling, Built-in tools and Structured output Supported. |
qwen3.8-flash | 1M | yes | $0.15 / $0.47 | Fallback. Thinking mode, Function Calling, Built-in tools and Structured output Supported. |
qwen3.7-plus | 1M | yes | — | Fallback. The text-generation page says "We recommend qwen3.7-plus for balanced performance and cost, with full tool calling and a 1M-token context window for large codebases." |
qwen3.8-max-0902 | 1M | yes | $2 / $6 | Fallback. Thinking mode, Function Calling, Built-in tools and Structured output Supported. |
qwen3.7-flash | 1M | yes | — | Fallback. Thinking mode, Function Calling, Built-in tools and Structured output Supported. |
deepseek-v4-pro | 1M | no | $2.40 / $4.80 | Fallback. Thinking mode, Function Calling and Structured output Supported; Built-in tools Unsupported. |
deepseek-v4-flash | 1M | no (placeholder) | $0.20 / $0.40 | Fallback. Thinking mode, Function Calling and Structured output Supported; Built-in tools Unsupported. |
kimi-k3 | — | yes | $3 / $15 | Fallback. Named under Text generation and under Image & video, Understanding on the Models page. |
Where the sources are:
- Context, thinking mode, function calling, built-in tools, structured
output: the Recommended models table on the text-generation page. The
1Mlabel is recorded as 1,000,000, since the pricing page states "K means 1,000 and M means 1,000,000".kimi-k3has no context figure in the catalog. - Prices: the pricing page, Singapore tab, International deployment scope,
per 1 million tokens, where the page gives one input price and one output
price for the model.
qwen3.7-plusandqwen3.7-flashare left to the pricing page itself. - Vision:
yeson the ids the vendor's vision page names in its image-quantity limits ("Qwen3.8-Max, Qwen3.8-Flash, Qwen3.7-Plus series: Up to 2,048 images" and "Qwen3.7-Flash, Qwen3.6-Plus, Qwen3.6-Flash, Qwen3.5-Plus, Qwen3.5-Flash, Qwen3-VL, Qwen-VL, QVQ series: Up to 256 images"), onqwen3.8-max-0902, which the Visual understanding page (vision-model) names in its Video support list ("Up to 2 hours / 2 GB") and whose Recommended models row lists Max images 2048 and Max videos 64, and onkimi-k3, which the Models page lists under Image & video, Understanding.deepseek-v4-procarriesfalse: the error-code page refers to "plain-text models like qwen3-max, qwen-plus, or deepseek-v4-pro". The schema requires a boolean, anddeepseek-v4-flashcarriesfalseas a placeholder.
models.defaultContextWindow (128,000) and models.defaultMaxOutputTokens
(8,192) are conservative placeholders; the vendor does not publish a general
default. They apply wherever the catalog sets no value, which includes model ids
outside the catalog, the context window of kimi-k3 and the max output tokens
of each catalog id.
Fallback order when the default is unavailable:
qwen3.8-flash → qwen3.7-plus → qwen3.8-max-0902 → qwen3.7-flash →
deepseek-v4-pro → deepseek-v4-flash → kimi-k3.
Verification status
Tier-2 onboarding requires evidence before a provider is accepted, and
pnpm run verify:provider-onboarding gates it in CI. This is what the catalog
currently records for Alibaba Cloud Model Studio (DashScope) —
docs-verified only, not live-verified:
| Probe | Result |
|---|---|
| Roster | unauthenticated GET /compatible-mode/v1/models, HTTP 401 without a key, 2026-09-29. Model ids are taken from the vendor's text-generation and Models pages (retrieved 2026-09-29); the roster is not verified |
| Auth-failure shape | the same GET returned a JSON body with error.message "You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY).", error.type "invalid_request_error", error.param null, error.code null and a top-level request_id; errorRules carries a status 401 rule |
| Endpoint check | an unauthenticated GET of /compatible-mode/v1/chat/completions answered HTTP 400 with code "InvalidParameter" and message "Request method 'GET' is not supported."; that message is also listed on the vendor's error-code page |
| Billing | the free quota page says "the platform automatically grants you a free quota for various models" on first activation (Singapore region), valid for 90 days, and "After the free quota is exhausted, you are automatically billed on a pay-as-you-go basis." — 2026-09-29 |
| Other error rules | FreeTierOnly (HTTP 403) and Arrearage (HTTP 400) rules follow the vendor's error-code page; neither was triggered |
| Tools / structured output | documented on the function calling and structured output pages; neither was exercised live, and no combined tools+schema request was sent — structuredOutputWithTools stays false |
| Live capability sweep | not run. evidence.liveMatrix is null. Before treating this provider as production-ready, run npx tsx test/continuous-test-suite-provider-matrix.ts --provider=dashscope with a real key and record the result. |
Do not treat this entry as equivalent to a live-verified Tier-2 provider
(e.g. FriendliAI, Novita AI) until that live matrix has been run and
evidence.liveMatrix is filled in.
Troubleshooting
The rows below restate what the vendor's error-code page gives for the named error.
| Symptom | Cause the vendor lists | Fix the vendor lists |
|---|---|---|
HTTP 401 invalid_api_key | Among the causes: the API key and the base URL belong to different regions | Use an API key from the Singapore region page together with the Singapore base URL |
HTTP 403 AllocationQuota.FreeTierOnly | "Cause 2": the free quota exhaustion stop was enabled and requests were made after the free quota ran out | Disable the free quota exhaustion stop switch to continue on a paid basis |
HTTP 400 Arrearage | The Alibaba Cloud account associated with the API key has an overdue payment | Check Expenses and Costs on the vendor's billing console and recharge |
HTTP 404 model_not_found | The model does not exist, or Model Studio has not been activated | Compare the model value with the Models page; activate model services in the Model Marketplace |
HTTP 429 Throttling | API calls triggered rate limiting | "Reduce call frequency or retry later." |
See also
- Provider setup overview
- All providers
- Tier-2 onboarding — how this provider's JSON becomes a working integration
- Provider feature compatibility