コンテンツへスキップ
Clevera ヘルプセンター

Clevera REST API を使用する

独自のスクリプトから Clevera を呼び出します。ベース URL、Bearer トークン認証、各エンドポイントと必要な権限、有料作業の「見積もりから開始」というフロー、冪等性、エラー形式、レート制限について説明します。

更新日: 読了時間 5 分

Clevera の REST API を使用すると、独自のスクリプトやサービスから、エージェントが MCP 経由で実行できる操作(ライブラリの読み取り、動画や記事の作成依頼、動画のエクスポート、ドキュメントサイトでの作業、ジョブの追跡など)を実行できます。この記事では、ベース URL、認証、有料作業の依頼フロー、エラー、レート制限について解説します。

基本

ベース URL https://app.clevera.ai/api/v1
認証 API トークン を使用した Authorization: Bearer <token>(clv_agent_ で始まります)
形式 JSON 入出力。Accept: application/json を送信し、ボディがある場合は Content-Type: application/json を送信します。
ID ジョブの job_… などのパブリック ID。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 any 依頼可能な動画およびソーシャルクリップのタイプ。
GET /library library:read トークンの所有者が閲覧可能な動画、録画、記事。
GET /recordings library:read 録画のみ。
GET /library/{item} library:read 1つのアイテム。
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 1つのジョブのステータスと結果。
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 分間有効で、1 回のみ使用可能です。
  2. 必要に応じてドライランを行う。 "dry_run": true を指定して開始リクエストを送信し、開始可能か、承認が必要か、ブロックされるかを確認します。何も書き込まれません。
  3. 開始する。 quote_id と Idempotency-Key ヘッダーを指定して POST /videos を呼び出します。回答は 202 で、ジョブが含まれます。
  4. 追跡する。 ジョブの status が変更されるまで GET /jobs/{job}/wait を呼び出すか、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)を送信してください。ネットワークが切断されて同じキーとボディで再試行した場合、2 つ目の動画が作成されるのではなく、最初の回答が返されます。キーは 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 リクエスト過多、支出上限、または同時に 2 つの開始リクエスト。

すべてのメッセージと修正方法: エージェントおよび API エラーの修正。

レート制限

制限 値 メッセージ
トークンあたりのリクエスト 1 分間に 300 回 「このトークンのリクエストレートを超えています。待機してから再試行してください。」
ワークスペースあたりのリクエスト 1 分間に 1,200 回(全トークン合計) 「このワークスペースのエージェントリクエストレートを超えています。待機してから再試行してください。」
トークンあたりの書き込み 1 分間に 60 回 「このトークンからの書き込みが多すぎます。待機してから再試行してください。」
トークンあたりの 1 日の書き込み 2,000 回 「このトークンの 1 日の書き込み制限に達しました。明日再試行してください。」
トークンあたりの公開 1 時間に 10 回 「このトークンの 1 時間の公開制限に達しました。後で再試行してください。」
有料作業の開始 トークンあたり 1 時間に 20 回、ワークスペースあたり 1 日に 100 回 retry_after を伴う rate_limited
アップロード 1 分間に 30 回、トークンあたり 1 日 500 MB、ファイルあたり 25 MB 「このトークンからのアップロードが多すぎます。待機してから再試行してください。」 / 「このトークンの 1 日のアップロード容量に達しました。明日再試行してください。」
有効なトークンなしの呼び出し IP アドレスあたり 1 分間に 60 回 「リクエストが多すぎます。待機してから再試行してください。」

429 の回答には Retry-After ヘッダーとボディ内の retry_after(秒)が含まれます。その時間が経過してから再試行してください。読み取り、見積もり、ステータス確認にはクレジットは消費されません。