基础约定
- Base URL
https://axiomlab.online- 鉴权
- 每个
/v1请求带Authorization: Bearer <API key>。登录后在个人中心创建 Key,原始 Key 只显示一次。 - 项目
- 用
X-Project-ID选择项目,省略时使用默认项目。 - 幂等
- 创建类请求带
Idempotency-Key,超时重试时复用同一个值;同一个值配不同的请求内容会返回 409。 - 异步制作
POST /v1/videos返回 202 和视频 ID;轮询GET /v1/videos/{job_id}或用 Webhook 接收结果。needs_input表示还缺材料,不代表完成。- 分页
- 列表返回
data、next_cursor和has_more;把next_cursor作为cursor传入即可取下一页。 - 价格
- API 不返回任何价格。报价请联系 sales@azimo.ai。
错误
出错时返回 JSON,字段如下;报告问题时请附上 request_id。
| 名称 | 类型 | 说明 |
|---|---|---|
error必填 | object | |
error.code必填 | string | Stable machine-readable code, e.g. unauthenticated, not_found, idempotency_conflict, validation_error, rate_limited, insufficient_balance, budget_exceeded, contact_sales, internal_error |
error.message必填 | string | |
error.details | any | Structured context: validation errors, unmet workflow requirements, or null |
error.request_id必填 | string | 可为 null |
| 状态码 | 含义 |
|---|---|
401 | Missing or invalid bearer key (`WWW-Authenticate: Bearer`) |
402 | Wallet balance or spending limit would be exceeded |
403 | Key role or project scope does not allow this; `contact_sales` for anything about pricing |
404 | Resource not found in this organization/project |
409 | State conflict, or Idempotency-Key reused with a different request |
422 | Validation error; `details` lists the failing fields or requirements |
429 | Hourly limit reached (`Retry-After` in seconds) |
500 | Unexpected failure; cite `request_id` when reporting it |
账户与能力
当前 Key 的身份,以及可用的工作流和视频类型。
Me
GET/v1/me
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
key_id必填 | string | Same as id |
organization_id必填 | string | |
project_id必填 | string | |
role必填 | string | 可选值:owner editor viewer |
billing_mode必填 | string | 可选值:budget prepaid |
wallet必填 | object | |
permissions必填 | map<string, boolean> |
示例
curl "https://axiomlab.online/v1/me" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Workflows
GET/v1/workflows
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
router必填 | object | |
workflows必填 | map<string, object> |
示例
curl "https://axiomlab.online/v1/workflows" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Video Skills
GET/v1/workflows/creative_video/skills
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<any> |
示例
curl "https://axiomlab.online/v1/workflows/creative_video/skills" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Video Types
GET/v1/video-types
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
langquery | string | Display language, zh (default) or en; when absent the first zh/en entry of Accept-Language is used; 长度 ≤ 16; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
accept-languageheader | string | 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].version必填 | any | |
data[].template | any | |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/video-types" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Playground
GET/v1/playground
需要 API Key成功 200
The workflow gallery: seven fixed entries, each with routing values, whether this account can start it now, and a runnable example.
参数
| 名称 | 类型 | 说明 |
|---|---|---|
langquery | string | Display language, zh (default) or en; when absent the first zh/en entry of Accept-Language is used; 长度 ≤ 16; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
accept-languageheader | string | 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | Stable catalogue id |
data[].name必填 | string | |
data[].summary必填 | string | One benefit-oriented sentence |
data[].workflow必填 | string | Backend routing value for options.workflow; null when the entry cannot be started yet; 可为 null |
data[].video_type必填 | string | options.video_type for structured explainers, otherwise null; 可为 null |
data[].aspect必填 | string | 可选值:16:9 9:16 1:1 |
data[].duration必填 | integer | Default options.duration_max in seconds |
data[].duration_range必填 | array<integer> | [minimum, maximum] seconds the workflow accepts |
data[].needs_assets必填 | boolean | Reference material (photos, product pictures) is strongly recommended |
data[].available必填 | boolean | |
data[].reason必填 | string | Why available is false: coming_soon, not_configured (this environment) or contact_sales (not sold to this account); 可选值:coming_soon not_configured contact_sales; 可为 null |
data[].coming_soon必填 | boolean | |
data[].example必填 | object | |
data[].example.prompt必填 | string | A ready-to-run creative brief for POST /v1/videos or POST /v1/plans |
data[].example.content_data必填 | map<string, string> | Sample value for every input of the workflow's video type (options.content_data); empty when the workflow has none |
示例
curl "https://axiomlab.online/v1/playground" \ -H "Authorization: Bearer $AZIMO_API_KEY"
素材
上传 PDF、PPT、图片等素材,拿到素材 ID 后在方案里引用。
List Assets
GET/v1/assets
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].filename必填 | string | |
data[].bytes必填 | integer | |
data[].sha256必填 | string | |
data[].created_at必填 | number | |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/assets" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Upload Asset
POST/v1/assets
需要 API Key成功 201
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 multipart/form-data
| 名称 | 类型 | 说明 |
|---|---|---|
file必填 | file |
返回 201 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
filename必填 | string | |
bytes必填 | integer | |
sha256必填 | string | |
created_at必填 | number |
示例
curl -X POST "https://axiomlab.online/v1/assets" \ -H "Authorization: Bearer $AZIMO_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -F "file=@deck.pdf"
Get Asset
GET/v1/assets/{asset_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
asset_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
filename必填 | string | |
bytes必填 | integer | |
sha256必填 | string | |
created_at必填 | number |
示例
curl "https://axiomlab.online/v1/assets/<asset_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Delete Asset
DELETE/v1/assets/{asset_id}
需要 API Key成功 200
Remove an upload and its bytes. Jobs that already consumed it keep their own copies.
参数
| 名称 | 类型 | 说明 |
|---|---|---|
asset_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
deleted | boolean | 默认 true |
示例
curl -X DELETE "https://axiomlab.online/v1/assets/<asset_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Download Asset
GET/v1/assets/{asset_id}/file
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
asset_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/octet-stream
返回文件内容。
示例
curl "https://axiomlab.online/v1/assets/<asset_id>/file" \ -H "Authorization: Bearer $AZIMO_API_KEY"
方案
制作前先出方案:冻结工作流、规格、素材和结构,告诉你还缺什么。
List Plans
GET/v1/plans
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].kind必填 | string | |
data[].name必填 | string | |
data[].version必填 | integer | |
data[].created_at必填 | number | |
data[].updated_at必填 | number | |
data[].data必填 | object | |
data[].data.status必填 | string | 可选值:planning ready needs_input unavailable |
data[].data.request必填 | object | |
data[].data.assets | array<object> | |
data[].data.routing | object | 可为 null |
data[].data.requirements | array<object> | |
data[].data.reason | string | 可为 null |
data[].data.job_id | string | The production this plan started; a plan starts at most one; 可为 null |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/plans" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Create Plan
POST/v1/plans
需要 API Key成功 201
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
prompt | string | 长度 ≤ 4000 |
assets | array<string> | 最多 30 项 |
options | object | |
options.workflow | string | 可选值:auto explainer short_drama creative_video motion_explainer profile_card product_pitch; 默认 explainer |
options.goal | string | 长度 ≤ 2000 |
options.audience | string | 长度 ≤ 1000 |
options.duration_max | integer | 默认 60; 范围 5–180 |
options.width | integer | 默认 1920; 范围 640–3840 |
options.height | integer | 默认 1080; 范围 360–2160 |
options.fps | integer | 默认 30; 范围 24–60 |
options.subtitles | boolean | 默认 false |
options.music | boolean | 默认 true |
options.skill_id | string | 长度 ≤ 200; 可为 null |
options.credit_budget | integer | 范围 1–1000000; 可为 null |
options.video_type | string | 可选值:project product personal corporate; 可为 null |
options.content_data | map<string, string> | |
options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
options.brand | object | |
options.motion_style | string | 可选值:mono photo; 默认 mono |
options.photo_subject | string | 长度 ≤ 120 |
options.photo_license | string | 可选值:strict sharealike; 默认 strict |
webhook_url | string | 长度 ≤ 2000; 可为 null |
plan_id | string | 可为 null |
template_id | string | 可为 null |
brand_id | string | 可为 null |
variables | map<string, string> |
返回 201 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object | |
data.status必填 | string | 可选值:planning ready needs_input unavailable |
data.request必填 | object | |
data.assets | array<object> | |
data.routing | object | 可为 null |
data.requirements | array<object> | |
data.reason | string | 可为 null |
data.job_id | string | The production this plan started; a plan starts at most one; 可为 null |
示例
curl -X POST "https://axiomlab.online/v1/plans" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"prompt": "<prompt>", "assets": ["<asset id>"]}'Get Plan
GET/v1/plans/{plan_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
plan_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object | |
data.status必填 | string | 可选值:planning ready needs_input unavailable |
data.request必填 | object | |
data.assets | array<object> | |
data.routing | object | 可为 null |
data.requirements | array<object> | |
data.reason | string | 可为 null |
data.job_id | string | The production this plan started; a plan starts at most one; 可为 null |
示例
curl "https://axiomlab.online/v1/plans/<plan_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Preview Route
POST/v1/route
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
prompt | string | 长度 ≤ 4000 |
assets | array<string> | 最多 30 项 |
options | object | |
options.workflow | string | 可选值:auto explainer short_drama creative_video motion_explainer profile_card product_pitch; 默认 explainer |
options.goal | string | 长度 ≤ 2000 |
options.audience | string | 长度 ≤ 1000 |
options.duration_max | integer | 默认 60; 范围 5–180 |
options.width | integer | 默认 1920; 范围 640–3840 |
options.height | integer | 默认 1080; 范围 360–2160 |
options.fps | integer | 默认 30; 范围 24–60 |
options.subtitles | boolean | 默认 false |
options.music | boolean | 默认 true |
options.skill_id | string | 长度 ≤ 200; 可为 null |
options.credit_budget | integer | 范围 1–1000000; 可为 null |
options.video_type | string | 可选值:project product personal corporate; 可为 null |
options.content_data | map<string, string> | |
options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
options.brand | object | |
options.motion_style | string | 可选值:mono photo; 默认 mono |
options.photo_subject | string | 长度 ≤ 120 |
options.photo_license | string | 可选值:strict sharealike; 默认 strict |
webhook_url | string | 长度 ≤ 2000; 可为 null |
plan_id | string | 可为 null |
template_id | string | 可为 null |
brand_id | string | 可为 null |
variables | map<string, string> |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
plan_id必填 | string | |
workflow | string | 可为 null |
requirements | array<object> |
示例
curl -X POST "https://axiomlab.online/v1/route" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"prompt": "<prompt>", "assets": ["<asset id>"]}'视频
确认方案后制作视频,查询进度,取回成片,续跑、修改或取消。
List Videos
GET/v1/videos
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
statusquery | string | 可选值:queued running needs_input complete rejected failed cancelled; 可为 null |
batch_idquery | string | 长度 ≤ 32; 可为 null |
created_afterquery | number | 范围 ≥ 0; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].batch_id | string | 可为 null |
data[].parent_id | string | 可为 null |
data[].status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
data[].stage必填 | string | 可为 null |
data[].progress必填 | integer | 可为 null |
data[].error | string | 可为 null |
data[].created_at必填 | number | 可为 null |
data[].updated_at | number | 可为 null |
data[].started_at | number | 可为 null |
data[].finished_at | number | 可为 null |
data[].deleted_at | number | 可为 null |
data[].recovery必填 | object | |
data[].recovery.attempt必填 | integer | |
data[].recovery.max_attempts必填 | integer | |
data[].recovery.retry_at | number | 可为 null |
data[].result | object | 可为 null |
data[].result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
data[].result.duration | number | 可为 null |
data[].result.shot_count | integer | 可为 null |
data[].result.visual_mix | any | |
data[].result.qa | any | |
data[].result.brief | any | |
data[].result.workflow | string | 可为 null |
data[].result.routing | any | |
data[].result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
data[].result.native_project | any | |
data[].requested_workflow必填 | string | |
data[].video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
data[].title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/videos" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Create Video
POST/v1/videos
需要 API Key成功 202
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
prompt | string | 长度 ≤ 4000 |
assets | array<string> | 最多 30 项 |
options | object | |
options.workflow | string | 可选值:auto explainer short_drama creative_video motion_explainer profile_card product_pitch; 默认 explainer |
options.goal | string | 长度 ≤ 2000 |
options.audience | string | 长度 ≤ 1000 |
options.duration_max | integer | 默认 60; 范围 5–180 |
options.width | integer | 默认 1920; 范围 640–3840 |
options.height | integer | 默认 1080; 范围 360–2160 |
options.fps | integer | 默认 30; 范围 24–60 |
options.subtitles | boolean | 默认 false |
options.music | boolean | 默认 true |
options.skill_id | string | 长度 ≤ 200; 可为 null |
options.credit_budget | integer | 范围 1–1000000; 可为 null |
options.video_type | string | 可选值:project product personal corporate; 可为 null |
options.content_data | map<string, string> | |
options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
options.brand | object | |
options.motion_style | string | 可选值:mono photo; 默认 mono |
options.photo_subject | string | 长度 ≤ 120 |
options.photo_license | string | 可选值:strict sharealike; 默认 strict |
webhook_url | string | 长度 ≤ 2000; 可为 null |
plan_id | string | 可为 null |
template_id | string | 可为 null |
brand_id | string | 可为 null |
variables | map<string, string> |
返回 202 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
batch_id | string | 可为 null |
parent_id | string | 可为 null |
status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
stage必填 | string | 可为 null |
progress必填 | integer | 可为 null |
error | string | 可为 null |
created_at必填 | number | 可为 null |
updated_at | number | 可为 null |
started_at | number | 可为 null |
finished_at | number | 可为 null |
deleted_at | number | 可为 null |
recovery必填 | object | |
recovery.attempt必填 | integer | |
recovery.max_attempts必填 | integer | |
recovery.retry_at | number | 可为 null |
result | object | 可为 null |
result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
result.duration | number | 可为 null |
result.shot_count | integer | 可为 null |
result.visual_mix | any | |
result.qa | any | |
result.brief | any | |
result.workflow | string | 可为 null |
result.routing | any | |
result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
result.native_project | any | |
requested_workflow必填 | string | |
video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
webhook_signing_secret | string | Only present when the request set webhook_url: the project secret that signs that per-job callback (Vidgen-Signature). Store it; verify deliveries with it; 可为 null |
示例
curl -X POST "https://axiomlab.online/v1/videos" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"prompt": "<prompt>", "assets": ["<asset id>"]}'Resume
POST/v1/videos/{job_id}/resume
需要 API Key成功 202
参数
| 名称 | 类型 | 说明 |
|---|---|---|
job_id必填path | string | |
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
message | string | 长度 ≤ 4000 |
questionnaire_id | string | 长度 ≤ 200; 可为 null |
answers | array<object> | 最多 30 项 |
assets | array<string> | 最多 9 项 |
approve_budget | boolean | Approve a pending budget stop that has approvable: true; the server computes the new limit; 默认 false |
credit_budget | integer | Legacy: explicit new Vikoo credit budget for a credit budget stop; 范围 1–1000000; 可为 null |
budget_usd | number | Legacy: explicit new total USD limit for a budget stop; 范围 0–100000; 可为 null |
返回 202 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
batch_id | string | 可为 null |
parent_id | string | 可为 null |
status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
stage必填 | string | 可为 null |
progress必填 | integer | 可为 null |
error | string | 可为 null |
created_at必填 | number | 可为 null |
updated_at | number | 可为 null |
started_at | number | 可为 null |
finished_at | number | 可为 null |
deleted_at | number | 可为 null |
recovery必填 | object | |
recovery.attempt必填 | integer | |
recovery.max_attempts必填 | integer | |
recovery.retry_at | number | 可为 null |
result | object | 可为 null |
result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
result.duration | number | 可为 null |
result.shot_count | integer | 可为 null |
result.visual_mix | any | |
result.qa | any | |
result.brief | any | |
result.workflow | string | 可为 null |
result.routing | any | |
result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
result.native_project | any | |
requested_workflow必填 | string | |
video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
示例
curl -X POST "https://axiomlab.online/v1/videos/<job_id>/resume" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"message": "<message>", "questionnaire_id": "<questionnaire_id>"}'Revise Video
POST/v1/videos/{job_id}/revisions
需要 API Key成功 202
参数
| 名称 | 类型 | 说明 |
|---|---|---|
job_id必填path | string | |
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
prompt | string | 长度 10–4000; 可为 null |
assets | array<string> | 最多 30 项; 可为 null |
options | object | |
options.workflow | string | 可选值:auto explainer short_drama creative_video motion_explainer profile_card product_pitch; 默认 explainer |
options.goal | string | 长度 ≤ 2000 |
options.audience | string | 长度 ≤ 1000 |
options.duration_max | integer | 默认 60; 范围 5–180 |
options.width | integer | 默认 1920; 范围 640–3840 |
options.height | integer | 默认 1080; 范围 360–2160 |
options.fps | integer | 默认 30; 范围 24–60 |
options.subtitles | boolean | 默认 false |
options.music | boolean | 默认 true |
options.skill_id | string | 长度 ≤ 200; 可为 null |
options.credit_budget | integer | 范围 1–1000000; 可为 null |
options.video_type | string | 可选值:project product personal corporate; 可为 null |
options.content_data | map<string, string> | |
options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
options.brand | object | |
options.motion_style | string | 可选值:mono photo; 默认 mono |
options.photo_subject | string | 长度 ≤ 120 |
options.photo_license | string | 可选值:strict sharealike; 默认 strict |
返回 202 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
batch_id | string | 可为 null |
parent_id | string | 可为 null |
status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
stage必填 | string | 可为 null |
progress必填 | integer | 可为 null |
error | string | 可为 null |
created_at必填 | number | 可为 null |
updated_at | number | 可为 null |
started_at | number | 可为 null |
finished_at | number | 可为 null |
deleted_at | number | 可为 null |
recovery必填 | object | |
recovery.attempt必填 | integer | |
recovery.max_attempts必填 | integer | |
recovery.retry_at | number | 可为 null |
result | object | 可为 null |
result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
result.duration | number | 可为 null |
result.shot_count | integer | 可为 null |
result.visual_mix | any | |
result.qa | any | |
result.brief | any | |
result.workflow | string | 可为 null |
result.routing | any | |
result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
result.native_project | any | |
requested_workflow必填 | string | |
video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
webhook_signing_secret | string | Only present when the request set webhook_url: the project secret that signs that per-job callback (Vidgen-Signature). Store it; verify deliveries with it; 可为 null |
示例
curl -X POST "https://axiomlab.online/v1/videos/<job_id>/revisions" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"prompt": "<prompt>", "assets": ["<asset id>"]}'Get Video
GET/v1/videos/{job_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
job_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
batch_id | string | 可为 null |
parent_id | string | 可为 null |
status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
stage必填 | string | 可为 null |
progress必填 | integer | 可为 null |
error | string | 可为 null |
created_at必填 | number | 可为 null |
updated_at | number | 可为 null |
started_at | number | 可为 null |
finished_at | number | 可为 null |
deleted_at | number | 可为 null |
recovery必填 | object | |
recovery.attempt必填 | integer | |
recovery.max_attempts必填 | integer | |
recovery.retry_at | number | 可为 null |
result | object | 可为 null |
result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
result.duration | number | 可为 null |
result.shot_count | integer | 可为 null |
result.visual_mix | any | |
result.qa | any | |
result.brief | any | |
result.workflow | string | 可为 null |
result.routing | any | |
result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
result.native_project | any | |
requested_workflow必填 | string | |
video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
示例
curl "https://axiomlab.online/v1/videos/<job_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Delete Video
DELETE/v1/videos/{job_id}
需要 API Key成功 200
Purge a finished job's films, uploads copies and diagnostics; the job record stays for usage history.
参数
| 名称 | 类型 | 说明 |
|---|---|---|
job_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
deleted | boolean | 默认 true |
示例
curl -X DELETE "https://axiomlab.online/v1/videos/<job_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Cancel Video
POST/v1/videos/{job_id}/cancel
需要 API Key成功 200
queued / needs_input jobs cancel at once; a running job stops before its next paid step (cancelling).
参数
| 名称 | 类型 | 说明 |
|---|---|---|
job_id必填path | string | |
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
status必填 | string | 可选值:cancelled cancelling |
示例
curl -X POST "https://axiomlab.online/v1/videos/<job_id>/cancel" \ -H "Authorization: Bearer $AZIMO_API_KEY" \ -H "Idempotency-Key: $(uuidgen)"
Get File
GET/v1/videos/{job_id}/files/{name}
签名链接,无需 Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
job_id必填path | string | |
name必填path | string | |
expires必填query | integer | |
sig必填query | string |
返回 200 application/octet-stream
返回文件内容。
示例
curl "https://axiomlab.online/v1/videos/<job_id>/files/<name>?expires=<expires>&sig=<sig>"
批量
一次提交多条视频。
List Batches
GET/v1/batches
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].name必填 | string | |
data[].created_at必填 | number | |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/batches" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Create Batch
POST/v1/batches
需要 API Key成功 202
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name | string | 默认 Batch; 长度 1–160 |
items必填 | array<object> | 最多 50 项 |
items[].prompt | string | 长度 ≤ 4000 |
items[].assets | array<string> | 最多 30 项 |
items[].options | object | |
items[].options.workflow | string | 可选值:auto explainer short_drama creative_video motion_explainer profile_card product_pitch; 默认 explainer |
items[].options.goal | string | 长度 ≤ 2000 |
items[].options.audience | string | 长度 ≤ 1000 |
items[].options.duration_max | integer | 默认 60; 范围 5–180 |
items[].options.width | integer | 默认 1920; 范围 640–3840 |
items[].options.height | integer | 默认 1080; 范围 360–2160 |
items[].options.fps | integer | 默认 30; 范围 24–60 |
items[].options.subtitles | boolean | 默认 false |
items[].options.music | boolean | 默认 true |
items[].options.skill_id | string | 长度 ≤ 200; 可为 null |
items[].options.credit_budget | integer | 范围 1–1000000; 可为 null |
items[].options.video_type | string | 可选值:project product personal corporate; 可为 null |
items[].options.content_data | map<string, string> | |
items[].options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
items[].options.brand | object | |
items[].options.motion_style | string | 可选值:mono photo; 默认 mono |
items[].options.photo_subject | string | 长度 ≤ 120 |
items[].options.photo_license | string | 可选值:strict sharealike; 默认 strict |
items[].webhook_url | string | 长度 ≤ 2000; 可为 null |
items[].plan_id | string | 可为 null |
items[].template_id | string | 可为 null |
items[].brand_id | string | 可为 null |
items[].variables | map<string, string> |
返回 202 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
name必填 | string | |
jobs必填 | array<object> | |
jobs[].id必填 | string | |
jobs[].project_id必填 | string | 可为 null |
jobs[].batch_id | string | 可为 null |
jobs[].parent_id | string | 可为 null |
jobs[].status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
jobs[].stage必填 | string | 可为 null |
jobs[].progress必填 | integer | 可为 null |
jobs[].error | string | 可为 null |
jobs[].created_at必填 | number | 可为 null |
jobs[].updated_at | number | 可为 null |
jobs[].started_at | number | 可为 null |
jobs[].finished_at | number | 可为 null |
jobs[].deleted_at | number | 可为 null |
jobs[].recovery必填 | object | |
jobs[].recovery.attempt必填 | integer | |
jobs[].recovery.max_attempts必填 | integer | |
jobs[].recovery.retry_at | number | 可为 null |
jobs[].result | object | 可为 null |
jobs[].result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
jobs[].result.duration | number | 可为 null |
jobs[].result.shot_count | integer | 可为 null |
jobs[].result.visual_mix | any | |
jobs[].result.qa | any | |
jobs[].result.brief | any | |
jobs[].result.workflow | string | 可为 null |
jobs[].result.routing | any | |
jobs[].result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
jobs[].result.native_project | any | |
jobs[].requested_workflow必填 | string | |
jobs[].video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
jobs[].title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
data必填 | array<object> | Alias of jobs, kept for v0.3 clients |
data[].id必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].batch_id | string | 可为 null |
data[].parent_id | string | 可为 null |
data[].status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
data[].stage必填 | string | 可为 null |
data[].progress必填 | integer | 可为 null |
data[].error | string | 可为 null |
data[].created_at必填 | number | 可为 null |
data[].updated_at | number | 可为 null |
data[].started_at | number | 可为 null |
data[].finished_at | number | 可为 null |
data[].deleted_at | number | 可为 null |
data[].recovery必填 | object | |
data[].recovery.attempt必填 | integer | |
data[].recovery.max_attempts必填 | integer | |
data[].recovery.retry_at | number | 可为 null |
data[].result | object | 可为 null |
data[].result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
data[].result.duration | number | 可为 null |
data[].result.shot_count | integer | 可为 null |
data[].result.visual_mix | any | |
data[].result.qa | any | |
data[].result.brief | any | |
data[].result.workflow | string | 可为 null |
data[].result.routing | any | |
data[].result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
data[].result.native_project | any | |
data[].requested_workflow必填 | string | |
data[].video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
data[].title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
counts必填 | map<string, integer> | |
webhook_signing_secret | string | Set when an item carried webhook_url: the project secret that signs those per-job callbacks (Vidgen-Signature). Store it; verify deliveries with it; 可为 null |
示例
curl -X POST "https://axiomlab.online/v1/batches" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"items": [{}]}'Get Batch
GET/v1/batches/{batch_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
batch_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
name必填 | string | |
jobs必填 | array<object> | |
jobs[].id必填 | string | |
jobs[].project_id必填 | string | 可为 null |
jobs[].batch_id | string | 可为 null |
jobs[].parent_id | string | 可为 null |
jobs[].status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
jobs[].stage必填 | string | 可为 null |
jobs[].progress必填 | integer | 可为 null |
jobs[].error | string | 可为 null |
jobs[].created_at必填 | number | 可为 null |
jobs[].updated_at | number | 可为 null |
jobs[].started_at | number | 可为 null |
jobs[].finished_at | number | 可为 null |
jobs[].deleted_at | number | 可为 null |
jobs[].recovery必填 | object | |
jobs[].recovery.attempt必填 | integer | |
jobs[].recovery.max_attempts必填 | integer | |
jobs[].recovery.retry_at | number | 可为 null |
jobs[].result | object | 可为 null |
jobs[].result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
jobs[].result.duration | number | 可为 null |
jobs[].result.shot_count | integer | 可为 null |
jobs[].result.visual_mix | any | |
jobs[].result.qa | any | |
jobs[].result.brief | any | |
jobs[].result.workflow | string | 可为 null |
jobs[].result.routing | any | |
jobs[].result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
jobs[].result.native_project | any | |
jobs[].requested_workflow必填 | string | |
jobs[].video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
jobs[].title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
data必填 | array<object> | Alias of jobs, kept for v0.3 clients |
data[].id必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].batch_id | string | 可为 null |
data[].parent_id | string | 可为 null |
data[].status必填 | string | 可选值:queued running needs_input complete rejected failed cancelled |
data[].stage必填 | string | 可为 null |
data[].progress必填 | integer | 可为 null |
data[].error | string | 可为 null |
data[].created_at必填 | number | 可为 null |
data[].updated_at | number | 可为 null |
data[].started_at | number | 可为 null |
data[].finished_at | number | 可为 null |
data[].deleted_at | number | 可为 null |
data[].recovery必填 | object | |
data[].recovery.attempt必填 | integer | |
data[].recovery.max_attempts必填 | integer | |
data[].recovery.retry_at | number | 可为 null |
data[].result | object | 可为 null |
data[].result.files | map<string, string> | Signed download links; present on GET once complete/rejected; 可为 null |
data[].result.duration | number | 可为 null |
data[].result.shot_count | integer | 可为 null |
data[].result.visual_mix | any | |
data[].result.qa | any | |
data[].result.brief | any | |
data[].result.workflow | string | 可为 null |
data[].result.routing | any | |
data[].result.input_required | object | Why the job is needs_input: code, actor, message and what to send to /resume. A spending stop has code: budget_approval and carries no amounts. With approvable: true answer it with POST /v1/videos/{id}/resume {"approve_budget": true}; with approvable: false (actor: operator, prepaid flat-priced jobs) it is an internal review: nothing to approve, the price does not change; 可为 null |
data[].result.native_project | any | |
data[].requested_workflow必填 | string | |
data[].video_type | string | The video type within the workflow, e.g. project, when the request set one; 可为 null |
data[].title | string | A short name for lists: the subject named in the brief (e.g. the project name) or the start of the prompt; 可为 null |
counts必填 | map<string, integer> |
示例
curl "https://axiomlab.online/v1/batches/<batch_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
事件与 Webhook
不想轮询时,用带签名的 Webhook 或事件列表接收状态变化。
List Events
GET/v1/events
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
afterquery | integer | 默认 0; 范围 ≥ 0 |
limitquery | integer | 默认 50; 范围 1–200 |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].sequence必填 | integer | |
data[].type必填 | string | |
data[].created_at必填 | number | |
data[].api_version必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].data必填 | object | |
next_cursor必填 | integer | Sequence number to pass as after; unchanged when the page is empty |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/events" \ -H "Authorization: Bearer $AZIMO_API_KEY"
List Webhooks
GET/v1/webhooks
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].kind必填 | string | |
data[].name必填 | string | |
data[].version必填 | integer | |
data[].created_at必填 | number | |
data[].updated_at必填 | number | |
data[].data必填 | object | |
data[].data.name必填 | string | |
data[].data.url必填 | string | |
data[].data.active | boolean | 默认 true |
data[].data.has_secret必填 | boolean | |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/webhooks" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Create Webhook
POST/v1/webhooks
需要 API Key成功 201
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name | string | 默认 Webhook; 长度 ≤ 160 |
url必填 | string | 长度 ≤ 2000 |
active | boolean | 默认 true |
返回 201 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object | |
data.name必填 | string | |
data.url必填 | string | |
data.active | boolean | 默认 true |
data.has_secret必填 | boolean | |
signing_secret必填 | string | Shown at creation/rotation and for the same actor's idempotent retry within 24 hours; 可为 null |
示例
curl -X POST "https://axiomlab.online/v1/webhooks" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"url": "<url>"}'Rotate Webhook Secret
POST/v1/webhooks/{webhook_id}/rotate-secret
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
webhook_id必填path | string | |
expected_version必填query | integer | 范围 ≥ 1 |
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object | |
data.name必填 | string | |
data.url必填 | string | |
data.active | boolean | 默认 true |
data.has_secret必填 | boolean | |
signing_secret必填 | string | Shown at creation/rotation and for the same actor's idempotent retry within 24 hours; 可为 null |
示例
curl -X POST "https://axiomlab.online/v1/webhooks/<webhook_id>/rotate-secret?expected_version=<expected_version>" \ -H "Authorization: Bearer $AZIMO_API_KEY" \ -H "Idempotency-Key: $(uuidgen)"
Update Webhook
PUT/v1/webhooks/{webhook_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
webhook_id必填path | string | |
expected_version必填query | integer | 范围 ≥ 1 |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name | string | 默认 Webhook; 长度 ≤ 160 |
url必填 | string | 长度 ≤ 2000 |
active | boolean | 默认 true |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object | |
data.name必填 | string | |
data.url必填 | string | |
data.active | boolean | 默认 true |
data.has_secret必填 | boolean |
示例
curl -X PUT "https://axiomlab.online/v1/webhooks/<webhook_id>?expected_version=<expected_version>" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "<url>"}'Delete Webhook
DELETE/v1/webhooks/{webhook_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
webhook_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
deleted | boolean | 默认 true |
示例
curl -X DELETE "https://axiomlab.online/v1/webhooks/<webhook_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
List Deliveries
GET/v1/webhook-deliveries
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].event_id必填 | string | |
data[].url必填 | string | |
data[].status必填 | string | |
data[].attempts必填 | integer | |
data[].last_error必填 | string | 可为 null |
data[].delivered_at必填 | number | 可为 null |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/webhook-deliveries" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Replay
POST/v1/webhook-deliveries/{delivery_id}/replay
需要 API Key成功 202
参数
| 名称 | 类型 | 说明 |
|---|---|---|
delivery_id必填path | string | |
webhook_idquery | string | 长度 ≤ 32; 可为 null |
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 202 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
status必填 | string | 可选值:pending |
示例
curl -X POST "https://axiomlab.online/v1/webhook-deliveries/<delivery_id>/replay" \ -H "Authorization: Bearer $AZIMO_API_KEY" \ -H "Idempotency-Key: $(uuidgen)"
品牌与模板
保存品牌素材和常用模板,制作时直接引用。
Listing
GET/v1/brands
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].kind必填 | string | |
data[].name必填 | string | |
data[].version必填 | integer | |
data[].created_at必填 | number | |
data[].updated_at必填 | number | |
data[].data必填 | object | |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/brands" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Create
POST/v1/brands
需要 API Key成功 201
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name必填 | string | 长度 1–120 |
slogan | string | 长度 ≤ 500 |
primary_color | string | 默认 #0F4C81 |
theme | string | 可选值:light dark; 默认 dark |
assets | array<string> | 最多 30 项 |
notes | string | 长度 ≤ 2000 |
返回 201 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object |
示例
curl -X POST "https://axiomlab.online/v1/brands" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name": "<name>"}'Get
GET/v1/brands/{resource_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
resource_id必填path | string | |
versionquery | integer | 范围 ≥ 1; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object |
示例
curl "https://axiomlab.online/v1/brands/<resource_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Revise
PUT/v1/brands/{resource_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
resource_id必填path | string | |
expected_version必填query | integer | 范围 ≥ 1 |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name必填 | string | 长度 1–120 |
slogan | string | 长度 ≤ 500 |
primary_color | string | 默认 #0F4C81 |
theme | string | 可选值:light dark; 默认 dark |
assets | array<string> | 最多 30 项 |
notes | string | 长度 ≤ 2000 |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object |
示例
curl -X PUT "https://axiomlab.online/v1/brands/<resource_id>?expected_version=<expected_version>" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "<name>"}'Remove
DELETE/v1/brands/{resource_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
resource_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
deleted | boolean | 默认 true |
示例
curl -X DELETE "https://axiomlab.online/v1/brands/<resource_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Listing
GET/v1/templates
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].kind必填 | string | |
data[].name必填 | string | |
data[].version必填 | integer | |
data[].created_at必填 | number | |
data[].updated_at必填 | number | |
data[].data必填 | object | |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/templates" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Create
POST/v1/templates
需要 API Key成功 201
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name必填 | string | 长度 1–160 |
prompt必填 | string | Use $variable or ${variable} placeholders; 长度 10–4000 |
options | object | |
options.workflow | string | 可选值:auto explainer short_drama creative_video motion_explainer profile_card product_pitch; 默认 explainer |
options.goal | string | 长度 ≤ 2000 |
options.audience | string | 长度 ≤ 1000 |
options.duration_max | integer | 默认 60; 范围 5–180 |
options.width | integer | 默认 1920; 范围 640–3840 |
options.height | integer | 默认 1080; 范围 360–2160 |
options.fps | integer | 默认 30; 范围 24–60 |
options.subtitles | boolean | 默认 false |
options.music | boolean | 默认 true |
options.skill_id | string | 长度 ≤ 200; 可为 null |
options.credit_budget | integer | 范围 1–1000000; 可为 null |
options.video_type | string | 可选值:project product personal corporate; 可为 null |
options.content_data | map<string, string> | |
options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
options.brand | object | |
options.motion_style | string | 可选值:mono photo; 默认 mono |
options.photo_subject | string | 长度 ≤ 120 |
options.photo_license | string | 可选值:strict sharealike; 默认 strict |
assets | array<string> | 最多 30 项 |
brand_id | string | 可为 null |
返回 201 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object |
示例
curl -X POST "https://axiomlab.online/v1/templates" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name": "<name>", "prompt": "<prompt>"}'Get
GET/v1/templates/{resource_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
resource_id必填path | string | |
versionquery | integer | 范围 ≥ 1; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object |
示例
curl "https://axiomlab.online/v1/templates/<resource_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Revise
PUT/v1/templates/{resource_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
resource_id必填path | string | |
expected_version必填query | integer | 范围 ≥ 1 |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name必填 | string | 长度 1–160 |
prompt必填 | string | Use $variable or ${variable} placeholders; 长度 10–4000 |
options | object | |
options.workflow | string | 可选值:auto explainer short_drama creative_video motion_explainer profile_card product_pitch; 默认 explainer |
options.goal | string | 长度 ≤ 2000 |
options.audience | string | 长度 ≤ 1000 |
options.duration_max | integer | 默认 60; 范围 5–180 |
options.width | integer | 默认 1920; 范围 640–3840 |
options.height | integer | 默认 1080; 范围 360–2160 |
options.fps | integer | 默认 30; 范围 24–60 |
options.subtitles | boolean | 默认 false |
options.music | boolean | 默认 true |
options.skill_id | string | 长度 ≤ 200; 可为 null |
options.credit_budget | integer | 范围 1–1000000; 可为 null |
options.video_type | string | 可选值:project product personal corporate; 可为 null |
options.content_data | map<string, string> | |
options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
options.brand | object | |
options.motion_style | string | 可选值:mono photo; 默认 mono |
options.photo_subject | string | 长度 ≤ 120 |
options.photo_license | string | 可选值:strict sharealike; 默认 strict |
assets | array<string> | 最多 30 项 |
brand_id | string | 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
project_id必填 | string | 可为 null |
kind必填 | string | |
name必填 | string | |
version必填 | integer | |
created_at必填 | number | |
updated_at必填 | number | |
data必填 | object |
示例
curl -X PUT "https://axiomlab.online/v1/templates/<resource_id>?expected_version=<expected_version>" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "<name>", "prompt": "<prompt>"}'Remove
DELETE/v1/templates/{resource_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
resource_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
deleted | boolean | 默认 true |
示例
curl -X DELETE "https://axiomlab.online/v1/templates/<resource_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
项目、Key 与审计
管理项目和 API Key,查看变更记录。
List Projects
GET/v1/projects
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].organization_id必填 | string | |
data[].name必填 | string | |
data[].created_at必填 | number | |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/projects" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Create Project
POST/v1/projects
需要 API Key成功 201
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name必填 | string | 长度 1–120 |
返回 201 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
organization_id必填 | string | |
name必填 | string | |
created_at必填 | number |
示例
curl -X POST "https://axiomlab.online/v1/projects" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name": "<name>"}'Delete Project
DELETE/v1/projects/{project_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
project_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
deleted | boolean | 默认 true |
示例
curl -X DELETE "https://axiomlab.online/v1/projects/<project_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
List Keys
GET/v1/api-keys
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
limitquery | integer | 默认 50; 范围 1–200 |
cursorquery | string | 长度 ≤ 256; 可为 null |
afterquery | string | 长度 ≤ 256; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].name必填 | string | Label given at creation (also returned as owner) |
data[].owner必填 | string | |
data[].prefix必填 | string | 可为 null |
data[].organization_id必填 | string | 可为 null |
data[].project_id | string | Set when the key is bound to one project; 可为 null |
data[].role必填 | string | 可选值:owner editor viewer |
data[].active必填 | boolean | |
data[].created_at必填 | number | 可为 null |
data[].last_used_at | number | 可为 null |
data[].expires_at | number | 可为 null |
data[].revoked_at | number | 可为 null |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/api-keys" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Create Key
POST/v1/api-keys
需要 API Key成功 201
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
name必填 | string | 长度 1–120 |
role | string | 可选值:owner editor viewer; 默认 editor |
project_id | string | 可为 null |
monthly_budget_usd | number | 范围 ≥ 0; 可为 null |
rate_per_hour | integer | 范围 ≥ 1; 可为 null |
返回 201 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
name必填 | string | Label given at creation (also returned as owner) |
owner必填 | string | |
prefix必填 | string | 可为 null |
organization_id必填 | string | 可为 null |
project_id | string | Set when the key is bound to one project; 可为 null |
role必填 | string | 可选值:owner editor viewer |
active必填 | boolean | |
created_at必填 | number | 可为 null |
last_used_at | number | 可为 null |
expires_at | number | 可为 null |
revoked_at | number | 可为 null |
key必填 | string | The bearer secret; shown once (an idempotent replay returns the same value) |
示例
curl -X POST "https://axiomlab.online/v1/api-keys" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name": "<name>"}'Rotate Key
POST/v1/api-keys/{key_id}/rotate
需要 API Key成功 200
The old secret dies at once, or after grace_seconds so running fleets can switch without downtime.
参数
| 名称 | 类型 | 说明 |
|---|---|---|
key_id必填path | string | |
grace_secondsquery | integer | 默认 0; 范围 0–604800 |
Idempotency-Keyheader | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
key必填 | string | |
previous_id必填 | string | |
previous_expires_in必填 | integer | 可为 null |
示例
curl -X POST "https://axiomlab.online/v1/api-keys/<key_id>/rotate" \ -H "Authorization: Bearer $AZIMO_API_KEY" \ -H "Idempotency-Key: $(uuidgen)"
Revoke Key
DELETE/v1/api-keys/{key_id}
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
key_id必填path | string | |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
active | boolean | 默认 false |
示例
curl -X DELETE "https://axiomlab.online/v1/api-keys/<key_id>" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Audit Log
GET/v1/audit
需要 API Key成功 200
Identity and configuration changes for this organization (keys, projects, webhooks), oldest first from after.
参数
| 名称 | 类型 | 说明 |
|---|---|---|
afterquery | integer | 默认 0; 范围 ≥ 0 |
limitquery | integer | 默认 50; 范围 1–200 |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].sequence必填 | integer | |
data[].type必填 | string | |
data[].created_at必填 | number | |
data[].api_version必填 | string | |
data[].project_id必填 | string | 可为 null |
data[].data必填 | object | |
next_cursor必填 | integer | Sequence number to pass as after; unchanged when the page is empty |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/audit" \ -H "Authorization: Bearer $AZIMO_API_KEY"
余额与用量
查看余额、流水和用量,在线充值。
Wallet
GET/v1/wallet
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
balance_cents必填 | integer | |
held_cents必填 | integer | Reserved for videos in production; released or charged when each one ends |
available_cents必填 | integer | |
low_balance_cents必填 | integer | 可为 null |
currency必填 | string | Always HKD: every amount is in Hong Kong dollar cents |
organization_id必填 | string |
示例
curl "https://axiomlab.online/v1/wallet" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Wallet Entries
GET/v1/wallet/entries
需要 API Key成功 200
参数
| 名称 | 类型 | 说明 |
|---|---|---|
afterquery | string | 长度 ≤ 64; 可为 null |
limitquery | integer | 默认 50; 范围 1–200 |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
data必填 | array<object> | |
data[].id必填 | string | |
data[].organization_id必填 | string | |
data[].kind必填 | string | |
data[].amount_cents必填 | integer | |
data[].hold_cents必填 | integer | |
data[].job_id必填 | string | 可为 null |
data[].note必填 | string | 可为 null |
data[].actor必填 | string | 可为 null |
data[].created_at必填 | number | |
data[].currency必填 | string | Unit of amount_cents and hold_cents: HKD, or USD for entries written before the wallet switched to HKD (the switch itself is an adjust entry whose note states the conversion rate) |
next_cursor | string | Opaque; pass as cursor (or the after alias) for the next page; 可为 null |
has_more | boolean | 默认 false |
示例
curl "https://axiomlab.online/v1/wallet/entries" \ -H "Authorization: Bearer $AZIMO_API_KEY"
Checkout
POST/v1/wallet/checkout
需要 API Key成功 201
参数
| 名称 | 类型 | 说明 |
|---|---|---|
Idempotency-Key必填header | string | 调用方生成并保存的唯一值;超时重试时复用它,同一请求不会被执行两次; 长度 1–128 |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
请求体 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
amount_cents必填 | integer | HKD cents, HK$100–HK$100,000; 范围 10000–10000000 |
返回 201 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
id必填 | string | |
url必填 | string | |
amount_cents必填 | integer | HKD cents credited to the wallet once paid |
currency | string | 默认 HKD |
charge_currency | string | Currency Stripe charges: HKD, the wallet's own currency; 默认 HKD |
charge_amount | integer | Amount Stripe charges, in charge_currency cents (equal to amount_cents); 默认 0 |
示例
curl -X POST "https://axiomlab.online/v1/wallet/checkout" \
-H "Authorization: Bearer $AZIMO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"amount_cents": 10000}'Usage
GET/v1/usage
需要 API Key成功 200
The amount billed to this project's wallet in [from, to) (default: the last 30 days) and its paid calls and job counts,
grouped on request. group_by=job pages by job id with after.
参数
| 名称 | 类型 | 说明 |
|---|---|---|
fromquery | number | 范围 ≥ 0; 可为 null |
toquery | number | 范围 ≥ 0; 可为 null |
group_byquery | string | 默认 none |
limitquery | integer | 默认 50; 范围 1–200 |
afterquery | string | 长度 ≤ 32; 可为 null |
X-Project-IDheader | string | 要操作的项目;省略时使用默认项目; 可为 null |
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
project_id必填 | string | |
range必填 | map<string, number> | |
jobs必填 | map<string, integer> | |
billed_cents必填 | integer | Amount charged to the wallet in the range, in cents of currency |
currency必填 | string | Always HKD |
group_by必填 | string | |
groups必填 | array<object> | 可为 null |
next_cursor必填 | string | 可为 null |
示例
curl "https://axiomlab.online/v1/usage" \ -H "Authorization: Bearer $AZIMO_API_KEY"
服务状态
健康检查,不需要 Key。
Healthz
GET/healthz
无需鉴权成功 200
返回 200 application/json
示例
curl "https://axiomlab.online/healthz"
Readyz
GET/readyz
无需鉴权成功 200
返回 200 application/json
| 名称 | 类型 | 说明 |
|---|---|---|
ok必填 | boolean | |
db必填 | boolean | |
version必填 | string | |
queue_depth必填 | integer | |
running必填 | integer | |
worker_seen_at | number | Latest job start or running-job heartbeat; 可为 null |
worker_alive必填 | boolean | A worker sent a durable heartbeat within the last 5 minutes |
其他状态码
503Service Unavailable
示例
curl "https://axiomlab.online/readyz"