Video-API
AVCaption levert een REST-API voor programmatisch videobeheer. Beschikbaar in Enterprise; previewtoegang voor Premium op aanvraag.
Authenticatie
Twee methoden:
Bearer-token (JWT) — uitgegeven bij login, verzonden als header Authorization: Bearer <token>. Gebruikt door je geverifieerde dashboardsessies.
API-key — gegenereerd op je settingspagina. Formaat avc_<64-hex-tekens>. Verzend als header X-API-Key: <key> of als query-parameter ?api_key=<key>. Handig voor server-naar-server.
Endpoints
GET /api/v1/videos Lijst video's (paginated, ?page=1)
GET /api/v1/videos/:id Video-metadata + embed-token
POST /api/v1/upload Directe upload (kleine bestanden)
POST /api/v1/upload/init Chunked upload-sessie starten
POST /api/v1/upload/chunk Eén chunk uploaden
POST /api/v1/upload/complete Chunked upload afronden
PUT /api/v1/videos/:id Title, allowed_domains bijwerken
DELETE /api/v1/videos/:id Video verwijderen
GET /api/v1/stats Account-stats: totaal video's, views, gebruikt opslag
GET /api/v1/embed/:token Publieke embed-metadata (geen auth voor publieke video's)
POST /api/v1/videos/:id/subtitles Ondertiteltrack uploaden (Enterprise)
GET /api/v1/presets Speler-presets opsommen (Enterprise)
POST /api/v1/presets Speler-preset aanmaken (Enterprise)
Chunked upload-patroon
# Stap 1: init
curl -X POST https://dashboard.avcaption.com/api/v1/upload/init \
-H "X-API-Key: avc_..." \
-d '{"filename":"course-lesson-1.mp4","size":1234567890,"title":"Lesson 1"}'
# Retourneert: {"upload_id":"abc123","chunk_size":5242880}
# Stap 2: chunks uploaden (parallel mogelijk)
curl -X POST https://dashboard.avcaption.com/api/v1/upload/chunk \
-H "X-API-Key: avc_..." \
-H "X-Upload-ID: abc123" \
-H "X-Chunk-Index: 0" \
--data-binary @chunk-0.bin
# ...herhalen voor elke chunk
# Stap 3: complete
curl -X POST https://dashboard.avcaption.com/api/v1/upload/complete \
-H "X-API-Key: avc_..." \
-d '{"upload_id":"abc123"}'
# Retourneert: {"video_id":"...","embed_token":"...","status":"processing"}
Webhook-events (Enterprise)
Abonneer op events op elk HTTPS-endpoint:
video.uploaded— chunked upload voltooidvideo.encoded— encoding klaar, klaar om af te spelenvideo.failed— encoding mislukt (met foutdetails)view.threshold— kijkersaantal kruist de geconfigureerde drempelsubtitle.translated— AI-vertaling voltooid
Webhook-payload gesigneerd met HMAC-SHA256.
Rate limits
- Read-endpoints (list, get): 300 req/min per API-key
- Write-endpoints (update, delete): 60 req/min
- Upload-endpoints: 60 req/min op init/complete; de chunks zelf zijn niet rate-limited
- Stats: 60 req/min
Limieten schalen automatisch voor Enterprise-klanten; neem contact op met sales voor maatwerktarieven.
Foutformaat
{
"error": "leesbare foutmelding",
"code": "machine_readable_error_code",
"request_id": "x-request-id-for-support-tickets"
}
Aan de slag
De REST-API zit in Enterprise. Genereer je API-key in het dashboard onder Settings → API Keys. Upgrade. Veelvoorkomende API-gestuurde inzet: LMS-videohosting, video voor agencyklanten, digitale producten.