Documentation

API DUXIA

Vérifiez des médias avec un jeton Clerk ou une clé API DUXIA. Documentation interactive : https://duxia-api-pq9j.onrender.com/docs.

Vérifier un fichier

curl -X POST "https://duxia-api-pq9j.onrender.com/verify" \
  -H "Authorization: Bearer YOUR_CLERK_OR_API_KEY" \
  -F "file=@sample.mp4"

Flux clé API

curl -X POST "https://duxia-api-pq9j.onrender.com/verify" \
  -H "Authorization: Bearer duxia_live_..." \
  -F "file=@evidence.pdf"

Webhooks d'intégration

Recevez verification.completed, verification.medium_risk et verification.high_risk en JSON signé (en-tête X-DUXIA-Signature).

Test rapide avec webhook.site

1. Ouvrez webhook.site et copiez votre URL unique.
2. Dans duxia.app → Growth Controls → Webhooks d'intégration, collez l'URL et cliquez Ajouter.
3. Lancez une vérification (upload fichier).
4. Sur webhook.site, vérifiez le JSON et l'en-tête X-DUXIA-Signature.

Événements

  • verification.completed — every finished verification
  • verification.medium_risk — MEDIUM risk level
  • verification.high_risk — HIGH risk level

Créer un webhook (API)

curl -X POST "https://duxia-api-pq9j.onrender.com/integrations/webhooks" \
  -H "Authorization: Bearer YOUR_CLERK_SESSION_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "SIEM prod",
    "url": "https://webhook.site/your-id",
    "events": [
      "verification.completed",
      "verification.medium_risk",
      "verification.high_risk"
    ],
    "enabled": true
  }'

Exemple de payload

{
  "event": "verification.completed",
  "created_at": "2026-05-21T12:00:00+00:00",
  "data": {
    "request_id": "req_abc123",
    "filename": "evidence.mp4",
    "media_type": "video",
    "fraud_score": 42,
    "risk_level": "MEDIUM",
    "duplicate_of_request_id": null,
    "created_at": "2026-05-21T12:00:00+00:00"
  }
}

Vérifier la signature (Python)

import hmac
import hashlib

def verify(body: bytes, secret: str, header: str) -> bool:
    expected = "sha256=" + hmac.new(
        secret.encode(), body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, header)
DUXIA