跳转到内容

快速开始

本页带你从零发出第一个请求:创建 API Key → 查询可用平台 → 提交问题 → 轮询结果 → 读取回答。全程只需要一个终端。

  1. 登录开发者控制台,进入 API Key 页,点「创建 API Key」,填写名称(如「本地测试」)并选择有效期。

    创建成功后弹窗会显示完整 Key(形如 gdev_ 开头的一串字符)。完整 Key 只显示这一次,复制后保存到环境变量:

    Terminal window
    export MAXAEO_API_KEY="gdev_你的完整Key"

    更多 Key 管理操作见管理 API Key。

  2. 先用最简单的请求确认 Key 可用,同时拿到各平台的标识和单价:

    Terminal window
    curl -X POST "https://maxaeo.cn/geoapi/geodata/developer/platforms/get" \
    -H "Authorization: Bearer $MAXAEO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{}'

    返回(节选):

    {
    "ret": 1,
    "data": {
    "ent": {
    "platforms": ["kimi", "doubao", "yuanbao", "deepseek", "…"],
    "items": [
    {
    "platform": "doubao",
    "region": "domestic",
    "platform_status": "normal",
    "p1_credits": 6,
    "p2_credits": 3,
    "has_stats": true,
    "success_rate": 0.96,
    "p50_duration_seconds": 52,
    "sample_count": 124,
    "stats_updated_at": 1793018400
    }
    ]
    }
    }
    }

    ret 为 1 表示成功。提交任务时 platform 填 platforms 里的标识(platform_status 为 maintenance 的平台暂停接单);p1_credits / p2_credits 是两档优先级每次成功调用的点数(上面数值仅为示例,以实际返回为准)。

    如果返回 {"ret":1030, …},说明 Key 无效,检查环境变量是否完整、Key 是否被停用,见认证与 API Key。

  3. 向豆包提问。不传 priority 时按 P2 标准档执行和计价:

    Terminal window
    curl -X POST "https://maxaeo.cn/geoapi/geodata/developer/task/submit" \
    -H "Authorization: Bearer $MAXAEO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"platform": "doubao", "query": "适合程序员的机械键盘推荐"}'

    接口立即返回任务,状态为 queued:

    {
    "ret": 1,
    "data": {
    "ent": {
    "task_id": "task_3f6c1d2e-8a4b-4c1f-9e2d-7b5a0c9d1e23",
    "platform": "doubao",
    "query": "适合程序员的机械键盘推荐",
    "status": "queued",
    "priority": 2,
    "credits": 3,
    "…": "…"
    }
    }
    }

    记下 task_id。此时 credits 是预占的点数:任务成功才真正扣除,失败或取消会退回。

  4. 每隔 15 秒查询一次,直到 status 变为 succeeded、failed 或 canceled:

    Terminal window
    curl -X POST "https://maxaeo.cn/geoapi/geodata/developer/task/get" \
    -H "Authorization: Bearer $MAXAEO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"task_id": "task_3f6c1d2e-8a4b-4c1f-9e2d-7b5a0c9d1e23"}'

    抓取本身通常需要几十秒到两分钟,排队时间另算;平台繁忙时可能要等更久。中间状态 dispatching、pending、running 都是正常的,继续轮询即可,详见任务生命周期。

  5. 任务成功后,响应里:

    • answer:AI 回答原文(Markdown),保留平台自己的引用标记。
    • raw_result.references:引用来源列表,cited: true 表示被回答正文引用。
    • share_link:平台分享链接(平台未提供时为空)。
    • credits:本次实际扣除的点数。

    字段含义见任务对象,解析技巧见解析回答结果。

下面的脚本串起提交、轮询和读取三步。API Key 从环境变量 MAXAEO_API_KEY 读取。

quickstart.py
import os
import time
import requests
BASE_URL = "https://maxaeo.cn/geoapi/geodata/developer"
HEADERS = {"Authorization": f"Bearer {os.environ['MAXAEO_API_KEY']}"}
TERMINAL = ("succeeded", "failed", "canceled")
def call(path, body):
resp = requests.post(BASE_URL + path, headers=HEADERS, json=body, timeout=30)
resp.raise_for_status()
data = resp.json()
if data["ret"] != 1:
raise RuntimeError(f"ret={data['ret']}: {data.get('msg')}")
return data["data"]["ent"]
task = call("/task/submit", {"platform": "doubao", "query": "适合程序员的机械键盘推荐"})
print("已提交", task["task_id"])
while task["status"] not in TERMINAL:
time.sleep(15)
task = call("/task/get", {"task_id": task["task_id"]})
print("当前状态", task["status"])
if task["status"] == "succeeded":
print(task["answer"])
for ref in (task.get("raw_result") or {}).get("references", []):
if ref.get("cited") is True:
print(ref.get("rank"), ref.get("title"), ref.get("url"))
print("扣除点数", task["credits"])
else:
print("任务未成功", task["error_code"], task["error_message"])

运行:pip install requests && python quickstart.py