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 verificationverification.medium_risk— MEDIUM risk levelverification.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)