Chuyển đến nội dung chính
Trung tâm Trợ giúp Clevera

Sử dụng Clevera REST API

Gọi Clevera từ các tập lệnh của riêng bạn: URL cơ sở, xác thực bearer-token, các điểm cuối (endpoint) và quyền hạn cần thiết cho mỗi điểm cuối, quy trình báo giá-rồi-bắt đầu cho công việc trả phí, tính lũy đẳng, định dạng lỗi và giới hạn tốc độ.

Đã cập nhật 11 phút đọc

REST API của Clevera cho phép các tập lệnh và dịch vụ của riêng bạn thực hiện những gì một tác nhân có thể làm qua MCP: đọc thư viện, yêu cầu video và bài viết, xuất video, làm việc trên các trang tài liệu và theo dõi các công việc. Bài viết này bao gồm URL cơ sở, xác thực, quy trình yêu cầu cho công việc trả phí, các lỗi và giới hạn tốc độ.

Thông tin cơ bản

URL cơ sở https://app.clevera.ai/api/v1
Xác thực Authorization: Bearer <token> với một API token (bắt đầu bằng clv_agent_)
Định dạng JSON đầu vào và đầu ra. Gửi Accept: application/json và, với phần thân, Content-Type: application/json.
Id Các id công khai, chẳng hạn như job_… cho các công việc. Hãy sử dụng các id mà API trả về.

Kiểm tra một token với GET /docs/me:

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

Câu trả lời cho biết token đó đại diện cho ai: tên và thời hạn của token, người dùng và vai trò hiện tại của họ, không gian làm việc, các trang web trong phạm vi và các quyền hiện đang hoạt động (quyền của token được cắt giảm theo vai trò hiện tại của người dùng). Hãy gọi lệnh này trước tiên khi một yêu cầu bị từ chối.

Các điểm cuối (Endpoints)

Mỗi điểm cuối cần quyền hạn được hiển thị. Việc gọi một điểm cuối mà không có quyền đó sẽ trả về 403 forbidden_ability. Xem Quyền của tác nhân.

Thư viện và tài liệu

Phương thức và đường dẫn Quyền Chức năng
GET /create/types bất kỳ Các loại video và clip mạng xã hội bạn có thể yêu cầu.
GET /library library:read Video, bản ghi và bài viết mà chủ sở hữu token có thể xem.
GET /recordings library:read Chỉ các bản ghi.
GET /library/{item} library:read Một mục.
GET /library/{item}/transcript library:read Bản ghi chép của mục đó.
GET /library/{item}/article library:read Bài viết của mục đó.
GET /library/{item}/embed library:read Mã nhúng của mục đó.
GET /materials library:read Hình ảnh, video và PDF đã tải lên.
POST /materials, POST /materials/import, POST /materials/uploads, POST /materials/uploads/{upload_id}/complete materials:write Thêm hình ảnh, video hoặc PDF (trực tiếp, từ URL, hoặc dưới dạng tải lên tệp lớn).

Video và bài viết

Phương thức và đường dẫn Quyền Chức năng
POST /videos/quotes videos:create Báo giá video từ một bản ghi (type: how_to, product_demo, cleanup, styled_video), một bài viết từ một bản ghi (article) hoặc một bản dịch (translation).
POST /videos videos:create + credits:spend Tạo video đã báo giá (quote_id).
POST /articles/from-recording videos:create + credits:spend Tạo bài viết đã báo giá.
POST /videos/translations videos:create + credits:spend Tạo bản dịch đã báo giá.
POST /clips/quotes videos:create Báo giá một clip mạng xã hội (các loại từ GET /create/types).
POST /clips videos:create + credits:spend Tạo clip mạng xã hội đã báo giá.
POST /videos/{video_id}/exports videos:export Kết xuất (render) một MP4: resolution 1080p (mặc định), 2k hoặc 4k; luôn ở mức 60 fps. Miễn phí.

Công việc và tín dụng

Phương thức và đường dẫn Quyền Chức năng
POST /quotes quyền của công việc Báo giá cho bất kỳ loại công việc nào.
POST /jobs quyền của công việc (+ credits:spend khi trả phí) Bắt đầu một công việc đã báo giá.
GET /jobs jobs:read Liệt kê các công việc.
GET /jobs/{job} jobs:read Trạng thái và kết quả của một công việc.
GET /jobs/{job}/wait jobs:read Chờ thay đổi thay vì thăm dò (polling).
GET /jobs/{job}/events jobs:read Các sự kiện tiến trình của công việc.
POST /jobs/{job}/cancel jobs:read Hủy một công việc. Đã quá muộn: "Công việc này không thể bị hủy nữa."
GET /credits credits:spend hoặc jobs:read Số dư tín dụng của không gian làm việc.

Các trang tài liệu

Phương thức và đường dẫn Quyền Chức năng
GET /docs/sites, GET /docs/sites/{site}, GET /docs/sites/{site}/tree, GET /docs/sites/{site}/pages content:read Các trang web trong phạm vi của token và các trang con của chúng.
GET /docs/sites/{site}/search, GET /docs/pages/{page}, GET /docs/pages/{page}/revisions content:read Tìm kiếm và đọc các trang, bao gồm cả bản nháp.
POST /docs/sites/{site}/articles, PATCH /docs/pages/{page}/article, POST /docs/pages/{page}/review articles:write Tạo và chỉnh sửa bài viết nháp, gửi để đánh giá. Các bài viết trực tuyến cũng cần site:publish.
PATCH /docs/pages/{page}, DELETE /docs/pages/{page}, POST /docs/sites/{site}/sections, PATCH /docs/sections/{section} structure:write Di chuyển, đổi tên, ẩn và xóa các trang; các phần.
GET/POST /docs/sites/{site}/site-pages, PUT /docs/site-pages/{page}/body content:read / site-pages:write Các trang chủ, liên hệ và pháp lý.
GET/POST /docs/sites/{site}/changelog, PATCH /docs/changelog/{entry} content:read / changelog:write Các mục nhật ký thay đổi dưới dạng bản nháp.
POST /docs/media, POST /docs/media/uploads media:write Tải lên hình ảnh.
POST /docs/sites/{site}/publish, POST /docs/pages/{page}/ready, POST /docs/changelog/{entry}/publish site:publish Xuất bản nội dung mà người đọc nhìn thấy.
GET /insights/sites/{site}, …/gaps, …/feedback insights:read Tìm kiếm các khoảng trống, câu hỏi chưa trả lời, phản hồi trang.
PATCH /docs/sites/{site}/settings, …/appearance, PUT …/navigation, POST …/redirects site:configure Cài đặt trang web.
POST /docs/sites sites:create Tạo một trang tài liệu.

Xem thêm về các tác nhân và trang tài liệu: Kết nối các tác nhân AI với trang tài liệu của bạn.

Công việc tốn tín dụng luôn thực hiện theo quy trình báo giá trước, sau đó mới bắt đầu:

  1. Báo giá. POST /videos/quotes (hoặc /clips/quotes) với những gì bạn muốn. Câu trả lời có chứa quote_id và phạm vi tín dụng. Báo giá có hiệu lực trong 15 phút và chỉ có thể sử dụng một lần.
  2. Tùy chọn chạy thử (dry-run). Gửi lệnh bắt đầu với "dry_run": true để biết liệu công việc có bắt đầu được không, có cần phê duyệt hay bị chặn. Không có gì được ghi lại.
  3. Bắt đầu. POST /videos với quote_id và tiêu đề Idempotency-Key. Câu trả lời là 202 kèm theo một công việc.
  4. Theo dõi. GET /jobs/{job}/wait cho đến khi status của công việc thay đổi, hoặc lắng nghe webhooks.
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>"}'

Các trạng thái công việc:

Trạng thái Ý nghĩa
queued Đã chấp nhận, sắp chạy.
running Đang thực hiện.
needs_input Đang chờ người dùng, thường là phê duyệt trên Yêu cầu của tác nhân. Công việc có kèm theo liên kết và thời hạn.
succeeded Đã xong. Công việc liên kết đến video hoặc bài viết mới.
failed Thất bại; công việc có chứa error_code.
canceled Đã hủy, hoặc việc phê duyệt đã bị từ chối.
expired Không ai phê duyệt trong vòng 24 giờ.

Việc bắt đầu chạy ngay lập tức hay chờ người dùng phụ thuộc vào giới hạn chi tiêu của token và cài đặt Tự động phê duyệt bên dưới của nó. Xem Kiểm soát chi tiêu và phê duyệt của tác nhân.

Thử lại và tính lũy đẳng

Gửi tiêu đề Idempotency-Key (một UUID mới cho mỗi hành động) trong mỗi lần tạo và bắt đầu. Nếu mạng bị ngắt và bạn thử lại với cùng một khóa và nội dung, bạn sẽ nhận lại câu trả lời đầu tiên thay vì tạo ra video thứ hai. Các khóa được ghi nhớ trong 24 giờ.

Mã Ý nghĩa
idempotency_key_reused Cùng một khóa với nội dung khác. Hãy sử dụng khóa mới cho yêu cầu mới.
idempotency_in_progress Yêu cầu đầu tiên với khóa này vẫn đang chạy. Hãy chờ và thử lại.
idempotency_conflict "Khóa lũy đẳng này đã được sử dụng cho một yêu cầu khác."

Lỗi

Mỗi lỗi đều có cùng một hình thức, với thông báo cho biết cần làm gì tiếp theo:

{
  "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"
}

Hãy bao gồm request_id khi bạn liên hệ với bộ phận hỗ trợ.

HTTP Mã Nguyên nhân phổ biến
401 unauthenticated, token_expired, token_revoked Không có token, token sai, hoặc token đã hết hạn hoặc bị thu hồi.
402 insufficient_credits Không gian làm việc không có đủ tín dụng cho báo giá.
403 forbidden_ability, forbidden_role, forbidden_item, ip_not_allowed, live_content_needs_publish, site_paused, forbidden Thiếu quyền, vai trò của chủ sở hữu, quyền truy cập bộ sưu tập hoặc danh sách IP cho phép.
403 plan_locked "API tác nhân không có trong gói của không gian làm việc này. Nó dành cho gói Pro trở lên."
404 not_found, unknown_kind "Không có … với id đó trong phạm vi của token này. Hãy liệt kê hoặc tìm kiếm trước và sử dụng id được trả về."
409 revision_conflict, quote_used, not_cancelable, idempotency_* Nội dung đã thay đổi, báo giá đã được sử dụng, hoặc xung đột khi thử lại.
410 quote_expired "Báo giá này đã hết hạn. Hãy yêu cầu báo giá mới."
413 unsupported_media Tệp quá lớn hoặc không phải loại được hỗ trợ.
422 validation_failed, invalid_input, quote_mismatch, limit_reached Một trường bị sai; details nêu tên trường đó.
429 rate_limited, cap_exceeded, busy Quá nhiều yêu cầu, giới hạn chi tiêu, hoặc hai lần bắt đầu cùng lúc.

Mỗi thông báo, cùng với cách khắc phục: Khắc phục lỗi tác nhân và API.

Giới hạn tốc độ

Giới hạn Giá trị Thông báo
Yêu cầu mỗi token 300 mỗi phút "Token này đã vượt quá tốc độ yêu cầu. Hãy chờ và thử lại."
Yêu cầu mỗi không gian làm việc 1.200 mỗi phút, tổng tất cả các token "Không gian làm việc này đã vượt quá tốc độ yêu cầu tác nhân. Hãy chờ và thử lại."
Lượt ghi mỗi token 60 mỗi phút "Quá nhiều lượt ghi từ token này. Hãy chờ và thử lại."
Lượt ghi mỗi token mỗi ngày 2.000 "Token này đã đạt giới hạn ghi hàng ngày. Hãy thử lại vào ngày mai."
Lượt xuất bản mỗi token 10 mỗi giờ "Token này đã đạt giới hạn xuất bản hàng giờ. Hãy thử lại sau."
Bắt đầu trả phí 20 mỗi giờ mỗi token, 100 mỗi ngày mỗi không gian làm việc rate_limited với retry_after
Tải lên 30 mỗi phút; 500 MB mỗi ngày mỗi token; 25 MB mỗi tệp "Quá nhiều lượt tải lên từ token này. Hãy chờ và thử lại." / "Token này đã đạt dung lượng tải lên hàng ngày. Hãy thử lại vào ngày mai."
Gọi không có token hợp lệ 60 mỗi phút mỗi địa chỉ IP "Quá nhiều yêu cầu. Hãy chờ và thử lại."

Câu trả lời 429 có chứa tiêu đề Retry-After và retry_after (giây) trong phần thân. Hãy chờ khoảng thời gian đó trước khi thử lại. Các thao tác đọc, báo giá và kiểm tra trạng thái không tốn tín dụng.