Använd Clevera REST API
Anropa Clevera från dina egna skript: bas-URL, autentisering med bearer-token, slutpunkter och vilka behörigheter som krävs för varje, flödet för betalt arbete (offert följt av start), idempotens, felformat och hastighetsbegränsningar.
Cleveras REST API låter dina egna skript och tjänster göra det som en agent kan göra via MCP: läsa ditt bibliotek, begära videor och artiklar, exportera videor, arbeta på dokumentationssajter och följa jobb. Den här artikeln täcker bas-URL, autentisering, begäranflödet för betalt arbete, fel och hastighetsbegränsningar.
Grunderna
| Bas-URL | https://app.clevera.ai/api/v1 |
| Autentisering | Authorization: Bearer <token> med en API-token (den börjar med clv_agent_) |
| Format | JSON in och ut. Skicka Accept: application/json och, med en body, Content-Type: application/json. |
| Id:n | Publika id:n, såsom job_… för jobb. Använd de id:n som API:et returnerar. |
Kontrollera en token med GET /docs/me:
curl -H "Authorization: Bearer $CLEVERA_TOKEN" \
-H "Accept: application/json" \
https://app.clevera.ai/api/v1/docs/me
Svaret anger vem token agerar som: token-namn och utgångsdatum, personen och dennes nuvarande roll, arbetsytan, sajterna i omfattningen och de behörigheter som fungerar just nu (token-behörigheterna begränsade till personens nuvarande roll). Anropa detta först när ett anrop nekas.
Slutpunkter
Varje slutpunkt kräver den visade behörigheten. Att anropa en utan den returnerar 403 forbidden_ability. Se Agentbehörigheter.
Bibliotek och material
| Metod och sökväg | Behörighet | Vad den gör |
|---|---|---|
GET /create/types |
any | De video- och sociala klipptyper du kan begära. |
GET /library |
library:read |
Videor, inspelningar och artiklar som token-ägaren kan se. |
GET /recordings |
library:read |
Endast inspelningar. |
GET /library/{item} |
library:read |
Ett objekt. |
GET /library/{item}/transcript |
library:read |
Dess transkription. |
GET /library/{item}/article |
library:read |
Dess artikel. |
GET /library/{item}/embed |
library:read |
Dess inbäddningskod. |
GET /materials |
library:read |
Uppladdade bilder, videor och PDF-filer. |
POST /materials, POST /materials/import, POST /materials/uploads, POST /materials/uploads/{upload_id}/complete |
materials:write |
Lägg till en bild, video eller PDF (direkt, från en URL eller som en stor uppladdning). |
Videor och artiklar
| Metod och sökväg | Behörighet | Vad den gör |
|---|---|---|
POST /videos/quotes |
videos:create |
Begär offert för en video från en inspelning (type: how_to, product_demo, cleanup, styled_video), en artikel från en inspelning (article) eller en översättning (translation). |
POST /videos |
videos:create + credits:spend |
Skapa den offererade videon (quote_id). |
POST /articles/from-recording |
videos:create + credits:spend |
Skapa den offererade artikeln. |
POST /videos/translations |
videos:create + credits:spend |
Skapa den offererade översättningen. |
POST /clips/quotes |
videos:create |
Begär offert för ett socialt klipp (typer från GET /create/types). |
POST /clips |
videos:create + credits:spend |
Skapa det offererade sociala klippet. |
POST /videos/{video_id}/exports |
videos:export |
Rendera en MP4: resolution 1080p (standard), 2k eller 4k; alltid 60 fps. Gratis. |
Jobb och krediter
| Metod och sökväg | Behörighet | Vad den gör |
|---|---|---|
POST /quotes |
arbetets behörighet | En offert för valfri jobbtyp. |
POST /jobs |
arbetets behörighet (+ credits:spend vid betalning) |
Starta ett offererat jobb. |
GET /jobs |
jobs:read |
Lista jobb. |
GET /jobs/{job} |
jobs:read |
Ett jobbs status och resultat. |
GET /jobs/{job}/wait |
jobs:read |
Vänta på en ändring istället för att polla. |
GET /jobs/{job}/events |
jobs:read |
Jobbets förloppshändelser. |
POST /jobs/{job}/cancel |
jobs:read |
Avbryt ett jobb. För sent: "Detta jobb kan inte längre avbrytas." |
GET /credits |
credits:spend eller jobs:read |
Arbetsytans kreditsaldo. |
Dokumentationssajter
| Metod och sökväg | Behörighet | Vad den gör |
|---|---|---|
GET /docs/sites, GET /docs/sites/{site}, GET /docs/sites/{site}/tree, GET /docs/sites/{site}/pages |
content:read |
Sajter i token-omfattningen och deras sidor. |
GET /docs/sites/{site}/search, GET /docs/pages/{page}, GET /docs/pages/{page}/revisions |
content:read |
Sök och läs sidor, inklusive utkast. |
POST /docs/sites/{site}/articles, PATCH /docs/pages/{page}/article, POST /docs/pages/{page}/review |
articles:write |
Skapa och redigera utkast till artiklar, skicka in för granskning. Live-artiklar kräver även site:publish. |
PATCH /docs/pages/{page}, DELETE /docs/pages/{page}, POST /docs/sites/{site}/sections, PATCH /docs/sections/{section} |
structure:write |
Flytta, döpa om, dölja och ta bort sidor; sektioner. |
GET/POST /docs/sites/{site}/site-pages, PUT /docs/site-pages/{page}/body |
content:read / site-pages:write |
Startsida, kontaktsida och juridiska sidor. |
GET/POST /docs/sites/{site}/changelog, PATCH /docs/changelog/{entry} |
content:read / changelog:write |
Ändringsloggposter som utkast. |
POST /docs/media, POST /docs/media/uploads |
media:write |
Ladda upp bilder. |
POST /docs/sites/{site}/publish, POST /docs/pages/{page}/ready, POST /docs/changelog/{entry}/publish |
site:publish |
Publicera det läsare ser. |
GET /insights/sites/{site}, …/gaps, …/feedback |
insights:read |
Sökglapp, obesvarade frågor, sidfeedback. |
PATCH /docs/sites/{site}/settings, …/appearance, PUT …/navigation, POST …/redirects |
site:configure |
Sajtinställningar. |
POST /docs/sites |
sites:create |
Skapa en dokumentationssajt. |
Mer om agenter och dokumentationssajter: Anslut AI-agenter till dina dokumentationssajter.
Begär betalt arbete
Arbete som kostar krediter kräver alltid en offert först, sedan start:
- Begär offert.
POST /videos/quotes(eller/clips/quotes) med vad du vill ha. Svaret innehåller enquote_idoch kreditintervallet. En offert är giltig i 15 minuter och kan användas en gång. - Testkör valfritt. Skicka starten med
"dry_run": trueför att se om det skulle starta, kräva godkännande eller blockeras. Ingenting skrivs. - Starta.
POST /videosmedquote_idoch enIdempotency-Key-header. Svaret är202med ett jobb. - Följ.
GET /jobs/{job}/waittills jobbetsstatusändras, eller lyssna efter webhooks.
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>"}'
Jobbstatusar:
| Status | Betydelse |
|---|---|
queued |
Accepterad, körs snart. |
running |
Pågår. |
needs_input |
Väntar på en person, vanligtvis ett godkännande under Agentförfrågningar. Jobbet innehåller en länk och ett utgångsdatum. |
succeeded |
Klar. Jobbet länkar till den nya videon eller artikeln. |
failed |
Misslyckades; jobbet har en error_code. |
canceled |
Avbruten, eller så nekades godkännandet. |
expired |
Ingen godkände det inom 24 timmar. |
Huruvida en start körs direkt eller väntar på en person beror på token-utgiftstak och inställningen Godkänn automatiskt nedan. Se Kontrollera agentutgifter och godkännanden.
Försök igen och idempotens
Skicka en Idempotency-Key-header (en ny UUID per åtgärd) vid varje skapande och start. Om nätverket bryts och du försöker igen med samma nyckel och body, får du det första svaret tillbaka istället för en ny video. Nycklar sparas i 24 timmar.
| Kod | Betydelse |
|---|---|
idempotency_key_reused |
Samma nyckel med en annan body. Använd en ny nyckel för en ny begäran. |
idempotency_in_progress |
Den första begäran med denna nyckel körs fortfarande. Vänta och försök igen. |
idempotency_conflict |
"Denna idempotensnyckel användes för en annan begäran." |
Fel
Varje fel har samma form, med ett meddelande som anger vad du ska göra härnäst:
{
"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"
}
Inkludera request_id när du kontaktar supporten.
| HTTP | Koder | Vanlig orsak |
|---|---|---|
| 401 | unauthenticated, token_expired, token_revoked |
Ingen token, felaktig token, eller en som gått ut eller återkallats. |
| 402 | insufficient_credits |
Arbetsytan har inte tillräckligt med krediter för offerten. |
| 403 | forbidden_ability, forbidden_role, forbidden_item, ip_not_allowed, live_content_needs_publish, site_paused, forbidden |
Saknad behörighet, ägarens roll, samlingsåtkomst eller IP-tillåtelselista. |
| 403 | plan_locked |
"Agent-API:et ingår inte i denna arbetsytas plan. Det ingår i Pro och uppåt." |
| 404 | not_found, unknown_kind |
"Inget … med det id:t i denna tokens omfattning. Lista eller sök först och använd ett returnerat id." |
| 409 | revision_conflict, quote_used, not_cancelable, idempotency_* |
Innehållet ändrades, offerten användes eller en konflikt vid nytt försök. |
| 410 | quote_expired |
"Denna offert har gått ut. Be om en ny offert." |
| 413 | unsupported_media |
Filen är för stor eller inte av en typ som stöds. |
| 422 | validation_failed, invalid_input, quote_mismatch, limit_reached |
Ett fält är felaktigt; details namnger det. |
| 429 | rate_limited, cap_exceeded, busy |
För många förfrågningar, ett utgiftstak eller två starter samtidigt. |
Varje meddelande, med lösningen: Åtgärda agent- och API-fel.
Hastighetsbegränsningar
| Gräns | Värde | Meddelande |
|---|---|---|
| Förfrågningar per token | 300 per minut | "Denna token har överskridit sin hastighetsgräns för förfrågningar. Vänta och försök igen." |
| Förfrågningar per arbetsyta | 1 200 per minut, alla tokens tillsammans | "Denna arbetsyta har överskridit sin hastighetsgräns för agentförfrågningar. Vänta och försök igen." |
| Skrivningar per token | 60 per minut | "För många skrivningar från denna token. Vänta och försök igen." |
| Skrivningar per token per dag | 2 000 | "Denna token har nått sin dagliga skrivgräns. Försök igen imorgon." |
| Publiceringar per token | 10 per timme | "Denna token har nått sin timgräns för publiceringar. Försök igen senare." |
| Betalda starter | 20 per timme per token, 100 per dag per arbetsyta | rate_limited med retry_after |
| Uppladdningar | 30 per minut; 500 MB per dag per token; 25 MB per fil | "För många uppladdningar från denna token. Vänta och försök igen." / "Denna token har nått sin dagliga uppladdningsvolym. Försök igen imorgon." |
| Anrop utan giltig token | 60 per minut per IP-adress | "För många förfrågningar. Vänta och försök igen." |
Ett 429-svar har en Retry-After-header och retry_after (sekunder) i bodyn. Vänta så länge innan du försöker igen. Läsningar, offerter och statuskontroller kostar inga krediter.