Zum Inhalt springen
Clevera Hilfe-Center

Die Clevera REST API verwenden

Rufe Clevera aus deinen eigenen Skripten auf: Basis-URL, Bearer-Token-Authentifizierung, Endpunkte und die jeweils erforderlichen Berechtigungen, der Ablauf „Angebot einholen, dann starten“ für kostenpflichtige Arbeiten, Idempotenz, Fehlerformat und Ratenbegrenzungen.

Aktualisiert am 8 Min. Lesezeit

Mit der REST API von Clevera können deine eigenen Skripte und Dienste das tun, was ein Agent über MCP erledigen kann: deine Bibliothek lesen, Videos und Artikel anfordern, Videos exportieren, an Dokumentationsseiten arbeiten und Jobs verfolgen. Dieser Artikel behandelt die Basis-URL, die Authentifizierung, den Anforderungsablauf für kostenpflichtige Arbeiten, Fehler und Ratenbegrenzungen.

Grundlagen

Basis-URL https://app.clevera.ai/api/v1
Authentifizierung Authorization: Bearer <token> mit einem API-Token (es beginnt mit clv_agent_)
Format JSON als Ein- und Ausgabe. Sende Accept: application/json und bei einem Body Content-Type: application/json.
Ids Öffentliche Ids, wie job_… für Jobs. Verwende die Ids, die die API zurückgibt.

Überprüfe ein Token mit GET /docs/me:

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

Die Antwort gibt an, wer das Token verwendet: der Name und das Ablaufdatum des Tokens, die Person und ihre aktuelle Rolle, der Arbeitsbereich, die betroffenen Seiten und die Berechtigungen, die aktuell funktionieren (die Berechtigungen des Tokens, gekürzt auf die aktuelle Rolle der Person). Rufe dies zuerst auf, wenn ein Aufruf verweigert wird.

Endpunkte

Jeder Endpunkt benötigt die angezeigte Berechtigung. Der Aufruf ohne diese Berechtigung gibt 403 forbidden_ability zurück. Siehe Agenten-Berechtigungen.

Bibliothek und Materialien

Methode und Pfad Berechtigung Funktion
GET /create/types any Die Video- und Social-Clip-Typen, die du anfordern kannst.
GET /library library:read Videos, Aufnahmen und Artikel, die der Token-Inhaber sehen kann.
GET /recordings library:read Nur Aufnahmen.
GET /library/{item} library:read Ein Element.
GET /library/{item}/transcript library:read Dessen Transkript.
GET /library/{item}/article library:read Dessen Artikel.
GET /library/{item}/embed library:read Dessen Einbettungscode.
GET /materials library:read Hochgeladene Bilder, Videos und PDFs.
POST /materials, POST /materials/import, POST /materials/uploads, POST /materials/uploads/{upload_id}/complete materials:write Ein Bild, Video oder PDF hinzufügen (direkt, über eine URL oder als großer Upload).

Videos und Artikel

Methode und Pfad Berechtigung Funktion
POST /videos/quotes videos:create Ein Video aus einer Aufnahme (type: how_to, product_demo, cleanup, styled_video), einen Artikel aus einer Aufnahme (article) oder eine Übersetzung (translation) anbieten.
POST /videos videos:create + credits:spend Das angebotene Video erstellen (quote_id).
POST /articles/from-recording videos:create + credits:spend Den angebotenen Artikel erstellen.
POST /videos/translations videos:create + credits:spend Die angebotene Übersetzung erstellen.
POST /clips/quotes videos:create Einen Social Clip anbieten (Typen aus GET /create/types).
POST /clips videos:create + credits:spend Den angebotenen Social Clip erstellen.
POST /videos/{video_id}/exports videos:export Ein MP4 rendern: resolution 1080p (Standard), 2k oder 4k; immer 60 fps. Kostenlos.

Jobs und Credits

Methode und Pfad Berechtigung Funktion
POST /quotes Berechtigung der Arbeit Ein Angebot für jede Art von Job.
POST /jobs Berechtigung der Arbeit (+ credits:spend bei Bezahlung) Einen angebotenen Job starten.
GET /jobs jobs:read Jobs auflisten.
GET /jobs/{job} jobs:read Status und Ergebnis eines Jobs.
GET /jobs/{job}/wait jobs:read Auf eine Änderung warten, anstatt abzufragen.
GET /jobs/{job}/events jobs:read Die Fortschrittsereignisse des Jobs.
POST /jobs/{job}/cancel jobs:read Einen Job abbrechen. Zu spät: „Dieser Job kann nicht mehr abgebrochen werden.“
GET /credits credits:spend oder jobs:read Das Credit-Guthaben des Arbeitsbereichs.

Dokumentationsseiten

Methode und Pfad Berechtigung Funktion
GET /docs/sites, GET /docs/sites/{site}, GET /docs/sites/{site}/tree, GET /docs/sites/{site}/pages content:read Seiten im Bereich des Tokens und deren Unterseiten.
GET /docs/sites/{site}/search, GET /docs/pages/{page}, GET /docs/pages/{page}/revisions content:read Seiten suchen und lesen, Entwürfe inbegriffen.
POST /docs/sites/{site}/articles, PATCH /docs/pages/{page}/article, POST /docs/pages/{page}/review articles:write Artikelentwürfe erstellen und bearbeiten, zur Überprüfung einreichen. Live-Artikel benötigen auch site:publish.
PATCH /docs/pages/{page}, DELETE /docs/pages/{page}, POST /docs/sites/{site}/sections, PATCH /docs/sections/{section} structure:write Seiten verschieben, umbenennen, ausblenden und entfernen; Abschnitte.
GET/POST /docs/sites/{site}/site-pages, PUT /docs/site-pages/{page}/body content:read / site-pages:write Start-, Kontakt- und rechtliche Seiten.
GET/POST /docs/sites/{site}/changelog, PATCH /docs/changelog/{entry} content:read / changelog:write Changelog-Einträge als Entwürfe.
POST /docs/media, POST /docs/media/uploads media:write Bilder hochladen.
POST /docs/sites/{site}/publish, POST /docs/pages/{page}/ready, POST /docs/changelog/{entry}/publish site:publish Veröffentlichen, was Leser sehen.
GET /insights/sites/{site}, …/gaps, …/feedback insights:read Lücken, unbeantwortete Fragen, Seiten-Feedback suchen.
PATCH /docs/sites/{site}/settings, …/appearance, PUT …/navigation, POST …/redirects site:configure Seiteneinstellungen.
POST /docs/sites sites:create Eine Dokumentationsseite erstellen.

Mehr zu Agenten und Dokumentationsseiten: KI-Agenten mit deinen Dokumentationsseiten verbinden.

Arbeiten, die Credits kosten, erfordern immer zuerst ein Angebot und dann den Start:

  1. Angebot einholen. POST /videos/quotes (oder /clips/quotes) mit dem, was du möchtest. Die Antwort enthält eine quote_id und den Credit-Bereich. Ein Angebot ist 15 Minuten gültig und kann einmal verwendet werden.
  2. Optional: Testlauf. Sende den Start mit "dry_run": true, um zu erfahren, ob er starten würde, eine Genehmigung benötigt oder blockiert wird. Es wird nichts geschrieben.
  3. Starten. POST /videos mit quote_id und einem Idempotency-Key-Header. Die Antwort ist 202 mit einem Job.
  4. Verfolgen. GET /jobs/{job}/wait, bis sich der status des Jobs ändert, oder achte auf 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>"}'

Job-Status:

Status Bedeutung
queued Akzeptiert, wird gleich ausgeführt.
running In Bearbeitung.
needs_input Wartet auf eine Person, normalerweise eine Genehmigung unter Agentenanfragen. Der Job enthält einen Link und ein Ablaufdatum.
succeeded Erledigt. Der Job verlinkt das neue Video oder den neuen Artikel.
failed Fehlgeschlagen; der Job hat einen error_code.
canceled Abgebrochen oder die Genehmigung wurde verweigert.
expired Niemand hat es innerhalb von 24 Stunden genehmigt.

Ob ein Start sofort ausgeführt wird oder auf eine Person wartet, hängt von den Ausgabenlimits des Tokens und seiner Einstellung Automatisch genehmigen unter ab. Siehe Ausgaben und Genehmigungen für Agenten steuern.

Wiederholungen und Idempotenz

Sende bei jedem Erstellen und Starten einen Idempotency-Key-Header (eine neue UUID pro Aktion). Wenn die Netzwerkverbindung abbricht und du es mit demselben Schlüssel und Body erneut versuchst, erhältst du die erste Antwort zurück, anstatt ein zweites Video zu erstellen. Schlüssel werden 24 Stunden lang gespeichert.

Code Bedeutung
idempotency_key_reused Derselbe Schlüssel mit einem anderen Body. Verwende einen neuen Schlüssel für eine neue Anfrage.
idempotency_in_progress Die erste Anfrage mit diesem Schlüssel läuft noch. Warte und versuche es erneut.
idempotency_conflict „Dieser Idempotenz-Schlüssel wurde für eine andere Anfrage verwendet.“

Fehler

Jeder Fehler hat das gleiche Format, mit einer Nachricht, die besagt, was als Nächstes zu tun ist:

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

Gib die request_id an, wenn du den Support kontaktierst.

HTTP Codes Typische Ursache
401 unauthenticated, token_expired, token_revoked Kein Token, ein falsches, abgelaufenes oder widerrufenes Token.
402 insufficient_credits Der Arbeitsbereich hat nicht genügend Credits für das Angebot.
403 forbidden_ability, forbidden_role, forbidden_item, ip_not_allowed, live_content_needs_publish, site_paused, forbidden Eine fehlende Berechtigung, die Rolle des Inhabers, Zugriff auf die Sammlung oder die IP-Zulassungsliste.
403 plan_locked „Die Agenten-API ist nicht im Plan dieses Arbeitsbereichs enthalten. Sie ist ab Pro verfügbar.“
404 not_found, unknown_kind „Kein … mit dieser Id im Bereich dieses Tokens. Zuerst auflisten oder suchen und eine zurückgegebene Id verwenden.“
409 revision_conflict, quote_used, not_cancelable, idempotency_* Der Inhalt hat sich geändert, das Angebot wurde verwendet oder ein Wiederholungskonflikt.
410 quote_expired „Dieses Angebot ist abgelaufen. Fordere ein neues Angebot an.“
413 unsupported_media Die Datei ist zu groß oder kein unterstützter Typ.
422 validation_failed, invalid_input, quote_mismatch, limit_reached Ein Feld ist falsch; details benennt es.
429 rate_limited, cap_exceeded, busy Zu viele Anfragen, ein Ausgabenlimit oder zwei Starts gleichzeitig.

Jede Nachricht mit der Lösung: Agenten- und API-Fehler beheben.

Ratenbegrenzungen

Limit Wert Nachricht
Anfragen pro Token 300 pro Minute „Dieses Token hat seine Anfragerate überschritten. Warte und versuche es erneut.“
Anfragen pro Arbeitsbereich 1.200 pro Minute, alle Token zusammen „Dieser Arbeitsbereich hat seine Agenten-Anfragerate überschritten. Warte und versuche es erneut.“
Schreibvorgänge pro Token 60 pro Minute „Zu viele Schreibvorgänge von diesem Token. Warte und versuche es erneut.“
Schreibvorgänge pro Token pro Tag 2.000 „Dieses Token hat sein tägliches Schreiblimit erreicht. Versuche es morgen erneut.“
Veröffentlichungen pro Token 10 pro Stunde „Dieses Token hat sein stündliches Veröffentlichungslimit erreicht. Versuche es später erneut.“
Kostenpflichtige Starts 20 pro Stunde pro Token, 100 pro Tag pro Arbeitsbereich rate_limited mit retry_after
Uploads 30 pro Minute; 500 MB pro Tag pro Token; 25 MB pro Datei „Zu viele Uploads von diesem Token. Warte und versuche es erneut.“ / „Dieses Token hat sein tägliches Upload-Volumen erreicht. Versuche es morgen erneut.“
Aufrufe ohne gültiges Token 60 pro Minute pro IP-Adresse „Zu viele Anfragen. Warte und versuche es erneut.“

Eine 429-Antwort enthält einen Retry-After-Header und retry_after (Sekunden) im Body. Warte so lange, bevor du es erneut versuchst. Lesezugriffe, Angebote und Statusprüfungen kosten keine Credits.