Naar inhoud springen
Clevera Help Center

De Clevera REST API gebruiken

Roep Clevera aan vanuit je eigen scripts: basis-URL, bearer-token-authenticatie, eindpunten en de benodigde machtigingen, de offerte-dan-starten-flow voor betaald werk, idempotentie, foutopmaak en snelheidslimieten.

Bijgewerkt op 9 min leestijd

Met de REST API van Clevera kunnen je eigen scripts en services doen wat een agent via MCP kan: je bibliotheek lezen, video's en artikelen aanvragen, video's exporteren, aan documentatiesites werken en taken volgen. Dit artikel behandelt de basis-URL, authenticatie, de aanvraagflow voor betaald werk, fouten en snelheidslimieten.

Basisprincipes

Basis-URL https://app.clevera.ai/api/v1
Authenticatie Authorization: Bearer <token> met een API-token (begint met clv_agent_)
Opmaak JSON in en uit. Stuur Accept: application/json en, bij een body, Content-Type: application/json.
ID's Publieke ID's, zoals job_… voor taken. Gebruik de ID's die de API teruggeeft.

Controleer een token met GET /docs/me:

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

Het antwoord geeft aan namens wie het token handelt: de naam en verloopdatum van het token, de persoon en hun huidige rol, de werkruimte, de sites in scope en de machtigingen die op dit moment werken (de machtigingen van het token ingeperkt tot de huidige rol van de persoon). Roep dit aan als een aanroep wordt geweigerd.

Eindpunten

Elk eindpunt heeft de getoonde machtiging nodig. Een aanroep zonder deze machtiging geeft 403 forbidden_ability terug. Zie Agent-machtigingen.

Bibliotheek en materiaal

Methode en pad Machtiging Wat het doet
GET /create/types any De video- en social clip-soorten die je kunt aanvragen.
GET /library library:read Video's, opnames en artikelen die de eigenaar van het token kan zien.
GET /recordings library:read Alleen opnames.
GET /library/{item} library:read Eén item.
GET /library/{item}/transcript library:read Het transcript ervan.
GET /library/{item}/article library:read Het artikel ervan.
GET /library/{item}/embed library:read De embed-code ervan.
GET /materials library:read Geüploade afbeeldingen, video's en PDF's.
POST /materials, POST /materials/import, POST /materials/uploads, POST /materials/uploads/{upload_id}/complete materials:write Voeg een afbeelding, video of PDF toe (direct, via een URL of als grote upload).

Video's en artikelen

Methode en pad Machtiging Wat het doet
POST /videos/quotes videos:create Vraag een offerte aan voor een video uit een opname (type: how_to, product_demo, cleanup, styled_video), een artikel uit een opname (article) of een vertaling (translation).
POST /videos videos:create + credits:spend Maak de aangevraagde video (quote_id).
POST /articles/from-recording videos:create + credits:spend Maak het aangevraagde artikel.
POST /videos/translations videos:create + credits:spend Maak de aangevraagde vertaling.
POST /clips/quotes videos:create Vraag een offerte aan voor een social clip (soorten uit GET /create/types).
POST /clips videos:create + credits:spend Maak de aangevraagde social clip.
POST /videos/{video_id}/exports videos:export Render een MP4: resolution 1080p (standaard), 2k of 4k; altijd 60 fps. Gratis.

Taken en credits

Methode en pad Machtiging Wat het doet
POST /quotes de machtiging van het werk Een offerte voor elk soort taak.
POST /jobs de machtiging van het werk (+ credits:spend bij betaling) Start een aangevraagde taak.
GET /jobs jobs:read Takenlijst.
GET /jobs/{job} jobs:read Status en resultaat van één taak.
GET /jobs/{job}/wait jobs:read Wacht op een wijziging in plaats van pollen.
GET /jobs/{job}/events jobs:read De voortgangsgebeurtenissen van de taak.
POST /jobs/{job}/cancel jobs:read Annuleer een taak. Te laat: "Deze taak kan niet meer worden geannuleerd."
GET /credits credits:spend of jobs:read Het creditsaldo van de werkruimte.

Documentatiesites

Methode en pad Machtiging Wat het doet
GET /docs/sites, GET /docs/sites/{site}, GET /docs/sites/{site}/tree, GET /docs/sites/{site}/pages content:read Sites in de scope van het token en hun pagina's.
GET /docs/sites/{site}/search, GET /docs/pages/{page}, GET /docs/pages/{page}/revisions content:read Zoek en lees pagina's, inclusief concepten.
POST /docs/sites/{site}/articles, PATCH /docs/pages/{page}/article, POST /docs/pages/{page}/review articles:write Maak en bewerk conceptartikelen, dien in voor beoordeling. Live artikelen vereisen ook site:publish.
PATCH /docs/pages/{page}, DELETE /docs/pages/{page}, POST /docs/sites/{site}/sections, PATCH /docs/sections/{section} structure:write Verplaats, hernoem, verberg en verwijder pagina's; secties.
GET/POST /docs/sites/{site}/site-pages, PUT /docs/site-pages/{page}/body content:read / site-pages:write Home-, contact- en juridische pagina's.
GET/POST /docs/sites/{site}/changelog, PATCH /docs/changelog/{entry} content:read / changelog:write Changelog-items als concepten.
POST /docs/media, POST /docs/media/uploads media:write Upload afbeeldingen.
POST /docs/sites/{site}/publish, POST /docs/pages/{page}/ready, POST /docs/changelog/{entry}/publish site:publish Publiceer wat lezers zien.
GET /insights/sites/{site}, …/gaps, …/feedback insights:read Zoek hiaten, onbeantwoorde vragen, paginaterugkoppeling.
PATCH /docs/sites/{site}/settings, …/appearance, PUT …/navigation, POST …/redirects site:configure Site-instellingen.
POST /docs/sites sites:create Maak een documentatiesite.

Meer over agents en documentatiesites: Verbind AI-agents met je documentatiesites.

Werk dat credits kost, verloopt altijd eerst via een offerte, en dan starten:

  1. Vraag een offerte aan. POST /videos/quotes (of /clips/quotes) met wat je wilt. Het antwoord bevat een quote_id en het creditbereik. Een offerte is 15 minuten geldig en kan eenmaal worden gebruikt.
  2. Test het eventueel (dry-run). Stuur de start met "dry_run": true om te zien of het zou starten, goedkeuring nodig heeft of wordt geblokkeerd. Er wordt niets geschreven.
  3. Start het. POST /videos met quote_id en een Idempotency-Key-header. Het antwoord is 202 met een taak.
  4. Volg het. GET /jobs/{job}/wait totdat de status van de taak verandert, of luister naar 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>"}'

Taakstatussen:

Status Betekenis
queued Geaccepteerd, staat op het punt te draaien.
running Bezig met uitvoeren.
needs_input Wacht op een persoon, meestal een goedkeuring bij Agent-verzoeken. De taak bevat een link en een verloopdatum.
succeeded Klaar. De taak linkt naar de nieuwe video of het nieuwe artikel.
failed Mislukt; de taak bevat een error_code.
canceled Geannuleerd, of de goedkeuring is geweigerd.
expired Niemand heeft het binnen 24 uur goedgekeurd.

Of een start direct draait of wacht op een persoon, hangt af van de bestedingslimieten van het token en de instelling Automatisch goedkeuren hieronder. Zie Agent-uitgaven en goedkeuringen beheren.

Opnieuw proberen en idempotentie

Stuur een Idempotency-Key-header (een verse UUID per actie) bij elke aanmaak en start. Als het netwerk wegvalt en je probeert het opnieuw met dezelfde sleutel en body, krijg je het eerste antwoord terug in plaats van een tweede video. Sleutels worden 24 uur onthouden.

Code Betekenis
idempotency_key_reused Dezelfde sleutel met een andere body. Gebruik een nieuwe sleutel voor een nieuwe aanvraag.
idempotency_in_progress De eerste aanvraag met deze sleutel is nog bezig. Wacht en probeer het opnieuw.
idempotency_conflict "Deze idempotentie-sleutel is gebruikt voor een andere aanvraag."

Fouten

Elke fout heeft dezelfde vorm, met een bericht dat aangeeft wat je vervolgens moet doen:

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

Vermeld de request_id wanneer je contact opneemt met de ondersteuning.

HTTP Codes Typische oorzaak
401 unauthenticated, token_expired, token_revoked Geen token, een verkeerd token, of een token dat is verlopen of ingetrokken.
402 insufficient_credits De werkruimte heeft onvoldoende credits voor de offerte.
403 forbidden_ability, forbidden_role, forbidden_item, ip_not_allowed, live_content_needs_publish, site_paused, forbidden Een ontbrekende machtiging, de rol van de eigenaar, toegang tot collecties of de IP-whitelist.
403 plan_locked "De agent-API zit niet in het abonnement van deze werkruimte. Het is beschikbaar vanaf Pro."
404 not_found, unknown_kind "Geen … met dat ID in de scope van dit token. Lijst of zoek eerst en gebruik een teruggegeven ID."
409 revision_conflict, quote_used, not_cancelable, idempotency_* De inhoud is gewijzigd, de offerte is gebruikt of er is een conflict bij opnieuw proberen.
410 quote_expired "Deze offerte is verlopen. Vraag een nieuwe offerte aan."
413 unsupported_media Het bestand is te groot of geen ondersteund type.
422 validation_failed, invalid_input, quote_mismatch, limit_reached Een veld is onjuist; details benoemt het.
429 rate_limited, cap_exceeded, busy Te veel aanvragen, een bestedingslimiet of twee starts tegelijk.

Elk bericht, met de oplossing: Agent- en API-fouten oplossen.

Snelheidslimieten

Limiet Waarde Bericht
Aanvragen per token 300 per minuut "Dit token zit boven de aanvraagsnelheid. Wacht en probeer het opnieuw."
Aanvragen per werkruimte 1.200 per minuut, alle tokens samen "Deze werkruimte zit boven de aanvraagsnelheid voor agents. Wacht en probeer het opnieuw."
Schrijfacties per token 60 per minuut "Te veel schrijfacties vanaf dit token. Wacht en probeer het opnieuw."
Schrijfacties per token per dag 2.000 "Dit token heeft de dagelijkse schrijflimiet bereikt. Probeer het morgen opnieuw."
Publicaties per token 10 per uur "Dit token heeft de uurlimiet voor publicaties bereikt. Probeer het later opnieuw."
Betaalde starts 20 per uur per token, 100 per dag per werkruimte rate_limited met retry_after
Uploads 30 per minuut; 500 MB per dag per token; 25 MB per bestand "Te veel uploads vanaf dit token. Wacht en probeer het opnieuw." / "Dit token heeft het dagelijkse uploadvolume bereikt. Probeer het morgen opnieuw."
Aanroepen zonder geldig token 60 per minuut per IP-adres "Te veel aanvragen. Wacht en probeer het opnieuw."

Een 429-antwoord bevat een Retry-After-header en retry_after (seconden) in de body. Wacht zo lang voordat je het opnieuw probeert. Lezen, offertes en statuscontroles kosten geen credits.