API 使用指南

用最简单的话,告诉你每个接口怎么用

⚠️ 先搞清楚:API 和网站是两回事

很多人分不清「在网站上用」和「调 API」的区别,这里说清楚:

🌐 网站功能(给普通用户)

  • • 打开网页,填个提示词,点按钮,等结果
  • • 有界面、有按钮、有进度条,所见即所得
  • • 适合偶尔用一下、体验一下效果
  • • 不需要写代码

🔌 API 接口(给开发者)

  • • 用代码发 HTTP 请求,拿 JSON 结果
  • • 没有界面,纯数据交互
  • • 适合接入自己的产品、批量处理、自动化
  • • 需要会写代码(或者用 Postman 之类的工具)

简单来说:这个网站是给开发者用的。我们把 AI 绘画、视频、音乐的能力通过 API 开放出来,你用代码调用,嵌入到你自己的产品里。

如果你不是开发者,不需要用这个网站。想用 AI 绘画/视频去 www.mxai.cn, 想做音乐去 www.suno.cn —— 那些才是给普通用户用的网站。

想接入 OpenClaw、扣子等 AI 助手?对接 API 需要具备开发能力。个人用户建议直接访问 www.mxai.cnwww.suno.cn 页面上的「OpenClaw 接入」入口,我们配备了openclaw的skill, 以及 MCP ,可直接让AI调用,无需写代码即可使用。

开始之前

所有接口都需要一个 API Key 来验证身份。获取方式很简单:

  1. 注册并登录商户后台
  2. 进入「API 密钥管理」页面
  3. 点击「创建新 API 密钥」,拿到你的 access_key

每次请求都要带上这两个 Header:

Authorization: Bearer 你的access_key
Content-Type: application/json

基础地址:/api/v2

V1 接口把 v2 换成 v1 就行,参数完全一样。

🎨 AI 绘画

一共有 5 个绘画接口,根据你的需求选一个就行。

1. 基础绘图 — POST /draw

最基础的文生图/图生图接口,基于 Gemini 2.5 Flash 模型。

适合:快速出图、批量生成、对画质要求不高的场景
POST /api/v2/draw
{
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "一只可爱的小猫在花园里玩耍" }
      ]
    }
  ],
  "stream": false
}

想用参考图?在 content 数组里加一个 image_url 类型的元素就行。stream 设为 true 可以实时看到生成进度。

2. Pro 绘图 — POST /draw-pro

高级模型,画质更好,支持 2K/4K 分辨率。参数和基础绘图一样,多了个 size 参数。

POST /api/v2/draw-pro
{
  "messages": [...],  // 同上
  "stream": false,
  "size": "4K"        // 可选 2K 或 4K,默认 2K
}

3. 即梦 4.5 绘图 — POST /draw-4-5

即梦 4.5 模型,参数和 Pro 一样。

4. 一次出 4 张图 — POST /draw-4-5-four-images

一次请求生成 4 张图片,适合需要多个方案对比的场景。参数同基础绘图,不需要 stream。

5. 统一绘图接口 — POST /nano-pro 或 /images/gemini3pro

功能最全的绘图接口,支持多种模型、多通道、参考图(最多 14 张)、自定义比例。

POST /api/v2/nano-pro
{
  "prompt": "赛博朋克风格的城市夜景",
  "stream": false,
  "image_size": "2K",           // 可选 1K、2K、4K
  "aspect_ratio": "16:9",       // 可选 1:1、3:4、4:3、9:16、16:9
  "reference_images": [          // 可选,最多 14 张参考图
    "https://example.com/ref.jpg"
  ]
}

⚠️ /images/gemini3pro 是同步接口,生成时间可能较长,客户端超时建议设为 10 分钟。

💡 绘画接口通用提示

  • • 除了 /images/gemini3pro 是同步的,其他都是异步的(提交后拿 task_id,轮询查结果)
  • • 参考图建议放在国际服务器上,国内 CDN 可能访问不了
  • • 提示词越详细,出图效果越好(风格、光线、构图都可以写)

🎬 即梦视频

基于豆包的视频生成,支持文生视频、图生视频、首尾帧视频三种模式。

提交任务 — POST /video/generate

视频参数直接写在文本里,用 --ratio、--dur、--rs 控制。

// 文生视频
POST /api/v2/video/generate
{
  "model": "doubao-seedance-1.0-pro-fast",
  "content": [
    { "type": "text", "text": "小猫在花园玩耍 --ratio 16:9 --dur 5" }
  ]
}

// 图生视频:加一个 image_url 元素
// 首尾帧:加两个 image_url,分别设 role 为 first_frame 和 last_frame

--ratio:视频比例(16:9、9:16、1:1 等)

--dur:时长秒数(2~12 秒)

--rs:分辨率(480p、720p、1080p,默认 1080p)

查询结果 — GET /video/task

GET /api/v2/video/task?task_id=你的task_id

每 5~10 秒查一次,status 变成 completed 就能拿到 video_url 了。失败的话积分会自动退还。

⚠️ 生成的视频 24 小时后会被清理,请及时下载保存。

🎥 Sora 视频

OpenAI 的 Sora 视频生成,有普通版和 Pro 版,还支持角色定制。

生成视频 — POST /sora/generate

POST /api/v2/sora/generate
{
  "prompt": "一只猫咪在月光下漫步,电影质感",
  "aspect_ratio": "16:9",      // 16:9 或 9:16,默认 9:16
  "duration": 10,               // 10 或 15 秒
  "reference_image": "https://..." // 可选,参考图
}

Pro 版把路径换成 /sora/generate/pro,参数完全一样。

查询结果 — GET /sora/query

GET /api/v2/sora/query?task_id=你的task_id

角色定制

可以从已生成的视频中提取角色,然后在新视频中复用。

创建角色:POST /sora/create-character

查询角色:GET /sora/query-character?task_id=xxx

💡 通道机制

Sora 和 Veo 支持通道选择,在请求头加 X-Channel 可以指定不同通道(不同价格/供应商)。不传就用默认通道。

📹 Veo 视频

Google 的 Veo 视频生成,支持多种模型。

生成视频 — POST /veo/generate

POST /api/v2/veo/generate
{
  "model": "veo3-fast",         // 可选 veo3-fast、veo31、veo31-fast 等
  "prompt": "金毛犬在海边奔跑,夕阳西下",
  "aspectRatio": "16:9",        // 注意这里是驼峰命名
  "images": ["https://..."]     // 可选,0张=文生视频,1张=首帧,2张=首尾帧
}

查询结果 — GET /veo/task

GET /api/v2/veo/task?task_id=你的task_id

🎵 Suno 音乐

基于 Suno 的音乐生成全家桶,从创作到后期处理一条龙。

核心:生成音乐 — POST /music/generate

两种创作模式:灵感模式(给个描述让 AI 自由发挥)和自定义模式(自己写歌词)。

// 灵感模式:给个描述就行
POST /api/v2/music/generate
{
  "model": "chirp-v3-0",
  "title": "夏日微风",
  "make_instrumental": false,
  "gpt_description_prompt": "轻快的夏日流行曲,带有吉他和钢琴"
}

// 自定义模式:自己写歌词 + 风格标签
{
  "model": "chirp-v3-0",
  "title": "夏日微风",
  "make_instrumental": false,
  "prompt": "微风吹过田野\n阳光洒满大地",
  "tags": "pop, acoustic, summer"
}

// 延长模式:把一首歌续写下去
{
  "model": "chirp-v3-0",
  "title": "夏日微风(续)",
  "make_instrumental": false,
  "task": "extend",
  "continue_clip_id": "之前的歌曲ID"
}

// 翻唱模式
{
  "task": "cover",
  ...
}

查询结果

单个查询:GET /music/task?id=任务ID(注意这里是数字 ID)

批量查询:GET /music/tasks?ids=1,2,3

其他音乐接口

POST /music/upload

上传音频文件(传 audio_url)

POST /music/whole-song

把片段合成完整歌曲(传 clip_id)

POST /music/aligned-lyrics

歌词时间轴对齐(传 lyrics + suno_id)

POST /music/upsample

音质升采样(传 clip_id + model_name)

POST /music/video

生成音乐 MV(传 task_id + suno_id)

POST /music/convert-wav

转换为 WAV 格式(传 task_id + suno_id)

POST /music/crop

裁剪音乐片段(传 clip_id + start_time + end_time)

POST /music/speed

变速处理(传 clip_id + speed 倍率)

💰 积分相关

查余额 — GET /points/balance

GET /api/v2/points/balance
// 返回 { "remaining_points": 1500 }

查流水 — GET /points/logs

GET /api/v2/points/logs?page=1&pageSize=20
// type: 1=消耗 2=充值 3=手动调整 4=退还

查价格 — GET /gemini3pro/v2/channel-points

这个接口不需要认证,可以直接调用,返回所有 API 的积分价格。

❓ 常见问题

异步接口怎么拿结果?

除了 /images/gemini3pro 是同步的(等着就行),其他绘画、视频、音乐接口都是异步的。 流程是:提交任务 → 拿到 task_id → 每隔 5~10 秒查一次状态 → status 变成 completed 就拿到结果了。 建议设个最大超时(比如 5 分钟),别无限轮询。

任务失败了积分会退吗?

会的,自动退还,不用你操作。查询任务时会看到 points_refunded: true。

报 429 是什么意思?

请求太频繁了,被限流了。降低请求频率就行。响应头里的 X-RateLimit-Limit 和 X-RateLimit-Remaining 可以看到你的 QPS 上限和剩余次数。

V1 和 V2 有什么区别?

V2 是用 Bun + Hono 重写的,性能更好。参数和 V1 完全兼容,只需要把 URL 里的 /api/v1 换成 /api/v2 就行。推荐用 V2。

X-Channel 是什么?

通道机制。同一个接口可以有不同的通道,价格和供应商可能不一样。在请求头加 X-Channel: premium 就能指定通道。 不传就用默认通道。目前 nano-pro、Sora、Veo 支持通道选择。

积分怎么算的?

1 元 = 100 积分。不同接口消耗不同,可以通过 /gemini3pro/v2/channel-points 查看所有接口的价格。 视频类接口按分辨率和时长计费,绘画和音乐按次计费。

📋 快速代码示例

完整调用流程(以 Sora 为例)

// 第一步:提交任务
const res = await fetch('/api/v2/sora/generate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer 你的access_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    prompt: '一只猫咪在月光下漫步',
    aspect_ratio: '16:9',
    duration: 10
  })
})
const { data } = await res.json()
const taskId = data.task_id  // 拿到任务 ID

// 第二步:轮询查结果
let result = null
for (let i = 0; i < 60; i++) {  // 最多查 60 次(5 分钟)
  await new Promise(r => setTimeout(r, 5000))  // 等 5 秒
  const query = await fetch(
    `/api/v2/sora/query?task_id=${taskId}`,
    { headers: { 'Authorization': 'Bearer 你的access_key' } }
  )
  const { data: task } = await query.json()

  if (task.status === 'completed') {
    result = task.video_url
    break
  }
  if (task.status === 'failed') {
    console.error('生成失败:', task.error)
    break
  }
}

console.log('视频地址:', result)

🚨 错误码速查

错误码意思怎么办
200成功
400参数不对检查请求参数
401认证失败检查 API Key 是否正确
402积分不够去后台充值
403接口被禁用联系管理员
429请求太频繁降低频率或联系提升 QPS
500服务器出错稍后重试

MXAPI

AI接口聚合平台,提供NANO、即梦、Sora、Veo、Suno等多家厂商API接入服务,一个API Key畅享多家顶级AI服务。

支持的厂商

  • ✓ NANO AI
  • ✓ 即梦
  • ✓ 字节跳动

© 2026 MXAPI. All rights reserved.