跳到主要内容
LocoPal AiLocoPal Ai
API 接入

使用指南

认证与基础规范

基础地址、API Key 认证、请求与响应规范、分页、限流、幂等和错误约定

查看 Markdown

认证与基础规范

本页是所有接口的公共约定,包括基础地址、认证、请求与响应格式、分页、限流、幂等和错误处理。具体接口的参数与示例见接口总览以及各自的接口页面。

基础地址

项目值
默认基础地址https://locopalai.com
海外模型接入地址https://us-api.locopalai.com(如控制台展示其他地址,以控制台为准)
模型与生成接口<基础地址>/v1/...
素材库接口<基础地址>/api/v1/materials/...
请求格式application/json;音频 speech 成功响应为二进制音频
字符编码UTF-8

认证

所有接口都使用同一把平台 API Key:

Authorization: Bearer sk-你的APIKey
Content-Type: application/json
项目说明
获取方式控制台「API 密钥」页面创建,可随时启用、禁用或删除
作用范围模型、文本、图片、视频、音频和素材接口共用同一把 Key,GET 请求同样需要携带
存储要求只放在服务端环境变量或密钥管理服务中,不要写入浏览器、客户端安装包或公开仓库

Bearer 前缀可以省略(但不建议)

实测四种写法:

请求头结果
Authorization: Bearer <key>200 —— 推荐写法
Authorization: <key>(裸 token)200 —— 平台同样接受
authorization: bearer <key>(全小写)200 —— 请求头名与方案名不区分大小写
(完全不发送 Authorization)401

平台同时接受裸 token,因此返回 200 不代表客户端配置正确。反过来,如果某个客户端返回 401,先确认它是否漏发了整个 Authorization 头,而不是直接怀疑 Key 本身。请始终使用 Bearer 写法。

API Key 缺失、错误、被禁用或不属于当前账号时返回 HTTP 401:

{
  "error": {
    "code": "",
    "message": "Invalid token (request id: 202609221135501066578648268d9d6uXuM5QgH)",
    "type": "new_api_error"
  }
}

注意 code 是空字符串。 鉴权失败时平台不填 code,所以不要用 code 是否为空来判断 请求是否出错,应以 HTTP 状态码为准。message 里的 request id 可直接取出用于提工单。

这类鉴权失败在所有接口上结构一致,message 会带上请求标识,便于排查。

响应结构

平台有三套响应结构,客户端必须同时检查 HTTP 状态码和响应体。

模型、文本、图片、视频和音频接口

成功时直接返回结果对象,失败时返回 HTTP 非 2xx 并带 error 对象:

{
  "error": {
    "code": "invalid_parameter",
    "message": "请求参数不符合所选模型要求",
    "type": "invalid_request_error",
    "param": "size"
  }
}

视频任务查询是例外:查不到任务时返回 400,响应体是顶层 { code, message, data } 结构(code 为字符串 task_not_exist),不是上述 error 对象。 详见错误码与排查。 code、type、param 的取值随错误类型变化,排查时以 message 为主,不要只匹配固定的 code 文本。

素材库接口

成功和失败都使用统一结构:

{ "code": 0, "data": {}, "msg": "OK" }
{ "code": 401, "data": null, "msg": "API Key 无效或已失效" }

失败时 HTTP 状态码与 code 一致(400 / 401 / 404 / 429 / 502 / 503)。素材审核未完成不是错误,而是 200 响应里的 status 字段(Processing / Active / Failed)。

分页

素材分组、素材列表等列表接口使用统一分页参数:

参数位置默认上限说明
pagequery1—页码,从 1 开始
page_sizequery20100每页条数,超出范围时按默认值处理

响应中的 data.total 是总条数,data.page、data.page_size 是本次生效的分页参数。请始终读取 total 判断是否还有下一页,不要用「本次返回条数」判断。

限流与重试

场景平台行为建议
请求过于频繁HTTP 429退避后重试,不要并发重试
素材状态查询轻量接口5~10 秒轮询一次,只轮询同一个素材 ID
视频任务查询轻量接口5~15 秒轮询一次,只查询原任务 ID
网络中断请求结果未知先按任务 ID / 素材 ID 查询,确认未创建再重试
短暂的 5xx服务或能力暂不可用有限次退避重试,持续失败时联系平台支持

只对 429 和短暂的 5xx 重试;400、401、403、404、409 属于请求或权限问题,重试不会成功。

幂等与重复提交

平台不提供跨接口的自动幂等键,请在业务侧保证只提交一次:

  • 每次用户操作先在自有数据库落一条业务记录,再调用平台接口;
  • 视频任务和素材提交都要保存平台返回的 ID,重试前先查询是否已创建;
  • 素材处于 Processing 时不要重复提交,否则会创建多份素材;
  • 计费以实际提交成功的任务为准,重复提交会造成重复计费。

推荐调用顺序

GET  /v1/models                     选择模型,确认能力与可用性
POST /api/v1/materials/groups       需要素材时创建分组
POST /api/v1/materials/assets       提交图片,保存 asset_id
GET  /api/v1/materials/assets/{id}  轮询到 status 为 Active
POST /v1/video/generations          提交视频任务,用 asset://<id> 引用素材
GET  /v1/video/generations/{id}     轮询任务,读取结果或错误

服务端接入建议

  1. 为每次请求设置合理超时,并区分「超时」和「用户取消」;
  2. 对 429 和短暂的 5xx 做有限次退避重试,其余错误直接返回调用方;
  3. 保存业务请求号、模型 ID、素材 ID、任务 ID 和平台返回的请求标识,便于排查;
  4. 不要把 API Key 写进日志、错误上报、前端埋点或截图;
  5. 大文件优先使用对象存储的公开 HTTPS 地址或素材库 asset:// 引用,不要把大文件塞进请求体。

下一步

想看什么去哪一页
有哪些接口接口总览
模型目录与文本对话模型与文本接口
图片生成图片生成接口
视频生成、多图与参考视频视频生成接口
素材分组、素材状态、真人授权素材库接口
报错怎么排查错误码与排查
这一页有帮助吗?

本页目录