Model guide

apifare tools for Qwen

Qwen is a model, not an app, so it gets apifare through the app or code that runs it. Either way it gets one prepaid key for every API it needs, under hard caps and a kill switch.

Get a key

1 · Run Qwen in an MCP client

The quickest route: Qwen Code is built for Qwen models and speaks MCP.

2 · Or hand Qwen apifare as tools over HTTP

If your own code calls Qwen through Alibaba Cloud's OpenAI-compatible API, give the model two tools. When it asks for one, your code runs it against apifare with your token.

import json, os, requests
from openai import OpenAI

llm = OpenAI(
    base_url="https://dashscope-us.aliyuncs.com/compatible-mode/v1",
    api_key=os.environ["DASHSCOPE_API_KEY"],
)
APIFARE = "https://apifare.com"
auth = {"authorization": "Bearer " + os.environ["APIPAY_TOKEN"]}

def tool(name, description, properties):
    return {"type": "function", "function": {
        "name": name, "description": description,
        "parameters": {"type": "object", "properties": properties,
                       "required": list(properties)}}}

tools = [
    tool("apifare_search", "Find a paid API capability by what it does",
         {"q": {"type": "string"}}),
    tool("apifare_call", "Call a capability by slug with its params",
         {"slug": {"type": "string"}, "params": {"type": "object"}}),
]

def run(name, args):
    if name == "apifare_search":
        r = requests.get(APIFARE + "/v1/search",
                         params={"q": args["q"]}, headers=auth)
    else:
        r = requests.post(APIFARE + "/v1/call/" + args["slug"],
                          json=args["params"], headers=auth)
    return r.json()

messages = [{"role": "user",
             "content": "Search the web for today's top AI news"}]
while True:
    msg = llm.chat.completions.create(
        model="<model>", messages=messages, tools=tools,
    ).choices[0].message
    if not msg.tool_calls:
        print(msg.content)
        break
    messages.append(msg)
    for call in msg.tool_calls:
        result = run(call.function.name, json.loads(call.function.arguments))
        messages.append({"role": "tool", "tool_call_id": call.id,
                         "content": json.dumps(result)})

Set DASHSCOPE_API_KEY and APIPAY_TOKEN, then replace <model> with a tool-calling model from Alibaba Cloud's model list. Model Studio has an endpoint per region. The US one is shown; use the one for your region.

3 · Stay in control

Set daily or monthly caps per agent, and keep the kill switch ready. Both are checked before a call is dispatched. When the balance runs out, apifare_call returns an HTTP 402 with a top-up link your app can show; the error catalog lists every stop and what unblocks it. Exact per-call prices are on /capabilities.

Endpoint and tool-calling format checked against Alibaba Cloud's docs on 2026-09-12. Markdown version: /models/qwen.md.

More model guides

DeepSeek · Kimi · OpenAI GPT · Gemini