GETTING STARTED快速开始
使用一个 API Key 完成模型查询和视频生成。
- 1创建密钥点击页面右上角“创建密钥”,立即保存完整值。
- 2查询模型从模型列表读取 id、可用时长、价格和素材限制。
- 3提交并轮询创建生成任务后,通过任务接口读取进度和结果。
curl "https://manyanai.top/api/me" \
-H "Authorization: Bearer <YOUR_API_KEY>"
import os
import time
import requests
base_url = "https://manyanai.top"
headers = {"Authorization": f"Bearer {os.environ['MANYAN_API_KEY']}"}
models = requests.get(f"{base_url}/api/models", timeout=20).json()["models"]
model = next(item for item in models if item["configured"])
payload = {
"model": model["id"],
"prompt": "雨夜霓虹街道,镜头缓慢向前推进",
"duration": str(model["durations"][0]),
"aspect_ratio": model["aspect_ratios"][0],
"numberOfRuns": 1,
"mentions": [],
"references": [],
}
request_headers = {**headers, "Idempotency-Key": "your-unique-request-id"}
created = requests.post(
f"{base_url}/api/generate", json=payload, headers=request_headers, timeout=30
).json()
job_id = created["jobs"][0]["id"]
while True:
job = requests.get(f"{base_url}/api/jobs/{job_id}", headers=headers, timeout=20).json()
print(job["status"], job["progress"], job.get("status_detail"))
if job["status"] in {"completed", "failed"}:
print(job.get("download_url") or job.get("error"))
break
time.sleep(4)
AUTHENTICATIONBearer 鉴权
除模型列表和健康检查外,业务接口都需要在请求头中携带 API Key。
GET/api/me验证密钥并查询积分
新站 API Key 以 sk_my_ 开头;原站 sk_ Key 的哈希已安全迁移到新站,可直接继续使用。不要把任何 Key 放在浏览器前端、公开仓库或日志中。
推荐将 Base URL 设为 https://manyanai.top。原站 /sdas-video/v1/... 兼容入口已由新站接管,原 Key、请求字段和轮询逻辑无需改动;原站工作台入口会跳转到新站。
Authorization: Bearer <YOUR_API_KEY>
{
"email": "user@example.com",
"role": "developer",
"points": 120.5,
"created_at": "2026-08-09T12:00:00+00:00"
}
MODELS & PRICING全部模型、渠道与价格
渠道是模型的供应线路,模型 ID 才是 API 请求参数。价格表直接读取实时接口,后台调价或上下架后会自动同步。
GET/api/models公开读取实时模型、能力与价格
curl "https://manyanai.top/api/models"
渠道(Channel)上游服务线路,用于对模型分组。不要把渠道名填入 model 字段。
模型 ID(Model ID)提交请求时 model 字段必须使用的精确标识,可直接从表格复制。
清晰度480p、720p、1080p 或 2K 可能对应不同模型 ID,也可能使用不同价格。
计费方式按秒:单价 × 时长 × 生成数量;按次:单价 × 生成数量。失败任务自动退款。
按渠道选择模型
先选择渠道,再复制该渠道下具体模型的 ID。每个清晰度都要使用表格中对应的模型 ID。
| 模型 ID | 渠道 / 名称 | 清晰度 / 时长 | 参考素材 | 画面比例 | 价格 / 状态 |
|---|
| 正在读取实时模型目录… |
价格由实时模型接口返回。按秒模型的实际费用由时长和生成数量决定;按次模型不随时长变化。
| 字段 | 说明 |
|---|
id | 提交生成请求时使用的模型标识 |
durations | 模型支持的时长数组;mg2.5 为 4-29,自建 2.5满血固定为 [30] |
aspect_ratios | 模型允许的画面比例数组 |
reference_limits | 图片、音频、视频的最大参考数量;mg2.5 分别为 30、10、10 |
reference_max_bytes | 按素材类型返回单文件字节上限;mg渠道图片为 20971520(20 MB) |
success_stats | 最近 10 个已结束任务的样本数、成功数、失败数与成功率 |
price_value | 积分单价 |
price_unit | use 按次或 second 按秒 |
自建渠道4 · Seedance 2.0
ai-inspo-seedance-2.0-15s · 720p · 固定 15 秒 · 16:9 / 9:16 · 2 积分/次
每次请求必须提供 1–3 张可被 ManyanAI 直接读取的 HTTPS 图片;不支持音频或视频参考。
{
"model": "ai-inspo-seedance-2.0-15s",
"duration": "15",
"resolution": "720p",
"aspect_ratio": "16:9",
"references": [
{"kind": "image", "url": "https://example.com/reference.png"}
]
}
ASSETS上传参考素材
API 客户端上传临时素材时优先使用 /api/assets/temp;素材保留 48 小时,不占长期素材库额度。工作台继续使用 /api/assets 保存长期素材。
大文件或高并发推荐 OSS 直传:文件字节不经过 ManyanAI 应用服务器,可降低排队和上传超时。直传分为初始化、上传、完成登记三步;工作台会自动使用直传,失败时自动回到原上传接口。
POST/api/assets/direct/init初始化 15 分钟直传地址
curl "https://manyanai.top/api/assets/direct/init" \
-X POST \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Idempotency-Key: <UNIQUE_FILE_UPLOAD_ID>" \
-H "Content-Type: application/json" \
-d '{"filename":"reference.mp4","content_type":"video/mp4","size":104857600,"kind":"video","scope":"temporary"}'
{
"upload_id": "0123456789abcdef01234567",
"upload_url": "https://...oss-accelerate.aliyuncs.com/...?signature=...",
"method": "PUT",
"headers": {"Content-Type": "video/mp4"},
"expires_in": 900,
"status": "pending"
}
curl "<UPLOAD_URL>" \
-X PUT \
-H "Content-Type: video/mp4" \
--data-binary "@reference.mp4"
POST/api/assets/direct/complete校验并登记素材
curl "https://manyanai.top/api/assets/direct/complete" \
-X POST \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"upload_id":"0123456789abcdef01234567"}'
必须按初始化响应原样发送 method 和 headers,并在 15 分钟内完成 PUT。完成接口会核对实际字节数,再返回普通 asset_id;之后的生成请求与原上传方式完全相同。网络异常时可用同一个 Idempotency-Key 改调下方的一步上传接口,不会重复创建素材。
POST/api/assets/temp48 小时临时素材(API 推荐)
curl "https://manyanai.top/api/assets/temp" \
-X POST \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Idempotency-Key: <UNIQUE_FILE_UPLOAD_ID>" \
-F "kind=image" \
-F "file=@reference.png"
同一用户和类型的相同文件会复用已有 asset_id。网络重试必须复用相同的 Idempotency-Key;同一个 key 携带不同文件会返回 409,不会创建重复素材。
{
"id": "a1b2c3d4e5f6",
"scope": "temporary",
"expires_at": "2026-09-06T12:00:00+00:00",
"reused": false,
"preview_url": "/api/assets/a1b2c3d4e5f6/file"
}
GET/api/assets/quota查看当前素材额度
额度只统计长期素材,临时素材不会进入 used。批量上传前先调用此接口,分别检查三类素材的使用量和剩余额度。
POST/api/assets长期素材库(工作台 / 需要长期复用)
curl "https://manyanai.top/api/assets" \
-X POST \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Idempotency-Key: <UNIQUE_FILE_UPLOAD_ID>" \
-F "kind=image" \
-F "file=@reference.png"
工作台支持多选和拖拽上传,并通过一个全局队列同时处理最多 20 个文件;图片、音频、视频共用该并发上限。API 的每个上传请求仍只携带一个文件;客户端可以并发多个请求,但应为每个文件使用独立且稳定的 Idempotency-Key。
POST/api/d1/uploadD1 临时图床
curl "https://manyanai.top/api/d1/upload" \
-X POST \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-F "provider=D-1" \
-F "file=@reference.png"
{"imageUri":"d1://...","kind":"image"}
D1 图床返回的 imageUri 可直接放入生成请求的 references,同时填写 kind 或兼容字段 assetType。服务端不会再次下载或重复上传该素材;图片、音频、视频类型会根据文件名和 Content-Type 自动识别。
| kind | 单文件上限 | 素材库上限 |
|---|
image | 30 MB | 30 |
audio | 100 MB | 10 |
video | 250 MB | 10 |
容量是两层限制:上表的“素材库上限”是每个用户独立计算的长期库存,网页登录和该用户的所有 API Key 共用;它不会按全站累计,也不会把多个用户的请求合并。模型返回的 reference_limits 是单次生成限制,mg渠道 另有 reference_max_bytes.image=20971520,即每张图片不超过 20 MB。两个并发请求如果都写入长期素材库,会共同竞争同一用户的库存;改用 /api/assets/temp 后不占长期额度。重复生成请复用同一个 asset_id。
三种引用方式:asset_id 适合长期复用;url 必须能被 ManyanAI 服务器直接读取,受登录、防盗链或内网限制的地址会预检失败;base64、image_base64、imageBase64 或 data:image/...;base64,... 适合请求级临时图片,不占用长期素材库额度。Base64 单张最多 30 MB,单次请求解码后合计最多 30 MB。
"references": [
{"kind":"image", "base64":"<BASE64_DATA>", "content_type":"image/png"},
{"kind":"image", "url":"data:image/jpeg;base64,<BASE64_DATA>"}
]
遇到 400“图片素材数量已达上限”时,表示当前账号的长期素材库已满;新请求应改用 /api/assets/temp,或删除不再使用的长期素材:DELETE /api/assets/<asset_id>。删除会立即从列表和容量统计中消失,任务保留期内仍可用于重试。
GENERATION提交生成任务
模型决定清晰度和素材上限;请求成功后返回一个或多个任务。
POST/api/generateapplication/json
curl "https://manyanai.top/api/generate" \
-X POST \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Idempotency-Key: <UNIQUE_REQUEST_ID>" \
-H "Content-Type: application/json" \
-d '{
"model": "sdas-xh-sd2.0-933-3-pro-720p",
"prompt": "雨夜霓虹街道,镜头缓慢向前推进",
"duration": "15",
"aspect_ratio": "9:16",
"numberOfRuns": 1,
"mentions": [
{"asset_id": "<IMAGE_ASSET_ID>"},
{"asset_id": "<AUDIO_ASSET_ID>"},
{"asset_id": "<VIDEO_ASSET_ID>"}
],
"references": []
}'
接口先返回 submitting 任务,后台随后将有序素材连接到画布并写入结构化 @引用。相同 Idempotency-Key 与相同请求只创建一次;普通用户失败后自动退款,管理员账号生成不扣积分。
references 支持 kind / assetType / asset_type,以及 url / assetUrl / asset_url、base64 / image_base64 / imageBase64。D1 图床结果使用 imageUri;素材库上传结果既可放入 mentions,也可按 {"asset_id":"..."} 放入 references。所有写法都会先统一类型,再按所选模型的图、音频、视频上限校验。
JOBS查询任务
任务列表按创建时间倒序返回当前账号最近 48 小时的全部任务。
GET/api/jobs查询列表
GET/api/jobs/{job_id}查询单个任务
curl "https://manyanai.top/api/jobs/<JOB_ID>" \
-H "Authorization: Bearer <YOUR_API_KEY>"
submittingsubmittedprocessingcompleted
当 status 为 completed 时,使用 result_url 在线播放,使用 download_url 下载附件。download_url 是可直接请求的完整 HTTPS 地址,本地签名地址约 48 小时有效且无需额外 Bearer 鉴权;不要把相对的 result_url 直接传给服务器端下载库。工作台会自动将视频缓存到当前浏览器,缓存后重复播放不再请求服务器;浏览器缓存可能被系统回收,长期保留请下载原文件。
工作台右栏展示最近 48 小时的全部任务;任务记录页在浏览器内按每页 15 条分页。任务列表元数据与视频文件缓存均保存在当前浏览器,不会在服务器创建分页缓存副本。
status_detail 会显示后台静默浏览器当前步骤;提示词违规、内容审核、额度不足、素材上传失败或其他上游错误会原样写入 error。任务进入 failed 后会自动退款。
LEGACY COMPATIBILITY旧版 API 无改动迁移
原开发者可继续使用旧域名、旧 Key、旧请求字段和旧轮询逻辑。
原 Base URL https://fenglinzhong.top/sdas-video 的 /v1/... 请求已由新站接管;原 sk_... Key 在新站本地校验并从新站余额扣费。旧站生成、积分同步与后台入口均已关闭。
GET/v1/models查询兼容模型与价格
POST/v1/video/generations使用旧请求结构创建任务
GET/v1/video/generations/{id}按旧状态结构轮询
正在读取兼容目录…
| 开发者使用的模型 ID | 当前映射 | 分辨率 / 时长 | 参考素材 | 计费 / 状态 |
|---|
| 正在读取兼容模型目录… |
curl "https://fenglinzhong.top/sdas-video/v1/video/generations" \
-X POST \
-H "Authorization: Bearer <OLD_SK_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "ss-xinghe-fast-720p",
"prompt": "一段 9:16 电影感短视频",
"duration": "10",
"aspect_ratio": "9:16"
}'
| 旧版契约 | 兼容行为 |
|---|
sk_... Key | 在新站本地验证,不要求重新创建 Key |
ss-xinghe-fast-720p | 映射到当前 xh 720p 模型;实际使用过的 wf、D1、mg2.5 等旧 ID 同样保留 |
duration | 字符串或整数均可 |
resolution | 兼容 mg2.5 的 480p / 720p 选择 |
| 任务状态 | 继续返回 queued、running、completed、failed |
| 结果与计费 | 继续返回 video_url、download_url、points_cost、points_remaining;下载请优先使用完整的 download_url |
也可以把 Base URL 改为 https://manyanai.top,路径仍使用 /v1/...。旧站独有但新站未接入的模型会明确返回参数错误,不会偷偷回退到旧站生成。