API-documentatie
ISO 27001SOC 2 CertifiedGDPR Compliant

AI-videodetectie-API

Volledige documentatie voor de integratie van de AI-videodetectie-API van TruthScan in uw applicaties.

Probeer het zonder code via ons FastAPI-endpoint: https://detect-video.truthscan.com/docs

Authenticatie

TruthScan gebruikt API-sleutels. U haalt uw sleutel op via bovenaan de pagina in ons developerportaal.

De API-sleutel hoort in alle verzoeken in een body zoals hieronder:

{
  "key": "YOUR API KEY GOES HERE"
}

Vervang YOUR API KEY GOES HERE door uw persoonlijke API-sleutel.

AI-videodetector

Detect (2 stappen)

De workflow voor AI-videodetectie:

  • Video indienen (multipart-upload)
  • Job opvragen voor resultaten

1. Video indienen voor detectie

Upload een videobestand direct naar de API. De server valideert het bestand.

Ondersteunde formaten

MP4, MOV, AVI, MKV, WEBM

Bestandsgroottes

  • Minimum: 1 KB
  • Maximum: 100 MB
POST https://detect-video.truthscan.com/detect-file

Voorbeeldrequest

curl -X POST \
  'https://detect-video.truthscan.com/detect-file' \
  -H 'accept: application/json' \
  -H 'key: YOUR-API-KEY-GOES-HERE' \
  -F 'file=@/path/to/video.mp4;type=video/mp4'

Optionele parameters

  • document_type: Documenttype (standaard: ‘Video’)
  • email: Optioneel e-mailadres voor verwerking

Voorbeeldresponse

{
    "id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
    "status": "pending"
}

De response bevat een unieke video-ID om de status te volgen.

2. Status en resultaten opvragen

Poll /query met de job-ID voor status en resultaten.

POST https://detect-video.truthscan.com/query

Voorbeeldrequest

curl -X POST 'https://detect-video.truthscan.com/query' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"id":"JOB-ID-GOES-HERE"}'

Voorbeeldresponse

{
    "id": "bfd136fc-666b-42d0-89cf-0e9690c98f21",
    "status": "done",
    "result": 0.101969311406719,
    "result_details": {
        "final_stage": "watermark",
        "metadata": {
            "status": "ok",
            "prediction": "no_detection",
            "confidence": 0.0
        },
        "watermark": {
            "prediction": "ai_generated (watermark)",
            "confidence": 1.0
        },
        "ml": {
            "aggregate": {
                "prob_fake": 0.1019693114067195,
                "label": "cancelled",
                "n_frames": 256,
                "latency_sec": 23.319
            }
        },
        "latency_sec": 24.017
    },
    "preview_url": null
}

Resultaatdetails

  • status: "pending", "analyzing", "done" of "failed"
  • result: Score in [0,0, 1,0] afgeleid van ML prob_fake
  • final_stage: Laatste bijdragende fase: ‘metadata’, ‘watermark’ of ‘ml’
  • metadata: Zet prediction op ‘no_detection’ en confidence op 0,0. Status kan ‘reject’, ‘reencode’ of ‘ok’ zijn
  • watermark: Heuristiek: frames samplen en pseudo-confidence uit pixelvariantie
  • ml: Classificator op gesamplede frames: prob_fake in [0,0, 1,0] en label (‘ai_generated’ als prob_fake ≥ 0,5, anders ‘no_detection’)
  • latency_sec: Totale pipelinetijd

“status”: “pending” (wachtrij), “analyzing” (bezig), “done” (klaar) of “failed” (mislukt).

Credits controleren

Accepteert apikey in de header; retourneert creditdetails.

GET https://detect-video.truthscan.com/check-user-credits

Voorbeeldrequest

curl -X 'GET' \
  'https://detect-video.truthscan.com/check-user-credits' \
  -H 'apikey: YOUR API KEY GOES HERE' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json'

Voorbeeldresponse

{
    "baseCredits": 10000,
    "boostCredits": 1000,
    "credits": 11000
}

Health check

Controleer de status van de API-server.

GET https://detect-video.truthscan.com/health

Voorbeeldrequest

curl -X 'GET' \
  'https://detect-video.truthscan.com/health' \
  -H 'accept: application/json'

Voorbeeldresponse

{
    "status": "healthy"
}

Fouten

Meeste fouten komen door onjuiste parameters. Controleer elke aanroep en vergelijk met de voorbeeldcode.

Onze foutcodes volgen de REST-standaard:

CodeBetekenis
400Bad Request — Ongeldig verzoek.
403Forbidden — Ongeldige API-sleutel of onvoldoende credits voor video.
404Not Found — Resource bestaat niet.
405Method Not Allowed — Verkeerde HTTP-methode.
406Not Acceptable — Geen JSON gevraagd.
410Gone — Endpoint verwijderd.
422Invalid Request Body — Body ongeldig of ontbrekende velden.
429Too Many Requests — Te veel verzoeken.
500Internal Server Error — Serverfout; probeer later opnieuw.
503Service Unavailable — Onderhoud; probeer later opnieuw.

Veelvoorkomende problemen en oplossingen

Authenticatie

"User verification failed" (403)

Oorzaak: Ongeldige of verlopen API-sleutel

Oplossing:

  1. Controleer de API-sleutel
  2. Controleer of de sleutel actief is
  3. Genereer zo nodig een nieuwe sleutel

"Not enough credits" (403)

Oorzaak: Onvoldoende credits voor video

Oplossing:

  1. Saldo controleren via /check-user-credits
  2. Extra credits kopen

Validatie van invoer

"Unsupported video type" (400)

Oorzaak: Formaat niet ondersteund

Oplossing:

  1. Converteer naar MP4, MOV, AVI, MKV of WEBM
  2. Controleer extensie en MIME-type

"File size exceeds limit" (400)

Oorzaak: Bestand te groot

Oplossing:

  1. Comprimeer, knip of encodeer opnieuw (max. 100 MB)
  2. Gebruik een efficiëntere codec/container

"File size is too small" (400)

Oorzaak: Bestand kleiner dan minimum

Oplossing:

  1. Gebruik een groter bestand (min. 1 KB)
  2. Controleer op corruptie

"Invalid file type" (400)

Oorzaak: Validatie mislukt (verkeerd MIME-type of corrupt bestand)

Oplossing:

  1. Controleer of het een geldig videoformaat is
  2. MIME-type moet bij extensie passen
  3. Exporteer of encodeer opnieuw indien nodig

Verwerking

Video status "failed"

Oorzaak: Verwerking mislukt (bijv. container niet leesbaar, decodefouten)

Oplossing:

  1. Gebruik gangbare codec (bijv. H.264/AAC in MP4)
  2. Encodeer opnieuw met standaardpreset (bijv. ffmpeg) en upload opnieuw
  3. Controleer formaat- en grootte-eisen

Video status "timeout" of lange verwerking

Oorzaak: Verwerking duurt langer dan verwacht of time-out

Oplossing:

  1. Wacht even en poll /query opnieuw
  2. Controleer formaat en grootte
  3. Neem contact op met support als het aanhoudt

"User not found"

Oorzaak: Ongeldige gebruiker

Oplossing:

  1. Controleer API-sleutel en actief account
  2. Controleer of de integratiegebruiker geldig is
  3. Zo nodig opnieuw authenticeren

"File metadata could not be fetched" (500)

Oorzaak: Geen toegang tot of parse van upload

Oplossing:

  1. Controleer of upload compleet was
  2. Controleer of het bestand bereikbaar en niet corrupt is
  3. Upload opnieuw

Hulp nodig?

Voor meer informatie of technische ondersteuning: neem contact op.

Veelgestelde vragen over de API

Antwoorden op veelgestelde vragen over de AI-videodetectie-API.