İçeriğe atla
Clevera Yardım Merkezi

Clevera REST API'yi kullanma

Clevera'yı kendi betiklerinizden çağırın: temel URL, bearer-token kimlik doğrulaması, uç noktalar ve her birinin ihtiyaç duyduğu izinler, ücretli işler için fiyat teklifi alıp başlatma akışı, eşdeğerlik (idempotency), hata formatı ve hız sınırları.

Güncellenme 8 dk okuma

Clevera'nın REST API'si, kendi betiklerinizin ve servislerinizin bir temsilcinin MCP üzerinden yapabildiği her şeyi yapmasını sağlar: kütüphanenizi okumak, video ve makale talep etmek, videoları dışa aktarmak, dokümantasyon siteleri üzerinde çalışmak ve işleri takip etmek. Bu makale temel URL'yi, kimlik doğrulamasını, ücretli işler için istek akışını, hataları ve hız sınırlarını kapsar.

Temeller

Temel URL https://app.clevera.ai/api/v1
Kimlik Doğrulama API token ile Authorization: Bearer <token> (clv_agent_ ile başlar)
Format JSON giriş ve çıkış. Accept: application/json gönderin ve bir gövde ile birlikte Content-Type: application/json kullanın.
Kimlikler İşler için job_… gibi herkese açık kimlikler. API'nin döndürdüğü kimlikleri kullanın.

Bir token'ı GET /docs/me ile kontrol edin:

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

Yanıt, token'ın kimin adına hareket ettiğini söyler: token'ın adı ve son kullanma tarihi, kişi ve mevcut rolü, çalışma alanı, kapsamdaki siteler ve şu anda çalışan izinler (token'ın izinlerinin kişinin mevcut rolüne göre kırpılmış hali). Bir çağrı reddedildiğinde önce bunu çağırın.

Uç Noktalar

Her uç nokta gösterilen izne ihtiyaç duyar. Bu izin olmadan birini çağırmak 403 forbidden_ability döndürür. Bkz. Temsilci izinleri.

Kütüphane ve materyaller

Yöntem ve yol İzin Ne yapar
GET /create/types herhangi Talep edebileceğiniz video ve sosyal klip türleri.
GET /library library:read Token sahibinin görebildiği videolar, kayıtlar ve makaleler.
GET /recordings library:read Yalnızca kayıtlar.
GET /library/{item} library:read Bir öğe.
GET /library/{item}/transcript library:read Transkripti.
GET /library/{item}/article library:read Makalesi.
GET /library/{item}/embed library:read Gömme kodu.
GET /materials library:read Yüklenen görseller, videolar ve PDF'ler.
POST /materials, POST /materials/import, POST /materials/uploads, POST /materials/uploads/{upload_id}/complete materials:write Bir görsel, video veya PDF ekleyin (doğrudan, bir URL'den veya büyük bir yükleme olarak).

Videolar ve makaleler

Yöntem ve yol İzin Ne yapar
POST /videos/quotes videos:create Bir kayıttan video (type: how_to, product_demo, cleanup, styled_video), bir kayıttan makale (article) veya bir çeviri (translation) için fiyat teklifi alın.
POST /videos videos:create + credits:spend Teklif edilen videoyu oluşturun (quote_id).
POST /articles/from-recording videos:create + credits:spend Teklif edilen makaleyi oluşturun.
POST /videos/translations videos:create + credits:spend Teklif edilen çeviriyi oluşturun.
POST /clips/quotes videos:create Bir sosyal klip için fiyat teklifi alın (GET /create/types'deki türler).
POST /clips videos:create + credits:spend Teklif edilen sosyal klibi oluşturun.
POST /videos/{video_id}/exports videos:export MP4 oluşturun: resolution 1080p (varsayılan), 2k veya 4k; her zaman 60 fps. Ücretsizdir.

İşler ve krediler

Yöntem ve yol İzin Ne yapar
POST /quotes işin izni Herhangi bir iş türü için fiyat teklifi.
POST /jobs işin izni (+ ücretliyse credits:spend) Teklif edilen bir işi başlatın.
GET /jobs jobs:read İşleri listele.
GET /jobs/{job} jobs:read Bir işin durumu ve sonucu.
GET /jobs/{job}/wait jobs:read Yoklama (polling) yerine bir değişiklik bekleyin.
GET /jobs/{job}/events jobs:read İşin ilerleme etkinlikleri.
POST /jobs/{job}/cancel jobs:read Bir işi iptal edin. Çok geç: "Bu iş artık iptal edilemez."
GET /credits credits:spend veya jobs:read Çalışma alanının kredi bakiyesi.

Dokümantasyon siteleri

Yöntem ve yol İzin Ne yapar
GET /docs/sites, GET /docs/sites/{site}, GET /docs/sites/{site}/tree, GET /docs/sites/{site}/pages content:read Token kapsamındaki siteler ve sayfaları.
GET /docs/sites/{site}/search, GET /docs/pages/{page}, GET /docs/pages/{page}/revisions content:read Taslaklar dahil sayfaları arayın ve okuyun.
POST /docs/sites/{site}/articles, PATCH /docs/pages/{page}/article, POST /docs/pages/{page}/review articles:write Taslak makaleler oluşturun ve düzenleyin, incelemeye gönderin. Canlı makaleler ayrıca site:publish gerektirir.
PATCH /docs/pages/{page}, DELETE /docs/pages/{page}, POST /docs/sites/{site}/sections, PATCH /docs/sections/{section} structure:write Sayfaları ve bölümleri taşıyın, yeniden adlandırın, gizleyin ve kaldırın.
GET/POST /docs/sites/{site}/site-pages, PUT /docs/site-pages/{page}/body content:read / site-pages:write Ana sayfa, iletişim ve yasal sayfalar.
GET/POST /docs/sites/{site}/changelog, PATCH /docs/changelog/{entry} content:read / changelog:write Taslak olarak değişiklik günlüğü girişleri.
POST /docs/media, POST /docs/media/uploads media:write Görsel yükleyin.
POST /docs/sites/{site}/publish, POST /docs/pages/{page}/ready, POST /docs/changelog/{entry}/publish site:publish Okuyucuların gördüklerini yayınlayın.
GET /insights/sites/{site}, …/gaps, …/feedback insights:read Boşlukları, cevapsız soruları, sayfa geri bildirimlerini arayın.
PATCH /docs/sites/{site}/settings, …/appearance, PUT …/navigation, POST …/redirects site:configure Site ayarları.
POST /docs/sites sites:create Bir dokümantasyon sitesi oluşturun.

Temsilciler ve dokümantasyon siteleri hakkında daha fazla bilgi: AI temsilcilerini dokümantasyon sitelerinize bağlayın.

Kredi harcayan işler her zaman önce fiyat teklifi, sonra başlatma şeklinde ilerler:

  1. Fiyat teklifi alın. İstediğiniz şeyle POST /videos/quotes (veya /clips/quotes). Yanıt bir quote_id ve kredi aralığını içerir. Teklif 15 dakika geçerlidir ve bir kez kullanılabilir.
  2. İsteğe bağlı olarak deneme çalışması yapın. Başlayıp başlamayacağını, onay gerekip gerekmediğini veya engellenip engellenmeyeceğini öğrenmek için "dry_run": true ile başlatma isteği gönderin. Hiçbir şey yazılmaz.
  3. Başlatın. POST /videos ile quote_id ve bir Idempotency-Key başlığı gönderin. Yanıt, bir iş ile birlikte 202 olur.
  4. Takip edin. İşin status değişene kadar GET /jobs/{job}/wait kullanın veya web kancalarını dinleyin.
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>"}'

İş durumları:

Durum Anlamı
queued Kabul edildi, çalışmak üzere.
running Devam ediyor.
needs_input Bir kişiyi bekliyor, genellikle Temsilci istekleri üzerinde bir onay. İş bir bağlantı ve son kullanma tarihi taşır.
succeeded Tamamlandı. İş, yeni videoya veya makaleye bağlantı verir.
failed Başarısız oldu; iş bir error_code içerir.
canceled İptal edildi veya onayı reddedildi.
expired 24 saat içinde kimse onaylamadı.

Bir başlatma işleminin hemen mi çalışacağı yoksa bir kişiyi mi bekleyeceği, token'ın harcama sınırlarına ve Aşağıdakileri otomatik onayla ayarına bağlıdır. Bkz. Temsilci harcamalarını ve onaylarını kontrol etme.

Yeniden denemeler ve eşdeğerlik

Her oluşturma ve başlatma işleminde bir Idempotency-Key başlığı (eylem başına yeni bir UUID) gönderin. Ağ bağlantısı koparsa ve aynı anahtar ve gövde ile yeniden denerseniz, ikinci bir video yerine ilk yanıtı alırsınız. Anahtarlar 24 saat boyunca hatırlanır.

Kod Anlamı
idempotency_key_reused Farklı bir gövdeye sahip aynı anahtar. Yeni bir istek için yeni bir anahtar kullanın.
idempotency_in_progress Bu anahtarla yapılan ilk istek hala çalışıyor. Bekleyin ve yeniden deneyin.
idempotency_conflict "Bu eşdeğerlik anahtarı farklı bir istek için kullanıldı."

Hatalar

Her hata aynı yapıya sahiptir ve bir sonraki adımda ne yapmanız gerektiğini söyleyen bir mesaj içerir:

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

Destek ekibiyle iletişime geçtiğinizde request_id bilgisini ekleyin.

HTTP Kodlar Tipik neden
401 unauthenticated, token_expired, token_revoked Token yok, yanlış token, süresi dolmuş veya iptal edilmiş token.
402 insufficient_credits Çalışma alanının teklif için yeterli kredisi yok.
403 forbidden_ability, forbidden_role, forbidden_item, ip_not_allowed, live_content_needs_publish, site_paused, forbidden Eksik izin, sahibin rolü, koleksiyon erişimi veya IP izin listesi.
403 plan_locked "Temsilci API'si bu çalışma alanının planında yok. Pro ve üzeri planlarda bulunur."
404 not_found, unknown_kind "Bu token'ın kapsamında bu kimliğe sahip ... yok. Önce listeleyin veya arayın ve döndürülen bir kimliği kullanın."
409 revision_conflict, quote_used, not_cancelable, idempotency_* İçerik değişti, teklif kullanıldı veya yeniden deneme çakışması.
410 quote_expired "Bu teklifin süresi doldu. Yeni bir teklif isteyin."
413 unsupported_media Dosya çok büyük veya desteklenen bir tür değil.
422 validation_failed, invalid_input, quote_mismatch, limit_reached Bir alan yanlış; details bunu adlandırır.
429 rate_limited, cap_exceeded, busy Çok fazla istek, harcama sınırı veya aynı anda iki başlatma.

Her mesaj ve çözümü: Temsilci ve API hatalarını düzeltme.

Hız sınırları

Sınır Değer Mesaj
Token başına istek Dakikada 300 "Bu token istek hızını aştı. Bekleyin ve yeniden deneyin."
Çalışma alanı başına istek Dakikada 1.200, tüm token'lar birlikte "Bu çalışma alanı temsilci istek hızını aştı. Bekleyin ve yeniden deneyin."
Token başına yazma Dakikada 60 "Bu token'dan çok fazla yazma işlemi yapıldı. Bekleyin ve yeniden deneyin."
Günlük token başına yazma 2.000 "Bu token günlük yazma sınırına ulaştı. Yarın tekrar deneyin."
Token başına yayınlama Saatte 10 "Bu token saatlik yayınlama sınırına ulaştı. Daha sonra tekrar deneyin."
Ücretli başlatmalar Token başına saatte 20, çalışma alanı başına günde 100 retry_after ile rate_limited
Yüklemeler Dakikada 30; token başına günde 500 MB; dosya başına 25 MB "Bu token'dan çok fazla yükleme yapıldı. Bekleyin ve yeniden deneyin." / "Bu token günlük yükleme hacmine ulaştı. Yarın tekrar deneyin."
Geçerli token olmadan çağrılar IP adresi başına dakikada 60 "Çok fazla istek. Bekleyin ve yeniden deneyin."

Bir 429 yanıtı, Retry-After başlığına ve gövdede retry_after (saniye) değerine sahiptir. Yeniden denemeden önce o kadar süre bekleyin. Okumalar, fiyat teklifleri ve durum kontrolleri kredi harcamaz.