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[].waited_s | number | GET /v1/videos/{id} only: seconds the video waited for its length to be confirmed, null until it is confirmed; its working time is (finished_at or now) - created_at - waited_s; 可为 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[].style | string | The style the request chose (options.style, see GET /v1/styles); null: the default style; 可为 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 |
data[].profile_draft | string | profile_card: the confirmed 行家访谈 draft this film was made from (the web app offers a retry); 可为 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 | Planned length in seconds, checked against the workflow's range, whose lower bound depends on the workflow (GET /v1/workflows: 30–180 for most, profile_card 30–90). It does not cap the film: its length is confirmed after the materials are analysed (needs_input with confirm_duration); 默认 60; 范围 5–180 |
options.width | integer | With height, the aspect ratio: 1920×1080 (16:9); profile_card 1080×1920 (9:16); 默认 1920; 范围 640–3840 |
options.height | integer | 默认 1080; 范围 360–2160 |
options.fps | integer | 默认 30; 范围 24–60 |
options.subtitles | boolean | Subtitle preference, applied by profile_card only; other films usually come with subtitles burned in; 默认 false |
options.music | boolean | Background music preference, applied by profile_card only; 默认 true |
options.skill_id | string | 长度 ≤ 200; 可为 null |
options.credit_budget | integer | 范围 1–1000000; 可为 null |
options.video_type | string | 可选值:project product personal corporate name_card; 可为 null |
options.content_data | map<string, string> | |
options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
options.brand | object | |
options.profile | object | |
options.motion_style | string | 可选值:mono photo; 默认 mono |
options.photo_subject | string | 长度 ≤ 120 |
options.photo_license | string | 可选值:strict sharealike; 默认 strict |
options.style | string | A style id from GET /v1/styles; for video_type product one of the 15-second TVC looks cinematic, tech, lifestyle; unset uses the default style; 可为 null |
options.language | string | The film's language when the request has no text of its own; unset: Chinese; 可选值:zh en; 可为 null |
options.founder | object | 企业家名片: name, company, titles, facts (0–12; a card counts as two), photos[{asset, role, caption}], template (ink | grid | renwu), consent, optional industry and name_pinyin; required with video_type name_card. Length is 30–90 seconds, set from the material; 可为 null |
options.founder.name必填 | string | 长度 2–12 |
options.founder.company必填 | string | 长度 2–40 |
options.founder.titles必填 | array<string> | 最多 3 项 |
options.founder.facts | array<object> | 最多 12 项 |
options.founder.photos必填 | array<object> | 最多 12 项 |
options.founder.template | string | 可选值:ink grid renwu; 默认 ink |
options.founder.education | array<string> | 最多 3 项 |
options.founder.honors | array<string> | 最多 6 项 |
options.founder.motto | string | the closing line; the customer's own words; 长度 ≤ 40 |
options.founder.contact | string | shown on the end card only when given; 长度 ≤ 60 |
options.founder.industry | string | 行业 / 主营,如智慧农业;framing lines and illustrative scenes may rest on it; 长度 ≤ 20 |
options.founder.name_pinyin | string | optional pronunciation, e.g. shěn jì bái; written into the narration prompt; 长度 ≤ 48 |
options.founder.brand_color | string | #RRGGBB accent for the grid template |
options.founder.consent | boolean | the customer holds the rights to these photos and the facts are true; 默认 false |
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 |
waited_s | number | GET /v1/videos/{id} only: seconds the video waited for its length to be confirmed, null until it is confirmed; its working time is (finished_at or now) - created_at - waited_s; 可为 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 |
style | string | The style the request chose (options.style, see GET /v1/styles); null: the default style; 可为 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 |
profile_draft | string | profile_card: the confirmed 行家访谈 draft this film was made from (the web app offers a retry); 可为 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 | Not accepted (422): use POST /v1/videos/{id}/revisions or a new plan for changed requirements or materials; 长度 ≤ 4000 |
questionnaire_id | string | Not accepted (422): use POST /v1/videos/{id}/revisions or a new plan for changed requirements or materials; 长度 ≤ 200; 可为 null |
answers | array<object> | Not accepted (422): use POST /v1/videos/{id}/revisions or a new plan for changed requirements or materials; 最多 30 项 |
assets | array<string> | Not accepted (422): use POST /v1/videos/{id}/revisions or a new plan for changed requirements or materials; 最多 9 项 |
approve_budget | boolean | Approve a pending budget stop that has approvable: true; the server computes the new limit; 默认 false |
credit_budget | integer | Legacy, no longer used: no job stops for a credit budget (sending it answers 422); 范围 1–1000000; 可为 null |
budget_usd | number | Legacy: explicit new total USD limit for a budget stop; 范围 0–100000; 可为 null |
duration_sec | integer | Answer to a confirm_duration stop: the film length in seconds, within the stop's min_duration_sec–max_duration_sec (its suggested_duration_sec unless the customer changes it); 可为 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 |
waited_s | number | GET /v1/videos/{id} only: seconds the video waited for its length to be confirmed, null until it is confirmed; its working time is (finished_at or now) - created_at - waited_s; 可为 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 |
style | string | The style the request chose (options.style, see GET /v1/styles); null: the default style; 可为 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 |
profile_draft | string | profile_card: the confirmed 行家访谈 draft this film was made from (the web app offers a retry); 可为 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 '{"duration_sec": 60}'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 | Planned length in seconds, checked against the workflow's range, whose lower bound depends on the workflow (GET /v1/workflows: 30–180 for most, profile_card 30–90). It does not cap the film: its length is confirmed after the materials are analysed (needs_input with confirm_duration); 默认 60; 范围 5–180 |
options.width | integer | With height, the aspect ratio: 1920×1080 (16:9); profile_card 1080×1920 (9:16); 默认 1920; 范围 640–3840 |
options.height | integer | 默认 1080; 范围 360–2160 |
options.fps | integer | 默认 30; 范围 24–60 |
options.subtitles | boolean | Subtitle preference, applied by profile_card only; other films usually come with subtitles burned in; 默认 false |
options.music | boolean | Background music preference, applied by profile_card only; 默认 true |
options.skill_id | string | 长度 ≤ 200; 可为 null |
options.credit_budget | integer | 范围 1–1000000; 可为 null |
options.video_type | string | 可选值:project product personal corporate name_card; 可为 null |
options.content_data | map<string, string> | |
options.style_preset | string | 可选值:cinematic_realism clean_3d product_studio; 默认 cinematic_realism |
options.brand | object | |
options.profile | object | |
options.motion_style | string | 可选值:mono photo; 默认 mono |
options.photo_subject | string | 长度 ≤ 120 |
options.photo_license | string | 可选值:strict sharealike; 默认 strict |
options.style | string | A style id from GET /v1/styles; for video_type product one of the 15-second TVC looks cinematic, tech, lifestyle; unset uses the default style; 可为 null |
options.language | string | The film's language when the request has no text of its own; unset: Chinese; 可选值:zh en; 可为 null |
options.founder | object | 企业家名片: name, company, titles, facts (0–12; a card counts as two), photos[{asset, role, caption}], template (ink | grid | renwu), consent, optional industry and name_pinyin; required with video_type name_card. Length is 30–90 seconds, set from the material; 可为 null |
options.founder.name必填 | string | 长度 2–12 |
options.founder.company必填 | string | 长度 2–40 |
options.founder.titles必填 | array<string> | 最多 3 项 |
options.founder.facts | array<object> | 最多 12 项 |
options.founder.photos必填 | array<object> | 最多 12 项 |
options.founder.template | string | 可选值:ink grid renwu; 默认 ink |
options.founder.education | array<string> | 最多 3 项 |
options.founder.honors | array<string> | 最多 6 项 |
options.founder.motto | string | the closing line; the customer's own words; 长度 ≤ 40 |
options.founder.contact | string | shown on the end card only when given; 长度 ≤ 60 |
options.founder.industry | string | 行业 / 主营,如智慧农业;framing lines and illustrative scenes may rest on it; 长度 ≤ 20 |
options.founder.name_pinyin | string | optional pronunciation, e.g. shěn jì bái; written into the narration prompt; 长度 ≤ 48 |
options.founder.brand_color | string | #RRGGBB accent for the grid template |
options.founder.consent | boolean | the customer holds the rights to these photos and the facts are true; 默认 false |
返回 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 |
waited_s | number | GET /v1/videos/{id} only: seconds the video waited for its length to be confirmed, null until it is confirmed; its working time is (finished_at or now) - created_at - waited_s; 可为 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 |
style | string | The style the request chose (options.style, see GET /v1/styles); null: the default style; 可为 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 |
profile_draft | string | profile_card: the confirmed 行家访谈 draft this film was made from (the web app offers a retry); 可为 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 |
waited_s | number | GET /v1/videos/{id} only: seconds the video waited for its length to be confirmed, null until it is confirmed; its working time is (finished_at or now) - created_at - waited_s; 可为 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 |
style | string | The style the request chose (options.style, see GET /v1/styles); null: the default style; 可为 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 |
profile_draft | string | profile_card: the confirmed 行家访谈 draft this film was made from (the web app offers a retry); 可为 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>"