跳转到内容
Clevera Help Center

使用 Clevera REST API

通过你自己的脚本调用 Clevera:基础 URL、Bearer 令牌身份验证、端点及其所需的权限、付费工作的“先报价后启动”流程、幂等性、错误格式以及速率限制。

更新于 阅读需 5 分钟

Clevera 的 REST API 让你的脚本和服务能够执行智能体通过 MCP 所能完成的操作:读取你的库、请求视频和文章、导出视频、处理文档站点以及跟踪任务。本文涵盖了基础 URL、身份验证、付费工作的请求流程、错误以及速率限制。

基础知识

基础 URL https://app.clevera.ai/api/v1
身份验证 Authorization: Bearer <token> 使用 API 令牌(以 clv_agent_ 开头)
格式 JSON 输入和输出。发送 Accept: application/json,若包含正文,则发送 Content-Type: application/json。
ID 公共 ID,例如任务的 job_…。请使用 API 返回的 ID。

使用 GET /docs/me 检查令牌:

Terminal
curl -H "Authorization: Bearer $CLEVERA_TOKEN" \
     -H "Accept: application/json" \
     https://app.clevera.ai/api/v1/docs/me

响应会说明该令牌代表谁执行操作:令牌的名称和有效期、人员及其当前角色、工作区、作用域内的站点以及当前生效的权限(令牌权限会根据人员的当前角色进行裁剪)。当调用被拒绝时,请首先调用此接口。

端点

每个端点都需要所示的权限。在没有权限的情况下调用会返回 403 forbidden_ability。请参阅 智能体权限。

库与素材

方法与路径 权限 功能
GET /create/types 任意 你可以请求的视频和社交剪辑类型。
GET /library library:read 令牌所有者可见的视频、录制内容和文章。
GET /recordings library:read 仅限录制内容。
GET /library/{item} library:read 单个项目。
GET /library/{item}/transcript library:read 其转录文本。
GET /library/{item}/article library:read 其文章。
GET /library/{item}/embed library:read 其嵌入代码。
GET /materials library:read 已上传的图像、视频和 PDF。
POST /materials, POST /materials/import, POST /materials/uploads, POST /materials/uploads/{upload_id}/complete materials:write 添加图像、视频或 PDF(直接添加、通过 URL 添加或作为大文件上传)。

视频与文章

方法与路径 权限 功能
POST /videos/quotes videos:create 从录制内容中引用视频(type:how_to、product_demo、cleanup、styled_video)、从录制内容中引用文章(article)或引用翻译(translation)。
POST /videos videos:create + credits:spend 生成引用的视频(quote_id)。
POST /articles/from-recording videos:create + credits:spend 生成引用的文章。
POST /videos/translations videos:create + credits:spend 生成引用的翻译。
POST /clips/quotes videos:create 引用社交剪辑(类型来自 GET /create/types)。
POST /clips videos:create + credits:spend 生成引用的社交剪辑。
POST /videos/{video_id}/exports videos:export 渲染 MP4:resolution 1080p(默认)、2k 或 4k;始终为 60 fps。免费。

任务与额度

方法与路径 权限 功能
POST /quotes 工作所需权限 任何任务类型的报价。
POST /jobs 工作所需权限(付费时需 credits:spend) 启动已报价的任务。
GET /jobs jobs:read 列出任务。
GET /jobs/{job} jobs:read 单个任务的状态和结果。
GET /jobs/{job}/wait jobs:read 等待更改而不是轮询。
GET /jobs/{job}/events jobs:read 任务的进度事件。
POST /jobs/{job}/cancel jobs:read 取消任务。如果太晚会提示:“此任务无法再取消。”
GET /credits credits:spend 或 jobs:read 工作区的额度余额。

文档站点

方法与路径 权限 功能
GET /docs/sites, GET /docs/sites/{site}, GET /docs/sites/{site}/tree, GET /docs/sites/{site}/pages content:read 令牌作用域内的站点及其页面。
GET /docs/sites/{site}/search, GET /docs/pages/{page}, GET /docs/pages/{page}/revisions content:read 搜索和阅读页面,包括草稿。
POST /docs/sites/{site}/articles, PATCH /docs/pages/{page}/article, POST /docs/pages/{page}/review articles:write 创建和编辑草稿文章,提交审核。发布文章还需要 site:publish。
PATCH /docs/pages/{page}, DELETE /docs/pages/{page}, POST /docs/sites/{site}/sections, PATCH /docs/sections/{section} structure:write 移动、重命名、隐藏和删除页面;分区。
GET/POST /docs/sites/{site}/site-pages, PUT /docs/site-pages/{page}/body content:read / site-pages:write 主页、联系方式和法律页面。
GET/POST /docs/sites/{site}/changelog, PATCH /docs/changelog/{entry} content:read / changelog:write 作为草稿的更新日志条目。
POST /docs/media, POST /docs/media/uploads media:write 上传图像。
POST /docs/sites/{site}/publish, POST /docs/pages/{page}/ready, POST /docs/changelog/{entry}/publish site:publish 发布读者可见的内容。
GET /insights/sites/{site}, …/gaps, …/feedback insights:read 搜索缺口、未回答的问题、页面反馈。
PATCH /docs/sites/{site}/settings, …/appearance, PUT …/navigation, POST …/redirects site:configure 站点设置。
POST /docs/sites sites:create 创建文档站点。

关于智能体和文档站点的更多信息:将 AI 智能体连接到你的文档站点。

消耗额度的工作总是遵循先报价,后启动的流程:

  1. 报价。 使用 POST /videos/quotes(或 /clips/quotes)提交你的需求。响应包含 quote_id 和额度范围。报价有效期为 15 分钟,且仅可使用一次。
  2. 可选的试运行。 发送带有 "dry_run": true 的启动请求,以了解它是否会启动、是否需要批准或被阻止。不会写入任何内容。
  3. 启动。 使用 POST /videos、quote_id 和 Idempotency-Key 标头进行启动。响应为 202,包含一个任务。
  4. 跟踪。 轮询 GET /jobs/{job}/wait 直到任务的 status 发生变化,或者监听 Webhook。
Quote, then start a how-to video
curl -X POST https://app.clevera.ai/api/v1/videos/quotes \
  -H "Authorization: Bearer $CLEVERA_TOKEN" -H "Content-Type: application/json" \
  -d '{"type": "how_to", "recording_id": "<recording id>", "language": "en-US"}'

curl -X POST https://app.clevera.ai/api/v1/videos \
  -H "Authorization: Bearer $CLEVERA_TOKEN" -H "Content-Type: application/json" \
  -H "Idempotency-Key: 3f6c1a2e-8d4b-4f7a-9c1e-2b5d7e9f0a13" \
  -d '{"quote_id": "<quote id>"}'

任务状态:

状态 含义
queued 已接受,即将运行。
running 运行中。
needs_input 等待人员处理,通常是在 智能体请求 中进行批准。任务包含链接和有效期。
succeeded 已完成。任务链接到新视频或文章。
failed 失败;任务包含 error_code。
canceled 已取消,或其批准被拒绝。
expired 24 小时内无人批准。

启动是立即运行还是等待人员处理,取决于令牌的支出上限及其 在下方自动批准 设置。请参阅 控制智能体支出和批准。

重试与幂等性

在每次创建和启动时发送 Idempotency-Key 标头(每个操作一个全新的 UUID)。如果网络中断,你使用相同的键和正文重试,你将获得第一次的响应,而不是生成第二个视频。键的有效期为 24 小时。

代码 含义
idempotency_key_reused 相同的键但正文不同。请为新请求使用新键。
idempotency_in_progress 使用此键的第一个请求仍在运行中。请等待并重试。
idempotency_conflict “此幂等性键已被用于其他请求。”

错误

每个错误都有相同的格式,并附带一条说明后续操作的消息:

{
  "error": {
    "code": "forbidden_ability",
    "message": "This token lacks the videos:create ability. Ask the workspace member who owns it for a token that has it.",
    "details": { "ability": "videos:create" }
  },
  "request_id": "req_example"
}

联系支持团队时,请包含 request_id。

HTTP 代码 常见原因
401 unauthenticated, token_expired, token_revoked 无令牌、令牌错误、令牌已过期或已被撤销。
402 insufficient_credits 工作区额度不足以支付报价。
403 forbidden_ability, forbidden_role, forbidden_item, ip_not_allowed, live_content_needs_publish, site_paused, forbidden 缺少权限、所有者角色、集合访问权限或 IP 白名单问题。
403 plan_locked “此工作区的套餐不包含智能体 API。它适用于 Pro 及以上版本。”
404 not_found, unknown_kind “在此令牌的作用域内没有该 ID 的……。请先列出或搜索,并使用返回的 ID。”
409 revision_conflict, quote_used, not_cancelable, idempotency_* 内容已更改、报价已被使用或重试冲突。
410 quote_expired “此报价已过期。请申请新的报价。”
413 unsupported_media 文件过大或类型不受支持。
422 validation_failed, invalid_input, quote_mismatch, limit_reached 字段错误;details 指明了该字段。
429 rate_limited, cap_exceeded, busy 请求过多、达到支出上限或同时启动了两个任务。

每条消息及其修复方法:修复智能体和 API 错误。

速率限制

限制 数值 消息
每个令牌的请求数 每分钟 300 次 “此令牌的请求频率过高。请等待并重试。”
每个工作区的请求数 每分钟 1,200 次(所有令牌总计) “此工作区的智能体请求频率过高。请等待并重试。”
每个令牌的写入数 每分钟 60 次 “此令牌写入过多。请等待并重试。”
每个令牌每天的写入数 2,000 次 “此令牌已达到每日写入限制。请明天再试。”
每个令牌的发布数 每小时 10 次 “此令牌已达到每小时发布限制。请稍后再试。”
付费启动 每个令牌每小时 20 次,每个工作区每天 100 次 rate_limited 带有 retry_after
上传 每分钟 30 次;每个令牌每天 500 MB;每个文件 25 MB “此令牌上传过多。请等待并重试。” / “此令牌已达到每日上传容量。请明天再试。”
无有效令牌的调用 每个 IP 地址每分钟 60 次 “请求过多。请等待并重试。”

429 响应包含 Retry-After 标头,正文中包含 retry_after(秒)。请等待相应时间后再重试。读取、报价和状态检查不消耗额度。