把创作能力接入你的应用
服务端地址:https://zaomengwang.com/api/v1。在个人中心创建密钥,请求携带 Authorization: Bearer zm_你的密钥。请勿把密钥放进网页前端。
报价与计费
API 和网站共用账户余额与售价。先请求报价,再提交与报价完全相同的内容。每次新的生成使用唯一 X-Operation-ID;网络中断后保留原编号,查询状态,勿换编号盲目重发。报价有效期5分钟,生成成功交付才结算;失败释放冻结额度,状态不明保留冻结等待核对。每账户限60次请求/分钟。
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /models | 模型与网站售价(整数分) |
| GET | /wallet | 余额、冻结额度与最近100条订单 |
| POST | /quote | 取得签名报价 |
| POST | /images/generations | 单张文字生图 |
| GET | /images/history | 图片结果与订单状态 |
| GET | /images/media/{文件名} | 下载当前账户图片 |
| POST | /video/tasks | 创建视频任务 |
| POST | /video/tasks/status | 查询任务并结算成功结果 |
| POST | /video/operations/status | 按原操作号查询提交结果 |
| POST | /video/operations/recover | 恢复已有操作,禁止重复生成 |
| POST | /video/materials | 上传参考素材 |
| GET | /video/media/{文件名} | 下载当前账户视频 |
图片生成示例(Python)
import json, os, uuid, requests
base = 'https://zaomengwang.com/api/v1'
headers = {'Authorization': 'Bearer ' + os.environ['ZAOMENG_API_KEY']}
operation = 'image-' + uuid.uuid4().hex
body = {'model': 'yingke:gpt-image-2.5-flare', 'prompt': '云海上的东方天宫,金色逆光',
'size': '1024x1024', 'n': 1}
r = requests.post(base + '/quote', headers=headers, json={
'endpoint': '/api/images/generations', 'operationId': operation, 'request': body})
r.raise_for_status()
quote = r.json()
print('费用(分):', quote['quote']['amountFen'])
# 在你的应用中完成费用确认后提交。
headers.update({'X-Operation-ID': operation, 'X-Studio-Quote': json.dumps({
'quote': quote['quote'], 'signature': quote['signature']})})
r = requests.post(base + '/images/generations', headers=headers, json=body, timeout=300)
r.raise_for_status()
print(r.json())
先通过 GET /models 获取当前可用模型与尺寸。图片参考使用 image_urls 数组,上传内容为 PNG、JPEG 或 WebP 的 data URL;每张最多8MB,请求正文最多10MB。每次生成1张。返回202表示已接收;每5秒调用 POST /images/recover,正文为 {"operationId": "原操作编号"},直到 status 为 succeeded 或 failed。不要重新提交生成请求。
视频参数
造梦线路使用 videoProvider: "yingke",例如 videoModel: "yingke:wan3-pro"。网站模型ID须按当前模型目录原样传递。生成内容还包含 shotId、sourceHash、specHash(你的稳定内容标识)、prompt、duration、ratio、resolution、references: []、generateAudio: true、watermark: false。只使用模型支持的时长、清晰度、比例与素材类型。报价 endpoint 为 /api/video/tasks,提交内容必须与报价内容一致。
视频返回 taskId 后,每10秒调用状态接口,正文包含原始 request 和 taskId。使用原操作编号恢复未知状态;暂停或状态未知都不代表失败。素材与输出仅属于当前密钥的账户。密钥只用于 /api/v1/;撤销密钥或修改密码会停止后续调用。
错误与重试
401:密钥无效;402:余额不足,未生成;409:报价过期、内容变化或结果待核对;429:请求频繁;502/503:服务异常。operation_uncertain 不代表失败,不要创建新操作重复付费。图片下载失败后继续查询原任务,不会重复创建或扣费。