'Comment automatiser la rédaction des informations personnelles avec une API REST'

'PiiBlur Team'9 lecture min.

Si votre application accepte les photos téléchargées par les utilisateurs, les séquences de flotte, les documents de réclamation ou tout autre support visuel, la rédaction appartient au pipeline de téléchargement. Les visages, les plaques d'immatriculation, les documents, les écrans et les badges apparaissent souvent dans des fichiers qui n'ont jamais été destinés à exposer des données personnelles.

Ce guide couvre l'API REST PiiBlur : téléchargement de médias, vérification de l'état, téléchargement des résultats, configuration des webhooks et création d'un pipeline par lots. Tous les exemples utilisent cURL pour rester indépendant de la langue. Pour la référence complète du point de terminaison, consultez le Documentation API. Pour des exemples plus précis, consultez les pages API de flou de visage, API de flou de plaque d'immatriculation, API de rédaction d'images et API de rédaction vidéo.

Authentification et URL de base

Chaque demande nécessite un jeton Bearer. Générez une clé API à partir de la section API de votre tableau de bord PiiBlur.

curl -X GET https://piiblur.com/api/v1/usage \
  -H "Authorization: Bearer YOUR_API_KEY"

Une réponse réussie confirme votre clé et renvoie les limites d'utilisation et de forfait actuelles. Tous les points de terminaison vivent sous https://piiblur.com/api/v1/.

Téléchargement de médias pour la rédaction des informations personnelles

Soumettez une image ou une vidéo avec une requête POST en plusieurs parties. Spécifiez au moins une catégorie PII à supprimer.

curl -X POST https://piiblur.com/api/v1/media/redact \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "categories[]=heads" \
  -F "categories[]=license_plates"

La réponse renvoie un objet média public avec un statut queued :

{
    "id": "9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
    "status": "queued",
    "filename": "photo.jpg",
    "media_type": "image",
    "categories": ["heads", "license_plates"],
    "redaction_method": "blur",
    "file_size_bytes": 482391,
    "duration_seconds": null,
    "created_at": "2026-03-11T14:30:00+00:00",
    "processed_at": null,
    "failed_at": null
}

Spécifiez la méthode de rédaction - blur ou pixelation - par requête :

curl -X POST https://piiblur.com/api/v1/media/redact \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "categories[]=heads" \
  -F "categories[]=documents" \
  -F "redaction_method=pixelation"

Les images sont traitées en quelques secondes. Le temps de traitement vidéo dépend de la durée et de la résolution.

Vérification de l'état du travail

Interrogez le point de terminaison d'état pour vérifier l'achèvement :

curl -X GET https://piiblur.com/api/v1/media/9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c \
  -H "Authorization: Bearer YOUR_API_KEY"

Une tâche terminée renvoie un download_url :

{
    "id": "9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
    "status": "completed",
    "filename": "photo.jpg",
    "media_type": "image",
    "categories": ["heads", "license_plates"],
    "redaction_method": "blur",
    "file_size_bytes": 482391,
    "duration_seconds": null,
    "created_at": "2026-03-11T14:30:00+00:00",
    "processed_at": "2026-03-11T14:30:04+00:00",
    "failed_at": null,
    "download_url": "https://piiblur.com/api/v1/media/9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c/download"
}

Le champ download_url apparaît uniquement une fois le traitement terminé.

Téléchargement de la sortie rédigée

Récupérez le fichier rédigé avec une requête GET à l'URL de téléchargement :

curl -X GET https://piiblur.com/api/v1/media/9f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c/download \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o redacted_photo.jpg

Les téléchargements nécessitent votre clé API. Stockez le fichier rédigé dans votre propre stockage dans le cadre de votre pipeline.

Utiliser des webhooks au lieu d'interroger

Le sondage fonctionne pour des intégrations simples, mais les webhooks conviennent mieux aux systèmes de production. Enregistrez un point de terminaison de webhook dans le tableau de bord et PiiBlur y effectue un POST lorsqu'une tâche se termine, échoue ou lorsque le fichier source d'origine est supprimé.

Configurez les points de terminaison du webhook dans la section API de votre tableau de bord. Les webhooks sont au niveau de l'équipe et ne sont pas transmis par demande de téléchargement.

Les charges utiles du webhook incluent un ID d'événement, un horodatage, un nom d'événement, un ID de média, un statut et un objet media imbriqué qui utilise les mêmes champs publics que le point de terminaison de l'état du média. Le média expurgé complété comprend un media.download_url authentifié. Vérifiez l'en-tête X-PiiBlur-Signature pour confirmer que la demande provient de PiiBlur. Les détails de la vérification de la signature se trouvent dans le fichier Documentation API.

Pour une architecture de production avec des clés d'idempotence, une déduplication d'événements, des processus de téléchargement et des files d'attente de nouvelles tentatives, voir Comment créer un pipeline de rédaction basé sur un webhook.

Création d'un pipeline de traitement par lots

La plupart des charges de travail de production traitent plusieurs fichiers, et non un à la fois. Un pipeline par lots soumet les tâches en parallèle et collecte les résultats via des webhooks.

Le flux de travail :

  1. Fichiers en file d'attente. Votre application collecte des fichiers (à partir de téléchargements d'utilisateurs, d'un compartiment de stockage ou d'une analyse planifiée) et les place dans une file d'attente de traitement.
  2. Soumettez les tâches en parallèle. POSTez chaque fichier sur le point de terminaison du média. L'API accepte les demandes simultanées dans les limites tarifaires de votre forfait.
  3. Recevez des rappels de webhook. À la fin de chaque tâche, PiiBlur envoie le résultat au point de terminaison de votre webhook.
  4. Stockez la sortie rédigée. Votre gestionnaire de webhook télécharge le fichier rédigé et l'écrit dans le stockage.
  5. Gérer les échecs. Si une tâche échoue, utilisez l'état du webhook d'échec pour déclencher de nouvelles tentatives ou une révision manuelle.

Ce modèle s'adapte à n'importe quel volume. Un pipeline traitant 10 000 images par jour suit la même logique qu'un pipeline traitant 10 images : seules la concurrence et la gestion des files d'attente diffèrent.

Pour les intégrations à haut débit, consultez Documentation API pour connaître les limites de débit par plan et les en-têtes de réponse.

Choisir les catégories PII pour votre cas d'utilisation

PiiBlur détecte 13 catégories PII : têtes, plaques d'immatriculation, écrans, écritures, panneaux de signalisation, cartes d'identité, passeports, cartes de crédit, badges nominatifs, codes QR, codes-barres, documents et tatouages. Tous les cas d’utilisation ne nécessitent pas tous.

Sélectionnez des catégories en fonction de vos données, de vos critères d'évaluation et de votre programme de confidentialité :

  • Photos téléchargées par l'utilisateur - les têtes et les documents sont généralement la priorité - Images au niveau de la rue – têtes, plaques d'immatriculation et panneaux de signalisation
  • Images de la dashcam de la flotte - têtes, plaques d'immatriculation et écrans
  • Photographie immobilière - têtes, écrans et badges nominatifs - Images d'établissements de santé – têtes, cartes d'identité, badges nominatifs et documents

Spécifier uniquement les catégories dont vous avez besoin permet un traitement rapide et évite une rédaction excessive.

Pour flux de travail par lots volumineux, la sélection des catégories affecte également le coût : moins de catégories signifie un traitement plus rapide et un calcul par image inférieur.

Gestion des erreurs

L'API renvoie les codes d'état HTTP standard. Gérez-les dans votre intégration :

  • 401 - clé API invalide ou expirée
  • 409 - clé d'idempotence réutilisée avec une charge utile différente, ou une demande de correspondance est toujours en cours
  • 422 - erreur de validation (fichier manquant, format non pris en charge, catégorie non valide ou vidéo de plus de 10 minutes)
  • 429 - quota ou limite de taux dépassé ; les réponses à la limite de débit incluent Retry-After
  • 500 - erreur du serveur ; réessayez avec une interruption exponentielle

Toutes les erreurs JSON utilisent l'enveloppe standard { "error": ..., "request_id": ... }. Vérifiez l’état de la réponse avant de supposer le succès et enregistrez le request_id avec le corps de la réponse pour faciliter le débogage.

Portes d'examen

Tous les travaux terminés ne doivent pas être directement publiés. Ajoutez une porte de révision lorsque les médias sont destinés à une diffusion publique, à une divulgation légale, aux soins de santé, à l'éducation, aux forces de l'ordre ou à tout flux de travail impliquant des enfants ou des personnes vulnérables.

Pour les flux de travail internes à moindre risque, échantillonnez les résultats terminés au lieu de tout examiner. Suivez les échecs par type de source et catégorie. Si les réviseurs trouvent à plusieurs reprises des plaques dans des images de nuit ou du texte à l'écran dans les visites guidées du bureau, faites-en une règle de flux de travail plutôt qu'un test de mémoire du réviseur.

Utilisez le liste de contrôle d'assurance qualité pour la rédaction automatisée comme point de départ pour réviser la politique.

Limites de prix et de taux

L'offre gratuite de PiiBlur comprend 100 images et 5 minutes de vidéo par mois, soit suffisamment pour créer et tester votre intégration. Les forfaits payants commencent à 49 $/mois et évoluent jusqu'à 499 $/mois pour les opérations à volume élevé. Chaque niveau augmente les limites de taux et les quotas mensuels.

Les détails complets du plan se trouvent sur le page de tarification.

Commencer la construction

Le moyen le plus rapide d’évaluer l’API : traiter quelques-unes de vos propres images. Récupérez une clé API dans le tableau de bord, exécutez l'exemple de téléchargement cURL ci-dessus et inspectez le résultat. Connectez ensuite les webhooks, créez votre file d'attente par lots et déployez. Le Documentation API couvre tous les formats de point de terminaison, de paramètre et de réponse.