Lewati ke konten
Clevera Help Center

Menggunakan REST API Clevera

Panggil Clevera dari skrip kamu sendiri: base URL, autentikasi bearer-token, endpoint dan izin yang diperlukan masing-masing, alur penawaran-lalu-mulai untuk pekerjaan berbayar, idempotensi, format kesalahan, dan batas kecepatan.

Diperbarui 8 mnt baca

REST API Clevera memungkinkan skrip dan layanan kamu melakukan apa yang dapat dilakukan agen melalui MCP: membaca pustaka kamu, meminta video dan artikel, mengekspor video, mengerjakan situs dokumentasi, dan mengikuti pekerjaan. Artikel ini membahas base URL, autentikasi, alur permintaan untuk pekerjaan berbayar, kesalahan, dan batas kecepatan.

Dasar-dasar

Base URL https://app.clevera.ai/api/v1
Autentikasi Authorization: Bearer <token> dengan token API (dimulai dengan clv_agent_)
Format JSON masuk dan keluar. Kirim Accept: application/json dan, dengan body, Content-Type: application/json.
Id Id publik, seperti job_… untuk pekerjaan. Gunakan id yang dikembalikan API.

Periksa token dengan GET /docs/me:

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

Jawaban tersebut menyatakan siapa yang ditindaklanjuti oleh token: nama dan masa berlaku token, orang tersebut dan perannya saat ini, ruang kerja, situs dalam cakupan, dan izin yang berfungsi saat ini (izin token yang disesuaikan dengan peran orang tersebut saat ini). Panggil ini terlebih dahulu saat panggilan ditolak.

Endpoint

Setiap endpoint memerlukan izin yang ditampilkan. Memanggil salah satu tanpa izin tersebut akan mengembalikan 403 forbidden_ability. Lihat Izin agen.

Pustaka dan materi

Metode dan path Izin Apa fungsinya
GET /create/types any Jenis video dan klip sosial yang dapat kamu minta.
GET /library library:read Video, rekaman, dan artikel yang dapat dilihat oleh pemilik token.
GET /recordings library:read Hanya rekaman.
GET /library/{item} library:read Satu item.
GET /library/{item}/transcript library:read Transkripnya.
GET /library/{item}/article library:read Artikelnya.
GET /library/{item}/embed library:read Kode sematnya.
GET /materials library:read Gambar, video, dan PDF yang diunggah.
POST /materials, POST /materials/import, POST /materials/uploads, POST /materials/uploads/{upload_id}/complete materials:write Menambahkan gambar, video, atau PDF (secara langsung, dari URL, atau sebagai unggahan besar).

Video dan artikel

Metode dan path Izin Apa fungsinya
POST /videos/quotes videos:create Menawarkan video dari rekaman (type: how_to, product_demo, cleanup, styled_video), artikel dari rekaman (article), atau terjemahan (translation).
POST /videos videos:create + credits:spend Membuat video yang ditawarkan (quote_id).
POST /articles/from-recording videos:create + credits:spend Membuat artikel yang ditawarkan.
POST /videos/translations videos:create + credits:spend Membuat terjemahan yang ditawarkan.
POST /clips/quotes videos:create Menawarkan klip sosial (jenis dari GET /create/types).
POST /clips videos:create + credits:spend Membuat klip sosial yang ditawarkan.
POST /videos/{video_id}/exports videos:export Merender MP4: resolution 1080p (default), 2k, atau 4k; selalu 60 fps. Gratis.

Pekerjaan dan kredit

Metode dan path Izin Apa fungsinya
POST /quotes izin pekerjaan Penawaran untuk jenis pekerjaan apa pun.
POST /jobs izin pekerjaan (+ credits:spend saat berbayar) Memulai pekerjaan yang ditawarkan.
GET /jobs jobs:read Mencantumkan pekerjaan.
GET /jobs/{job} jobs:read Status dan hasil satu pekerjaan.
GET /jobs/{job}/wait jobs:read Menunggu perubahan alih-alih melakukan polling.
GET /jobs/{job}/events jobs:read Peristiwa kemajuan pekerjaan.
POST /jobs/{job}/cancel jobs:read Membatalkan pekerjaan. Terlambat: "Pekerjaan ini tidak dapat dibatalkan lagi."
GET /credits credits:spend atau jobs:read Saldo kredit ruang kerja.

Situs dokumentasi

Metode dan path Izin Apa fungsinya
GET /docs/sites, GET /docs/sites/{site}, GET /docs/sites/{site}/tree, GET /docs/sites/{site}/pages content:read Situs dalam cakupan token dan halamannya.
GET /docs/sites/{site}/search, GET /docs/pages/{page}, GET /docs/pages/{page}/revisions content:read Mencari dan membaca halaman, termasuk draf.
POST /docs/sites/{site}/articles, PATCH /docs/pages/{page}/article, POST /docs/pages/{page}/review articles:write Membuat dan mengedit draf artikel, mengirimkan untuk ditinjau. Artikel langsung juga memerlukan site:publish.
PATCH /docs/pages/{page}, DELETE /docs/pages/{page}, POST /docs/sites/{site}/sections, PATCH /docs/sections/{section} structure:write Memindahkan, mengganti nama, menyembunyikan, dan menghapus halaman; bagian.
GET/POST /docs/sites/{site}/site-pages, PUT /docs/site-pages/{page}/body content:read / site-pages:write Halaman beranda, kontak, dan hukum.
GET/POST /docs/sites/{site}/changelog, PATCH /docs/changelog/{entry} content:read / changelog:write Entri log perubahan sebagai draf.
POST /docs/media, POST /docs/media/uploads media:write Mengunggah gambar.
POST /docs/sites/{site}/publish, POST /docs/pages/{page}/ready, POST /docs/changelog/{entry}/publish site:publish Menerbitkan apa yang dilihat pembaca.
GET /insights/sites/{site}, …/gaps, …/feedback insights:read Mencari celah, pertanyaan yang belum terjawab, umpan balik halaman.
PATCH /docs/sites/{site}/settings, …/appearance, PUT …/navigation, POST …/redirects site:configure Pengaturan situs.
POST /docs/sites sites:create Membuat situs dokumentasi.

Selengkapnya tentang agen dan situs dokumentasi: Hubungkan agen AI ke situs dokumentasi kamu.

Pekerjaan yang memerlukan kredit selalu melalui penawaran terlebih dahulu, kemudian mulai:

  1. Tawarkan. POST /videos/quotes (atau /clips/quotes) dengan apa yang kamu inginkan. Jawaban tersebut memiliki quote_id dan rentang kredit. Penawaran berlaku selama 15 menit dan dapat digunakan sekali.
  2. Secara opsional lakukan uji coba. Kirim mulai dengan "dry_run": true untuk mengetahui apakah pekerjaan tersebut akan dimulai, memerlukan persetujuan, atau diblokir. Tidak ada yang ditulis.
  3. Mulai. POST /videos dengan quote_id dan header Idempotency-Key. Jawabannya adalah 202 dengan sebuah pekerjaan.
  4. Ikuti. GET /jobs/{job}/wait sampai status pekerjaan berubah, atau dengarkan 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>"}'

Status pekerjaan:

Status Arti
queued Diterima, akan segera berjalan.
running Sedang berlangsung.
needs_input Menunggu seseorang, biasanya persetujuan pada Permintaan agen. Pekerjaan tersebut membawa tautan dan masa berlaku.
succeeded Selesai. Pekerjaan tersebut menautkan video atau artikel baru.
failed Gagal; pekerjaan memiliki error_code.
canceled Dibatalkan, atau persetujuannya ditolak.
expired Tidak ada yang menyetujuinya dalam 24 jam.

Apakah suatu pekerjaan dimulai secara langsung atau menunggu seseorang bergantung pada batas pengeluaran token dan pengaturan Setujui secara otomatis di bawah miliknya. Lihat Kontrol pengeluaran dan persetujuan agen.

Percobaan ulang dan idempotensi

Kirim header Idempotency-Key (UUID baru per tindakan) pada setiap pembuatan dan mulai. Jika jaringan terputus dan kamu mencoba lagi dengan kunci dan body yang sama, kamu akan mendapatkan jawaban pertama kembali alih-alih video kedua. Kunci diingat selama 24 jam.

Kode Arti
idempotency_key_reused Kunci yang sama dengan body yang berbeda. Gunakan kunci baru untuk permintaan baru.
idempotency_in_progress Permintaan pertama dengan kunci ini masih berjalan. Tunggu dan coba lagi.
idempotency_conflict "Kunci idempotensi ini digunakan untuk permintaan yang berbeda."

Kesalahan

Setiap kesalahan memiliki bentuk yang sama, dengan pesan yang menyatakan apa yang harus dilakukan selanjutnya:

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

Sertakan request_id saat kamu menghubungi dukungan.

HTTP Kode Penyebab umum
401 unauthenticated, token_expired, token_revoked Tidak ada token, token salah, atau token yang kedaluwarsa atau dicabut.
402 insufficient_credits Ruang kerja tidak memiliki cukup kredit untuk penawaran.
403 forbidden_ability, forbidden_role, forbidden_item, ip_not_allowed, live_content_needs_publish, site_paused, forbidden Izin yang hilang, peran pemilik, akses koleksi, atau daftar izin IP.
403 plan_locked "API agen tidak ada dalam paket ruang kerja ini. API ini ada pada Pro ke atas."
404 not_found, unknown_kind "Tidak ada … dengan id tersebut dalam cakupan token ini. Daftar atau cari terlebih dahulu dan gunakan id yang dikembalikan."
409 revision_conflict, quote_used, not_cancelable, idempotency_* Konten berubah, penawaran digunakan, atau bentrokan percobaan ulang.
410 quote_expired "Penawaran ini telah kedaluwarsa. Minta penawaran baru."
413 unsupported_media File terlalu besar atau bukan jenis yang didukung.
422 validation_failed, invalid_input, quote_mismatch, limit_reached Bidang salah; details menamainya.
429 rate_limited, cap_exceeded, busy Terlalu banyak permintaan, batas pengeluaran, atau dua mulai sekaligus.

Setiap pesan, dengan perbaikannya: Perbaiki kesalahan agen dan API.

Batas kecepatan

Batas Nilai Pesan
Permintaan per token 300 per menit "Token ini melebihi tingkat permintaannya. Tunggu dan coba lagi."
Permintaan per ruang kerja 1.200 per menit, semua token bersama-sama "Ruang kerja ini melebihi tingkat permintaan agennya. Tunggu dan coba lagi."
Penulisan per token 60 per menit "Terlalu banyak penulisan dari token ini. Tunggu dan coba lagi."
Penulisan per token per hari 2.000 "Token ini mencapai batas penulisan hariannya. Coba lagi besok."
Penerbitan per token 10 per jam "Token ini mencapai batas penerbitan per jamnya. Coba lagi nanti."
Mulai berbayar 20 per jam per token, 100 per hari per ruang kerja rate_limited dengan retry_after
Unggahan 30 per menit; 500 MB per hari per token; 25 MB per file "Terlalu banyak unggahan dari token ini. Tunggu dan coba lagi." / "Token ini mencapai volume unggahan hariannya. Coba lagi besok."
Panggilan tanpa token valid 60 per menit per alamat IP "Terlalu banyak permintaan. Tunggu dan coba lagi."

Jawaban 429 memiliki header Retry-After dan retry_after (detik) di dalam body. Tunggu selama itu sebelum mencoba lagi. Pembacaan, penawaran, dan pemeriksaan status tidak memakan kredit.