Terug
8 min lezen
Geavanceerde functies

API-integratie

Volledige VoxScriber API-documentatie voor ontwikkelaars. Endpoints, authenticatie en codevoorbeelden.

API-integratie

Volledige VoxScriber REST API-documentatie voor ontwikkelaars. Lees meer over authenticatie, belangrijke endpoints, webhooks en hoe u automatische transcriptie in uw systemen integreert.

API-functies

Tokenauthenticatie

Veilig authenticatiesysteem via API-tokens.

  • Unieke tokens per applicatie
  • Automatische verlenging mogelijk
  • Granulaire machtigingscontrole
  • Aangepaste snelheidsbeperking

Programmatisch uploaden

Geautomatiseerd indienen van bestanden voor transcriptie.

  • Meerdere ondersteunde formaten
  • Direct uploaden of via URL
  • Asynchrone verwerking
  • Realtime statusmeldingen

Slimme Webhooks

Automatische meldingen over de voortgang.

  • Configureerbare gebeurtenissen
  • Automatische herkansing bij fouten
  • Veiligheidshandtekening
  • Meerdere endpoints per gebeurtenis

Authenticatie

Uw API-sleutel verkrijgen

Ga naar het Dashboard

Log in op VoxScriber

API-instellingen

Ga naar Instellingen -> API -> Sleutels

Genereer een nieuwe sleutel

Klik op 'Nieuwe API-sleutel' en stel machtigingen in

Kopieer en bewaar

Kopieer de gegenereerde sleutel en bewaar deze veilig

Deel uw API-sleutel nooit openbaar. Bewaar deze in omgevingsvariabelen en nooit in versiebeheerde broncode.

De API-sleutel gebruiken

Voeg uw API-sleutel toe aan de Authorization-header van alle verzoeken:

curl -X POST https://api.vozparatexto.com.br/v1/transcribe \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@audio.mp3"

Belangrijkste endpoints

Bestand uploaden

POST /v1/upload
Content-Type: multipart/form-data

Parameters:

  • file (vereist) - Audio-/videobestand
  • language (optioneel) - Taalcode (bijv. 'nl-NL')
  • engine (optioneel) - Transcriptiemotor ('ASSEMBLYAI', 'WHISPER', 'ELEVENLABS')
  • speaker_detection (optioneel) - Sprekeridentificatie inschakelen (boolean)

Antwoord:

{
  "id": "upload_abc123",
  "status": "UPLOADED",
  "duration": 120.5,
  "fileSize": 2048000
}

Transcriptie starten

POST /v1/transcribe
Content-Type: application/json

Body:

{
  "uploadId": "upload_abc123",
  "engine": "ASSEMBLYAI",
  "speakerDetection": true,
  "language": "en-US"
}

Status controleren

GET /v1/transcription/{id}/status

Antwoord:

{
  "id": "trans_xyz789",
  "status": "COMPLETED",
  "progress": 100,
  "text": "Getranscribeerde tekst...",
  "duration": 120.5,
  "creditsUsed": 8
}

Resultaat downloaden

GET /v1/transcription/{id}/export?format=json

Beschikbare formaten: json, txt, srt, vtt, docx, pdf

Snelheidsbeperking

| Endpoint | Limiet | Venster | |---|---|---| | Uploaden | 10 verzoeken | 60 seconden | | Transcriptie | 10 verzoeken | 60 seconden | | Opvragen | 60 verzoeken | 60 seconden | | Exporteren | 30 verzoeken | 60 seconden |

Gebruik webhooks in plaats van pollings om de transcriptiestatus te volgen. Dit vermindert het aantal verzoeken drastisch en verbetert de integratie-efficiëntie.

Integratievoorbeelden

Node.js

const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');

const API_KEY = process.env.VOXSCRIBER_API_KEY;
const BASE_URL = 'https://api.vozparatexto.com.br/v1';

async function transcribeFile(filePath) {
  // 1. Upload
  const form = new FormData();
  form.append('file', fs.createReadStream(filePath));

  const upload = await axios.post(`${BASE_URL}/upload`, form, {
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      ...form.getHeaders()
    }
  });

  // 2. Transcribe
  const transcription = await axios.post(`${BASE_URL}/transcribe`, {
    uploadId: upload.data.id,
    engine: 'ASSEMBLYAI',
    speakerDetection: true
  }, {
    headers: { 'Authorization': `Bearer ${API_KEY}` }
  });

  return transcription.data;
}

Python

import requests
import os

API_KEY = os.environ['VOXSCRIBER_API_KEY']
BASE_URL = 'https://api.vozparatexto.com.br/v1'

def transcribe_file(file_path):
    headers = {'Authorization': f'Bearer {API_KEY}'}

    # 1. Upload
    with open(file_path, 'rb') as f:
        upload = requests.post(
            f'{BASE_URL}/upload',
            headers=headers,
            files={'file': f}
        )

    # 2. Transcribe
    transcription = requests.post(
        f'{BASE_URL}/transcribe',
        headers=headers,
        json={
            'uploadId': upload.json()['id'],
            'engine': 'ASSEMBLYAI',
            'speakerDetection': True
        }
    )

    return transcription.json()

Foutafhandeling

| Code | Betekenis | Aanbevolen actie | |---|---|---| | 400 | Ongeldig verzoek | Controleer parameters | | 401 | Niet geauthenticeerd | Controleer uw API-sleutel | | 403 | Verboden | Controleer tokenmachtigingen | | 429 | Snelheidslimiet overschreden | Wacht en probeer opnieuw | | 500 | Interne fout | Probeer opnieuw na 30 seconden |

Beveiliging

  • Gebruik HTTPS voor alle verzoeken
  • Bewaar API-sleutels in omgevingsvariabelen
  • Roteer sleutels regelmatig
  • Gebruik minimale benodigde machtigingen
  • Implementeer handtekeningverificatie voor webhooks

Verder leren