wellapi2接口文档
    • seedance 2.0视频接口文档(按token计费)
    • seedance 2.0视频接口文档(按秒计费)
    • gpt-image-2/2.5(1k,2k,4k)图片生成API文档
    • Nano Banana Pro 及 Nano Banana 2 API 文档
    • gpt-image-2.5 API文档,支持10万并发

    gpt-image-2.5 API文档,支持10万并发

    Base URL:
    https://wellapi.cc
    鉴权方式:

    0. 阅读前说明#

    当前同时提供同步和异步两种调用模式:
    同步接口:POST /v1/images/generations 和 POST /v1/images/edits 会等待图片生成完成后返回结果。
    异步接口:POST /v1/image-batches/generations 和 POST /v1/image-batches/edits 会先返回 batch_id,客户再通过任务查询接口获取进度和图片 URL。
    异步模式适合批量生图、长时间生图和不希望长期保持 HTTP 连接的客户系统。同步接口保持兼容,原有客户不需要修改。

    0.1 客户系统里怎么填 API 地址和 API Key#

    如果客户系统是 OpenAI 兼容配置页,通常这样填:
    配置项填写值说明
    API Base URL / Base URLhttps://wellapi.cc/v1OpenAI 兼容 base URL,一般由客户端自动拼接 /images/generations
    API Key / Secret Key<NEWAPI_TOKEN>填 NewAPI token 本身
    Authorization HeaderBearer <NEWAPI_TOKEN>如果系统要求完整 Header,就填这个
    Modelgpt-image-2.5-flare-img标准和 4K 都填写这个模型名;具体能力由所使用 Token 的权限决定
    如果客户系统要求填写完整请求地址,而不是 base URL,则按接口分别填写:
    场景完整请求地址
    查询模型https://wellapi.cc/v1/models
    文生图https://wellapi.cc/v1/images/generations
    图生图/图片编辑https://wellapi.cc/v1/images/edits
    异步纯文生图https://wellapi.cc/v1/image-batches/generations
    异步图生图(逐图/多图合成/分组)https://wellapi.cc/v1/image-batches/edits
    查询异步任务https://wellapi.cc/v1/image-batches/{batch_id}
    查询异步任务明细https://wellapi.cc/v1/image-batches/{batch_id}/items
    取消异步任务https://wellapi.cc/v1/image-batches/{batch_id}/cancel
    重新排队失败项https://wellapi.cc/v1/image-batches/{batch_id}/retry-failed
    注意:
    大多数客户端的 API Key 输入框只填 token 字符串,不要加 Bearer 前缀。
    只有在客户端明确要求填写完整 Authorization Header 时,才填 Bearer <NEWAPI_TOKEN>。
    不要填写任何后端服务密钥、渠道密钥或账号密钥。
    /v1/image-batches/* 是当前入口提供的异步扩展接口,不是普通 OpenAI 客户端会自动调用的标准路径。客户系统必须按第 8 节显式实现提交、轮询和明细分页。

    1. 当前可用接口#

    能力MethodPath当前状态说明
    查询模型GET/v1/models支持查询当前 token 可用模型
    文生图POST/v1/images/generations支持同步等待图片结果
    图生图/图片编辑POST/v1/images/edits支持同步等待图片结果
    异步纯文生图POST/v1/image-batches/generations支持返回 batch_id,每个任务项生成 1 张图
    异步图生图(逐图/多图合成/分组)POST/v1/image-batches/edits支持使用 images 或 tasks 组织任务,每个任务生成 1 张结果图
    查询异步总体状态GET/v1/image-batches/{batch_id}支持返回总数和各状态数量
    查询异步任务明细GET/v1/image-batches/{batch_id}/items支持分页返回每张图的状态和 URL
    取消异步任务POST/v1/image-batches/{batch_id}/cancel支持取消尚未执行的项目
    重试失败项POST/v1/image-batches/{batch_id}/retry-failed支持只重新排队 failed 项
    图片 variationsPOST/v1/images/variations不对外提供当前入口未提供该能力
    文件上传后用 file_id 生图POST/v1/files + file_id不支持当前图像链路不支持 file_id 图片引用
    客户侧只应接入:

    2. 模型#

    客户请求中必须填写当前 Token 已授权的模型。
    当前客户侧模型名使用:
    gpt-image-2.5-flare-img,gpt-image-2.5-sunburst-img,gpt-image-2-1k-new,gpt-image-2-2k-new,gpt-image-2-4k-new

    3. 通用请求规范#

    3.1 Headers#

    JSON 请求:
    multipart 图片编辑请求:
    使用 curl、浏览器 FormData、Axios、requests 等客户端发送 multipart 时,不要手动写死 boundary,让客户端自动生成 Content-Type。

    3.2 超时要求#

    生图不是低延迟接口。同步接口和异步接口的客户端超时应分开设置。
    项目建议值
    连接超时10-30 秒
    同步生图读取超时700 秒以上
    同步前端 UI 最短等待不建议小于 10 分钟
    异步提交/查询读取超时30-60 秒
    异步查询间隔建议 3-10 秒,不要毫秒级轮询
    单次请求重试只对可重试错误做 1-2 次
    如果客户前端在 60-120 秒自行超时,可能出现:
    前端显示失败。
    服务端仍在继续等待生图结果。
    后端最终可能已经生成图片,但客户前端没有继续等待响应。
    客户误以为“只返回了一部分图片”。
    同步接口的正确接入方式是:客户端等待完整 HTTP 响应,读取 data 数组里的图片 URL 或 base64。
    异步接口的正确接入方式是:提交成功后保存 batch_id,断开提交连接,定时查询总体状态;任务进入终态后,再分页读取明细接口中的 output_url。异步任务在服务端持续执行,不依赖客户保持 HTTP 连接。

    4. 查询模型#

    4.1 请求#

    4.2 curl 示例#

    4.3 返回示例#

    {
      "object": "list",
      "data": [
        {
          "id": "gpt-image-2.5-flare-img",
          "object": "model",
          "created": 0,
          "owned_by": "x"
        }
      ]
    }
    实际返回以客户 token 权限为准。客户只能调用返回列表中已授权的模型。

    5. 文生图:POST /v1/images/generations#

    5.1 请求地址#

    5.2 支持参数#

    参数类型必填默认/建议当前支持说明
    modelstring是gpt-image-2.5-flare-img支持用它匹配渠道、计费和限流
    promptstring是无支持生图提示词,不能为空
    ninteger否1支持,范围 1-4一次生成图片数量。生产建议固定 1
    sizestring否1024x1024 或按需求填写支持尺寸要求,必须使用字母 x,不要使用乘号 ×
    qualitystring否auto支持推荐 auto 或 high
    response_formatstring否url支持 url、b64_json推荐 url
    最小请求体:
    {
      "model": "gpt-image-2.5-flare-img",
      "prompt": "生成一张白色背景上的蓝色圆形图标,无文字",
      "n": 1,
      "response_format": "url"
    }
    推荐请求体:
    {
      "model": "gpt-image-2.5-flare-img",
      "prompt": "生成一张未来城市海报,无文字,高清细节,赛博朋克风格",
      "n": 1,
      "size": "2048x1536",
      "quality": "high",
      "response_format": "url"
    }

    5.3 不对客户承诺的参数#

    以下字段即使某些文档或兼容协议中出现,也不要作为当前客户接入依赖:
    参数当前口径原因
    stream不对客户开放当前客户侧按同步 HTTP 响应接入,不提供稳定的图片流式事件协议
    style不建议使用当前链路不承诺按该字段语义处理
    background不建议使用当前链路不承诺按该字段语义处理
    moderation不建议使用当前链路不承诺按该字段语义处理
    user不建议使用用户识别、额度和日志由 NewAPI token 完成
    任意自定义字段不支持NewAPI 图像 relay 不保证转发未知字段

    5.4 尺寸说明#

    推荐常用值:
    场景推荐 size
    方图1024x1024
    横图1536x1024、2048x1536
    竖图1024x1536、1536x2048
    海报1440x2160、1536x2048
    注意:
    size 必须使用 x,例如 1024x1024。
    不要写成 1024×1024。
    最终图片尺寸可能受模型、提示词和生图服务处理影响,不保证 100% 等于请求值。

    5.5 curl 示例#

    5.6 返回示例:URL 模式#

    {
      "created": 1783487667,
      "data": [
        {
          "url": "https://example-image-domain/images/2026/07/08/example.png",
          "revised_prompt": "生成一张未来城市海报,无文字,高清细节,赛博朋克风格"
        }
      ],
      "usage": {
        "input_tokens": 30,
        "output_tokens": 8000,
        "total_tokens": 8030
      }
    }
    客户读取:
    data[0].url
    如果 n > 1,依次读取:
    data[0].url
    data[1].url
    ...

    5.7 返回示例:base64 模式#

    请求中设置:
    {
      "response_format": "b64_json"
    }
    返回示例:
    {
      "created": 1783487667,
      "data": [
        {
          "b64_json": "<base64 image data>",
          "revised_prompt": "..."
        }
      ]
    }
    建议默认使用 url,不要默认使用 b64_json。原因:
    b64_json 响应体很大,更容易触发客户端、浏览器、代理或网关限制。
    url 更适合前端展示、下载测速、缓存和失败重试。

    6. 图生图/图片编辑:POST /v1/images/edits#

    6.1 请求地址#

    该接口是同步接口,会等待图片编辑结果返回。

    6.2 支持参数#

    参数类型必填默认/建议当前支持说明
    modelstring是gpt-image-2.5-flare-img支持不要省略
    promptstring是无支持图片编辑要求
    imagefile/string是无支持multipart 文件,或 JSON 中的图片 URL/data URL/base64
    imagesarray否无支持JSON 多图输入;multipart 多图建议用 image[]
    maskfile/string否无支持蒙版图;multipart 文件或 JSON 中的 data URL/base64
    ninteger否1支持,范围 1-4生产建议固定 1
    sizestring否按需求填写支持尺寸要求,使用 x
    qualitystring否auto支持推荐 auto 或 high
    response_formatstring否url支持 url、b64_json推荐 url
    重要:JSON 调用时请使用 image 或 images,不要使用 image_url。当前入口不把 image_url 作为正式支持字段。
    4K token 调用图片编辑时,应使用 multipart 文件上传方式,具体见第 7 节。不要把标准生图链路支持的 JSON 图片 URL 方式直接套用到 4K 图片编辑。

    6.3 推荐方式:multipart 单图编辑#

    6.4 multipart 多图参考#

    也可以使用 image[0]、image[1] 这类字段名;推荐统一使用 image[]。

    6.5 multipart 带 mask#

    mask 规则:
    透明区域表示需要编辑的区域。
    不透明区域表示保留区域。
    建议 mask 和原图尺寸一致。

    6.6 JSON 图片 URL 调用#

    如果客户不方便传 multipart,可以把图片 URL 放在 image 字段里:
    多图 JSON:
    {
      "model": "gpt-image-2.5-flare-img",
      "prompt": "参考这些图片生成一张新海报,无文字",
      "images": [
        "https://example.com/a.png",
        "https://example.com/b.jpg"
      ],
      "response_format": "url"
    }
    图片 URL 要求:
    URL 必须能被服务端访问。
    URL 返回内容必须是图片。
    URL 不能要求登录、cookie、验证码或内网访问。
    图片太大、下载太慢、返回 HTML 或返回非图片内容都会失败。

    6.7 JSON base64 输入#

    支持在 JSON 中传 base64 或 data URL,但不建议大图使用。
    data URL 示例:
    {
      "model": "gpt-image-2.5-flare-img",
      "prompt": "增强图片细节,无文字",
      "image": "data:image/png;base64,<base64>",
      "response_format": "url"
    }
    数组示例:
    {
      "model": "gpt-image-2.5-flare-img",
      "prompt": "参考这些图片生成一张统一风格海报,无文字",
      "images": [
        "data:image/png;base64,<base64-a>",
        "data:image/jpeg;base64,<base64-b>"
      ],
      "response_format": "url"
    }
    建议:
    大图优先使用 multipart。
    base64 会让请求体变大,容易触发客户端或网关体积限制。
    如果使用 base64,推荐使用 data URL,明确带上 MIME 类型。

    6.8 不支持 file_id#

    当前图像链路不支持:
    {
      "file_id": "file-xxx"
    }
    如果客户有图片文件,请使用以下任一方式:
    multipart 上传:image=@input.png
    JSON 图片 URL:image: "https://example.com/input.png"
    JSON 多图数组:images: ["https://example.com/a.png", "..."]
    JSON data URL/base64:image: "data:image/png;base64,<base64>"

    6.9 图片输入限制#

    限制项当前值
    单张输入图最大大小25 MB
    单次最多输入图数量10 张
    单次总输入大小150 MB
    单张输入图最大像素数33,554,432 像素
    超过限制时,通常返回 400 或 413。

    7. 4K 生图接口说明#

    7.1 4K 能力如何选择#

    4K 与标准生图使用相同的 NewAPI Base URL、接口路径和客户侧模型名。客户不能通过修改模型名切换到 4K,必须使用已开通 4K 权限的专用 Token。
    配置项4K 调用要求
    Base URLhttps://wellapi.cc/v1
    同步文生图POST /v1/images/generations
    同步图生图/图片编辑POST /v1/images/edits
    异步纯文生图POST /v1/image-batches/generations
    异步 4K 图生图当前不作为正式客户能力承诺
    客户侧模型名gpt-image-2.5-flare-img
    Token已开通 4K 权限的专用 Token
    同步接口建议读取超时700 秒以上
    异步提交/查询超时30-60 秒
    必须注意:
    4K 权限由服务端绑定到 Token,客户请求体里不需要添加额外路由字段。
    4K 请求的 model 仍然填写 gpt-image-2.5-flare-img,不要自行添加 -4k 或其他后缀。
    普通 token 即使请求了 4K 尺寸,也不代表会进入 4K 生图链路。
    4K 同步接口单次固定 n=1。异步纯文生图的 n 代表要创建的独立任务项数,每个任务项仍只生成 1 张图。
    quality 可以填写 auto 或 high 以保持 OpenAI 兼容,但它不负责切换 4K;4K 由 Token 权限选择,size 负责指定 4K 输出画幅和目标像素尺寸。

    7.2 4K 支持的尺寸#

    4K 请求建议显式填写下表中的 size,以便稳定选择画幅和输出尺寸:
    画幅比例size适用场景
    1:12880x2880方图、商品主图
    5:43200x2560横向商品图、摄影图
    4:52560x3200竖向商品图、社交媒体海报
    4:33264x2448常规横图
    3:42448x3264常规竖图
    3:23504x2336摄影横图
    2:32336x3504摄影竖图
    16:93840x2160标准 4K 横屏、封面、视频画面
    9:162160x38404K 竖屏、短视频海报
    21:93696x1584超宽横幅、电影画幅
    尺寸规则:
    必须使用 ASCII 字母 x,例如 3840x2160,不能使用乘号 ×。
    需要确定画幅时应显式填写 size,不要只依赖提示词里的“横图”“竖图”或“4K”。
    1024x1024、1024x1792、1792x1024 属于常见兼容默认尺寸,不应作为 4K 目标尺寸使用。
    只填写“4K”但不填写 size 时,服务端可能按默认画幅处理;生产接入不要依赖该默认行为。
    不在表内的尺寸可能被按最接近的支持画幅处理,客户需要精确尺寸时只使用表内值。

    7.3 4K 同步文生图#

    请求格式与标准文生图相同,但必须使用 4K 专用 Token,并填写支持的 4K 尺寸。
    成功后仍然从以下字段读取图片:
    data[0].url
    如果使用 response_format=b64_json,则读取:
    data[0].b64_json

    7.4 4K 同步图生图/图片编辑#

    4K 图片编辑当前使用 multipart 文件上传。客户必须把输入图作为 image 文件字段提交,不要使用 JSON 图片 URL、JSON base64 或 file_id 作为 4K 图片编辑的正式接入方式。
    4K 图生图注意事项:
    输入图用于约束主体时,提示词必须明确写出要保留的主体、品牌、包装和构图,不能只写“按照模板生成”。
    size 控制目标输出画幅;输入图与目标比例不一致时,可能发生裁切、扩展或重新构图。
    大图优先使用 multipart,且仍受单张 25 MB、最多 10 张、单次总计 150 MB 和单张最大 33,554,432 像素限制。
    如果一次需要参考多张图,使用多个 image[] 文件字段;生产环境建议先用单图验证主体保持效果。

    7.5 4K 参数范围#

    参数4K 当前口径说明
    model必须为 gpt-image-2.5-flare-img不使用单独的 4K 模型名
    prompt必填、不能为空文生图和图片编辑都必须提供
    n同步固定为 1;异步为任务项数异步批次中每个项目仍生成 1 张图片
    size使用第 7.2 节尺寸表建议显式填写
    qualityauto 或 high兼容字段,不用于选择 4K 分辨率
    response_format同步支持 url 或 b64_json;异步只支持 url异步结果从 output_url 读取
    image4K 图片编辑需要当前 4K 图片编辑只正式承诺同步 multipart 方式
    mask不对外承诺当前 4K 图片编辑不解析该字段
    4K 支持同步文生图、同步图生图和异步纯文生图。异步 4K 纯文生图必须使用 4K 专用 Token,并按第 8 节传入 Idempotency-Key。由于异步图生图批次只接受图片 URL,而当前 4K 图片编辑的正式接入方式是 multipart,因此本文档不对客户承诺异步 4K 图生图。

    8. 异步生图接口#

    异步接口使用批次 batch 模型。客户先提交批次,服务端返回 batch_id;生图在后台继续执行,客户通过 batch_id 查询进度和每张图片的结果。

    8.1 异步接口一览#

    能力MethodPath说明
    提交异步纯文生图POST/v1/image-batches/generationsn 代表要创建的图片任务项数
    提交异步图生图POST/v1/image-batches/edits统一支持逐图处理、多图合成和批量分组,每个任务只生成 1 张结果图
    查询批次总体状态GET/v1/image-batches/{batch_id}返回总数和各状态计数
    查询批次明细GET/v1/image-batches/{batch_id}/items分页返回每个项目的状态和 output_url
    取消批次POST/v1/image-batches/{batch_id}/cancel取消尚未开始的项目
    重新排队失败项POST/v1/image-batches/{batch_id}/retry-failed只处理 failed 项
    注意:异步接口不使用 /v1/image-tasks/*。客户必须使用上表中的 /v1/image-batches/* 路径。

    8.2 鉴权和幂等键#

    提交异步任务时需要以下 Headers:
    Idempotency-Key 是异步提交接口的必填 Header:
    长度必须在 8-128 字符之间。
    推荐使用 UUID,例如 img-550e8400-e29b-41d4-a716-446655440000。
    同一 Token、同一幂等键、同一请求体重复提交时,不会创建新批次,而是以 200 返回原批次。
    同一 Token 的同一幂等键如果用于不同请求体,返回 409 idempotency_conflict。
    如果客户提交时遇到网络超时,应使用原幂等键重试,不要立即换新键,否则可能创建重复批次。
    查询、取消和重试接口也需要 Authorization,但不需要 Idempotency-Key。批次只能被创建它的用户账号查询和操作。

    8.3 提交异步纯文生图#

    请求地址:
    支持参数:
    参数类型必填默认/范围说明
    modelstring是gpt-image-2.5-flare-img必须为当前 Token 已授权模型
    promptstring是最长 32,768 字节不能为空
    ninteger否默认 1,当前 1-1000创建的独立生图项数,每项生成 1 张图
    sizestring否按模型能力使用 1024x1024 这类格式
    qualitystring否默认 auto推荐 auto 或 high
    response_formatstring否默认 url异步接口只支持 url
    imagesarray否必须省略纯文生图不接受图片;传入时返回 400 images_not_allowed
    curl 示例:
    新批次创建成功时返回 202 Accepted:
    {
      "batch_id": "img_batch_example123",
      "status": "queued",
      "model": "gpt-image-2.5-flare-img",
      "prompt": "生成一张未来城市海报,无文字,高清细节",
      "size": "2048x1536",
      "quality": "high",
      "response_format": "url",
      "total": 3,
      "queued": 3,
      "running": 0,
      "succeeded": 0,
      "failed": 0,
      "unknown": 0,
      "canceled": 0,
      "cancel_requested": false,
      "created_at": 1784491200,
      "updated_at": 1784491200,
      "poll_url": "/v1/image-batches/img_batch_example123"
    }
    客户必须保存 batch_id。poll_url 是相对路径,请求时在前面加上 https://wellapi.cc。
    4K 异步文生图也使用该接口,但必须使用 4K 专用 Token,并将 size 设为第 7.2 节支持的 4K 尺寸。

    8.4 提交异步图生图(统一接口)#

    请求地址:
    该接口统一支持三种使用方式:
    场景请求字段任务数量每个任务的输入每个任务的输出
    批量逐图处理tasks,每项只放 1 张图1-1000 个1 张图片每个任务 1 张结果图
    单任务多图合成顶层 images固定 1 个1-10 张参考图1 张结果图
    批量分组图生图tasks,每项放 1-10 张图1-1000 个1-10 张参考图每个任务 1 张结果图
    images 和 tasks 必须二选一,不能同时传入,也不能同时省略。
    通用参数:
    参数类型必填默认/范围说明
    modelstring是gpt-image-2.5-flare-img必须为当前 Token 已授权模型
    promptstring是最长 32,768 字节应用于该批次内所有任务
    imagesstring[]条件必填1-10 个公网 URL单任务模式;整组图片共同生成 1 张结果图
    tasksobject[]条件必填1-1000 个任务批量模式;每项格式为 {"images": [...]}
    sizestring否按模型能力所有任务使用相同输出尺寸
    qualitystring否默认 auto推荐 auto 或 high
    response_formatstring否默认 url异步接口只支持 url
    批量逐图处理示例:
    {
      "model": "gpt-image-2.5-flare-img",
      "prompt": "分别把每张图片调整为统一的商业摄影风格",
      "tasks": [
        {"images": ["https://example.com/input-1.png"]},
        {"images": ["https://example.com/input-2.png"]},
        {"images": ["https://example.com/input-3.png"]}
      ],
      "response_format": "url"
    }
    该示例创建 3 个独立任务,每个任务输入 1 张图片并输出 1 张结果图。
    单任务多图合成示例:
    该请求只创建 1 个任务,因此批次返回的 total 为 1,最终只产生 1 个 output_url。
    批量分组图生图示例:
    该示例创建 2 个任务,批次 total 为 2;每个任务分别使用自己的 images 数组,并各生成 1 张结果图。一个批次内的 prompt、size 和 quality 是共用的;如果每个任务需要不同提示词,应拆成不同批次提交。
    输入限制:
    images 和 tasks[].images 只接受公网 http/https 图片 URL。
    每个任务最少 1 张、最多 10 张参考图。
    tasks 最多 1000 项;配置上限调整时仍不超过服务端硬限制。
    不接受 multipart 文件、base64、data URL 或 file_id。
    URL 只允许标准 80 或 443 端口,不能包含用户名或密码,单个 URL 最长 4096 字符。
    不允许本机、内网、云元数据和其他保留地址。
    URL 必须能被服务端直接访问,不能依赖 Cookie、登录态或验证码。
    URL 最终必须返回有效图片,并受第 6.9 节的图片大小和像素限制。
    明细中 input_images 表示该任务使用的全部参考图,兼容字段 input_url 表示第一张参考图;成功结果仍从 output_url 获取。

    8.5 查询批次总体状态#

    请求示例:
    返回格式与提交成功时的批次对象相同。主要字段:
    字段类型说明
    batch_idstring批次唯一 ID
    statusstring批次总体状态
    totalinteger项目总数
    queuedinteger等待执行或等待自动重试的数量
    runninginteger正在执行的数量
    succeededinteger已成功数量
    failedinteger已确认失败数量
    unknowninteger结果无法确认的数量
    canceledinteger已取消数量
    cancel_requestedboolean是否已请求取消批次
    created_atintegerUnix 秒级时间戳
    updated_atintegerUnix 秒级时间戳
    poll_urlstring该批次的相对查询路径
    批次 status 可能值:
    状态是否终态含义
    queued否已创建,尚未开始执行
    running否至少一个项目已开始或已产生部分结果
    succeeded是所有项目成功
    partially_succeeded是至少一个成功,但不是全部成功
    failed是所有项目都进入失败、未知或取消状态,且没有成功项
    canceled是批次已请求取消,且已无排队或运行中项目
    queued 计数同时包含内部的 queued 和 retry_wait 项。客户不应使用 queued + running == 0 自行推测结果,应直接以批次 status 是否进入终态为准。

    8.6 查询每个项目的结果#

    请求示例:
    查询参数:
    参数必填默认/范围说明
    limit否默认 100,范围 1-100每页项目数
    cursor否无传入上一页的 next_cursor
    status否无按项目状态过滤
    返回示例:
    {
      "object": "list",
      "data": [
        {
          "item_id": "img_batch_example123_000001",
          "position": 1,
          "input_url": "",
          "status": "succeeded",
          "attempt_count": 1,
          "output_url": "https://example-image-domain/images/result-1.png",
          "http_status": 200,
          "started_at": 1784491202,
          "finished_at": 1784491240,
          "created_at": 1784491200,
          "updated_at": 1784491240
        },
        {
          "item_id": "img_batch_example123_000002",
          "position": 2,
          "input_url": "",
          "status": "failed",
          "attempt_count": 1,
          "http_status": 400,
          "error_code": "content_policy_violation",
          "error_message": "请求未能生成图片",
          "started_at": 1784491202,
          "finished_at": 1784491205,
          "created_at": 1784491200,
          "updated_at": 1784491205
        }
      ],
      "next_cursor": "12345",
      "has_more": true
    }
    纯文生图项的 input_url 为空字符串。逐图图生图项的 input_url 为对应输入图 URL。多图合成任务还会返回 input_images 数组,包含该任务的全部参考图。每个任务成功后都从唯一的 output_url 读取结果图片地址。
    分页规则:
    1.
    先不传 cursor 请求第一页。
    2.
    has_more=true 时,将返回的 next_cursor 原样传给下一次请求。
    3.
    has_more=false 时停止分页。
    4.
    cursor 应当作不透明字符串处理,不要自行加减。
    项目 status 可能值:
    状态是否终态含义
    queued否等待执行
    running否正在生成图片
    retry_wait否遇到可安全重试的临时错误,等待自动重试
    succeeded是成功,output_url 可用
    failed是已确认失败,可查看 error_code 和 error_message
    unknown是超时或后台执行中断后无法确认上游是否已接受任务
    canceled是项目在开始执行前被取消
    status 过滤只接受上表中的值。如果只需要成功图片,可以请求:

    8.7 推荐轮询流程#

    1.
    创建唯一 Idempotency-Key 并提交批次。
    2.
    保存响应中的 batch_id。
    3.
    每 3-10 秒请求一次 GET /v1/image-batches/{batch_id}。
    4.
    status 为 queued 或 running 时继续等待。
    5.
    status 为 succeeded、partially_succeeded、failed 或 canceled 时停止轮询。
    6.
    分页请求 /items,收集所有 succeeded 项的 output_url,并单独处理 failed、unknown 和 canceled 项。
    当前未提供 webhook 或回调 URL,客户需要使用轮询。不要以每秒多次的高频率请求查询接口。

    8.8 取消批次#

    取消规则:
    queued 和 retry_wait 项会立即变为 canceled。
    已经 running 的项不会强制中断,仍可能生成成功并产生费用。
    批次已进入完成状态时,取消不会改变已完成结果。
    取消接口返回更新后的批次对象。最终仍应查询 /items 确认每个项目的结果。

    8.9 重新排队失败项#

    返回示例:
    {
      "batch_id": "img_batch_example123",
      "requeued": 2
    }
    只有 failed 项会被重新排队。unknown、canceled 和已成功项不会被该接口重试。调用后应继续查询批次状态。
    客户应先根据 error_code 确认失败是否可恢复,再调用该接口。内容策略拒绝、无效图片、无权限模型等明确错误不应盲目重试。

    8.10 自动重试、未知状态和计费#

    批次中每个项目都会独立调用一次标准生图或图片编辑链路,并按每个项目实际执行结果记录用量和扣费。
    创建批次、查询状态和查询明细本身不是生图任务;真正执行的图片项目才会进入生图计费链路。
    系统当前对 429 和能确认为“尚未进入上游生图”的临时 503 做有限自动重试,当前每项最多 3 次尝试。
    对超时、后台执行异常中断或无法确认上游是否已接受的情况,项目会进入 unknown,不会自动重试,以避免重复生图和重复计费。
    retry-failed 会发起新的生图尝试,成功后可能产生新费用。
    取消时已经运行的项目可能继续完成并计费。
    客户不应自动重试 unknown 项。如需重新生成,应在确认原结果不存在后,作为一个新业务任务明确提交。

    8.11 异步接口错误响应#

    参数、鉴权或提交失败时,返回 OpenAI 风格错误对象:
    {
      "error": {
        "message": "Idempotency-Key 长度必须在 8 到 128 之间",
        "type": "invalid_request_error",
        "code": "invalid_idempotency_key",
        "param": null
      }
    }
    异步提交和查询常见 HTTP 状态码:
    HTTP 状态码含义
    202新批次已创建
    200查询/操作成功,或幂等重复提交返回原批次
    400请求体、图片 URL、n、images/tasks、response_format、幂等键或分页参数无效
    401Token 无效或未提供
    403Token 无权使用请求模型
    404当前用户下不存在该 batch_id
    409同一幂等键被用于不同请求
    429提交请求触发模型请求限流
    500服务端创建、查询或更新批次失败
    注意:查询接口返回 200 只表示“成功读取任务记录”,不代表所有图片生成成功。每张图的实际结果必须以 /items 中的 status、output_url、error_code 和 error_message 为准。

    8.12 异步模式当前边界#

    能力当前状态
    异步纯文生图支持
    异步逐图图生图支持;使用 /v1/image-batches/edits 的 tasks,每个任务只放 1 张图
    异步多图合成支持;每个任务使用 1-10 张参考图并生成 1 张图
    异步批量分组图生图支持;最多 1000 个任务,每个任务各生成 1 张图
    异步 multipart 文件上传不支持
    异步 base64/data URL 输入不支持
    异步 file_id 输入不支持
    异步 b64_json 返回不支持,只返回 output_url
    webhook/任务回调不支持,需要轮询
    每个项目的输入参考图纯文生图为 0 张;逐图图生图为 1 张;多图合成为 1-10 张
    每个项目的输出图片数固定 1 张
    单批项目数当前最多 1000,生产建议先以小批量验证
    异步的“批次数量”不等于“同时并发数”。提交 1000 个项目只表示创建 1000 个排队任务,服务端会按当前容量受控执行,客户不应以批次数量推断完成时间。

    9. 错误码和处理建议#

    HTTP 状态码常见原因是否建议重试处理建议
    200同步成功,或异步查询/操作成功不需要同步读取 data;异步读取批次或明细状态
    202异步批次创建成功不需要保存 batch_id 并开始轮询
    400参数错误、prompt 为空、图片引用不合法、幂等键无效、内容策略拒绝否修改请求
    401Token 无效或未传否检查 Authorization
    403无权限、模型未授权、请求被拒绝视情况检查 token 权限、模型和请求内容
    404异步 batch_id 不存在或不属于当前用户否检查 batch_id 和鉴权账号
    409同一 Idempotency-Key 用于不同请求否使用原请求体,或为真正的新任务生成新键
    413图片太大、像素过高或请求体过大否压缩图片或减少图片数量
    429限流、并发过高或服务繁忙是降低并发,稍后重试
    500服务端内部错误是稍后重试;如果持续出现,提供 request id 排查
    502生图服务响应异常或未返回图片是稍后重试
    503生图服务暂不可用或容量不足是稍后重试
    504生图等待超时是稍后重试;客户端读取超时也要设置足够长
    常见错误含义:
    错误内容含义
    image request exceeded max duration服务端等待生图结果达到最大时长
    rate limit / 429token、渠道、账号或服务侧限流
    completed without generating images生图服务完成但没有返回可用图片
    content_policy_violation内容策略拒绝
    image file exceeds maximum size limit输入图片超过大小限制
    image dimensions exceed maximum pixel limit输入图片像素过高
    image is required图片编辑接口没有收到有效 image
    model is required未填写 model
    invalid_idempotency_key异步提交未传幂等键,或长度不在 8-128 字符之间
    idempotency_conflict幂等键已经用于另一个请求体
    images_not_allowed向异步纯文生图接口传入了 images
    invalid_input_mode/v1/image-batches/edits 中 images 和 tasks 没有正确二选一
    invalid_task_count异步多图编辑的 tasks 数量超过允许范围
    invalid_image_count某个多图编辑任务没有图片,或参考图超过 10 张
    unsupported_response_format异步接口传入了 b64_json 或其他非 url 格式
    batch_not_found当前用户下找不到该批次
    execution_timeout_unknown异步项超时,无法确认上游是否已接受,系统未自动重试
    同步接口的生图错误通过当次 HTTP 响应返回。异步接口中,批次查询可能返回 200,但某个图片项仍然可能失败;该项的错误会保存在 /items 的 http_status、error_code 和 error_message 中。

    10. 重试和并发建议#

    10.1 文生图#

    项目建议
    n同步生产建议固定 1;异步纯文生图中表示任务项数
    单用户并发建议从 1-2 开始
    可重试状态码429/500/502/503/504
    最大重试次数1-2 次
    重试间隔10-30 秒递增
    客户端读取超时700 秒以上

    10.2 图生图#

    项目建议
    输入图大小单张控制在 25 MB 内
    输入图数量建议 1-4 张,最多 10 张
    图片 URL确保服务端可访问,且返回 image/*
    base64只适合小图,不建议传大图
    multipart大图和生产接入优先使用

    10.3 异步生图#

    项目建议
    首次接入批量先用 1-10 个项目验证完整提交、轮询和分页流程
    单批上限当前 1000 个,不代表 1000 个同时执行
    多图合成每个任务 1-10 张参考图,只生成 1 张结果图
    批量多图合成使用 tasks 分组,最多 1000 个任务;每个任务独立生成 1 张图
    轮询间隔3-10 秒
    提交超时后重试必须复用原 Idempotency-Key 和原请求体
    业务系统持久化保存 Idempotency-Key、batch_id、提交时间和业务订单 ID
    失败项重试先判断 error_code,只重试可恢复错误
    unknown 项不要自动重试,避免重复生图和重复计费
    结果读取必须按 next_cursor 读完所有页,不要只读第一页
    客户侧不要为了“加快”而重复提交相同业务任务。异步接口已经由服务端统一排队和控制执行并发,客户只需查询原 batch_id。

    10.4 下载图片#

    如果客户要测试下载速度:
    1.
    请求时设置 response_format=url。
    2.
    等接口返回 data[0].url。
    3.
    直接对该 URL 做下载测速。
    下载示例:
    只看响应头:

    11. 客户接入最小示例#

    11.1 文生图#

    11.2 图生图 multipart#

    11.3 图生图 JSON URL#

    注意:这里是 image,不是 image_url。

    11.4 异步纯文生图#

    读取响应中的 batch_id,然后查询:
    进入终态后读取图片结果:
    成功图片位于:
    data[i].output_url

    11.5 异步图生图(统一接口)#

    这里的整个 images 数组属于同一个任务,最终只返回 1 张结果图。需要逐图处理或一次提交多组任务时,改用第 8.4 节的 tasks 数组。

    11.6 使用幂等键安全重试提交#

    如果异步提交请求遇到客户端网络超时,应使用完全相同的请求体和原幂等键重试:
    服务端如果已创建该批次,会返回原 batch_id,不会再创建一批。不要在每次网络重试时生成新幂等键。

    12. 给客户的标准答复口径#

    12.1 是否支持异步?#

    当前同时支持同步和异步生图。
    
    同步文生图使用 POST /v1/images/generations,同步图生图使用 POST /v1/images/edits,接口会等待图片完成后返回。
    
    异步纯文生图使用 POST /v1/image-batches/generations;异步图生图统一使用 POST /v1/image-batches/edits。逐图处理时在 tasks 的每个任务中只放 1 张图;多图合成一张时使用顶层 images;批量分组时使用 tasks 并在每个任务中放 1-10 张图。提交成功后返回 batch_id,客户通过 GET /v1/image-batches/{batch_id} 查询状态,通过 /items 接口获取每个任务的 output_url。

    12.2 为什么前端显示失败但服务端可能成功?#

    生图可能需要 1-10 分钟。如果客户端前端在 60-120 秒左右自行超时,就可能先显示失败,但服务端仍在等待生图结果。建议同步接口读取超时设置到 700 秒以上,并以最终 HTTP 响应里的 data 数组为准。

    12.3 图片 URL 怎么取?#

    请求时设置 response_format=url。接口成功后从 data[0].url 获取图片下载地址。如果 n 大于 1,则依次读取 data[0].url、data[1].url。

    12.4 图生图 URL 参数填什么?#

    JSON 调用请把图片 URL 填在 image 字段里,例如 "image": "https://example.com/input.png"。不要使用 image_url。

    12.5 4K 怎么调用?#

    4K 和标准生图使用同一套模型名,model 都填写 gpt-image-2.5-flare-img。调用 4K 时必须使用已开通 4K 权限的专用 Token,不需要添加额外路由字段,也不要修改模型名。
    
    同步 4K 文生图使用 /v1/images/generations;同步 4K 图片编辑使用 /v1/images/edits 和 multipart 文件上传。异步 4K 纯文生图使用 /v1/image-batches/generations,且只支持 response_format=url。当前不对客户承诺异步 4K 图生图,4K 图片编辑请继续使用同步 multipart 方式。

    12.6 异步图片 URL 怎么取?#

    先通过 GET /v1/image-batches/{batch_id} 等待批次进入终态,再调用 GET /v1/image-batches/{batch_id}/items 分页读取明细。status=succeeded 的项目从 output_url 取图片地址。异步接口不返回 b64_json。

    12.7 多张图片怎么异步生成一张图?#

    使用 POST /v1/image-batches/edits,并把 1-10 张公网图片 URL 放在同一个 images 数组中。整个 images 数组只创建一个任务,最终只生成一张结果图。
    
    如果要批量提交多组“多图生成一图”任务,则使用 tasks 数组;每个 tasks[i].images 是一组参考图,每组独立生成一张结果图。
    修改于 2026-09-10 10:54:32
    上一页
    Nano Banana Pro 及 Nano Banana 2 API 文档
    Built with