> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API Email Risk : Délivrabilité et signaux de fuite

> Évaluez le risque d'une adresse e-mail sans envoyer de code OTP. Délivrabilité, domaines jetables, fuites et fraude en un seul appel serveur avec Didit.

Utilisez `POST /v3/email/risk/` lorsque vous avez besoin d'informations sur l'e-mail sans demander à l'utilisateur de saisir un code à usage unique.

Il n'envoie aucun e-mail. Il crée une session d'API, enrichit l'adresse, applique vos règles de risque lié à l'e-mail et renvoie, dans une seule réponse synchrone, le même bloc d'e-mail normalisé que celui utilisé par la Vérification de l'e-mail.

Lorsque la requête est enregistrée, Didit peut également utiliser l'e-mail évalué comme preuve agrégée dans **Réseaux**. Les graphes de réseau peuvent afficher des informations d'e-mail à haut risque, le contexte des fuites de données et la couverture des profils sociaux pour les signaux d'e-mail partagés, mais ils ne révèlent pas l'adresse e-mail brute aux autres organisations.

## Interpréter la réponse

* `status` correspond à la décision finale pour cette session d'API. Il vaut généralement `Approved` ; l'évaluation du risque peut produire `In Review` ou `Declined`.
* `email.is_breached`, `email.is_disposable` et `email.is_undeliverable` sont des indicateurs oui/non stables, à utiliser dans la logique de votre application.
* `email.breaches` liste les fuites de données connues les plus récentes contenant l'adresse, lorsque la couverture est disponible, avec la date de la fuite et les catégories de données exposées.
* `email.email_intelligence.score` utilise une échelle de risque de 0 à 100, où un nombre plus élevé indique un risque plus élevé. `breach_risk_level` (`Low`, `Medium`, `High`) et `no_of_breaches` sont des valeurs dérivées.
* `email.email_intelligence.reason_codes` explique quels signaux normalisés ont contribué au résultat. Ces valeurs peuvent évoluer dans le temps : ne rejetez pas les codes inconnus.
* `email.email_intelligence` et `email.enrichment` sont des alias de compatibilité pointant vers le même objet normalisé. Les nouvelles intégrations peuvent lire `email.enrichment`.
* `email.matches` liste les autres sessions de votre application où la même adresse a été utilisée par un autre utilisateur. Utilisez-le pour détecter les comptes en double.
* `request_id` correspond à l'identifiant de la session d'API. Stockez-le avec `vendor_data` si vous devez corréler le résultat avec des webhooks ultérieurs ou avec l'activité de la console.

> [!WARNING]
>
> `email.email_intelligence` et `email.enrichment` sont des champs fournis dans la mesure du possible. Une recherche terminée peut omettre les deux lorsqu'aucune donnée exploitable issue de l'analyse n'est renvoyée pour cette adresse, ce domaine ou ce forfait. Construisez d'abord vos règles sur `is_breached`, `is_disposable` et `is_undeliverable`, et traitez une intelligence manquante comme « inconnue », et non comme « sûre ».

## Module complémentaire d'empreinte sociale

Définissez `enable_social` sur `true` pour ajouter un bloc `email_social` à la réponse, sous `email` : les plateformes en ligne sur lesquelles cette adresse e-mail est enregistrée, regroupées par catégorie, avec les totaux récapitulatifs et les détails de profil renvoyés par nos partenaires de données, lorsqu'ils sont disponibles.

* `email.email_social.profiles_registered` et `email.email_social.profiles_checked` sont les chiffres clés : les plateformes sur lesquelles l'adresse e-mail est confirmée comme enregistrée, sur l'ensemble des plateformes évaluées.
* `email.email_social.registered_platforms` et `email.email_social.not_registered_platforms` listent chaque plateforme avec sa `category` et son `scope` (`global`, ou `local` pour les plateformes propres à une région).
* `email.email_social.categories` indique le nombre d'enregistrements et le ratio par catégorie, et `email.email_social.profiles` contient les détails de profil par plateforme lorsqu'une plateforme les expose (nom, URL de la photo, texte de présentation, statut de confidentialité, indicateur de compte professionnel).
* Les indices de synthèse (`digital_footprint_diversity`, `digital_sophistication_index`, `engagement_depth_index`, `subscription_affordability_index`) sont des composites de 0 à 10. Chaque nombre peut être `null` lorsque la vérification n'a renvoyé aucune donnée pour celui-ci.

`profiles_registered: 0` est une réponse valide, et non un échec : les plateformes ont été vérifiées et l'adresse e-mail n'a été trouvée sur aucune d'elles, ce qui constitue un signal courant d'identité synthétique. L'endpoint n'agit pas seul sur ce signal : utilisez `email_no_social_presence_action` dans un workflow pour le transformer en verdict En cours d'examen ou Refusé.

Le bloc est absent lorsque `enable_social` n'est pas défini, et également lorsque la vérification sociale n'a pas pu être terminée, auquel cas elle n'est pas facturée.

## Comportement du sandbox

Les clés sandbox valident la requête et renvoient des données approuvées déterministes. Elles n'envoient aucun e-mail, ne consomment aucun crédit, ne créent aucune session et ne contribuent pas à Réseaux. Lorsque `enable_social` est défini, elles renvoient également un bloc `email_social` déterministe.

## Facturation

Les appels à l'Email Risk API coûtent \$0.04 au tarif catalogue, soit moins que la Vérification de l'e-mail complète, car aucun e-mail n'est envoyé. Une requête en production est facturable dès que la recherche démarre, même lorsque certains champs fournis dans la mesure du possible ne sont pas disponibles.

Le module complémentaire d'empreinte sociale est facturé séparément : une unité `email_social` par requête, en plus du prix de l'Email Risk API, dès que la vérification est terminée. La vérification de crédit effectuée avant la recherche couvre les deux.


## OpenAPI

````yaml fr/openapi-25.json POST /v3/email/risk/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/email/risk/:
    post:
      tags:
        - Standalone APIs
      summary: Calculer le score de risque d'une adresse e-mail
      description: "Renvoie les signaux de délivrabilité, d'adresse jetable, de fuite de données, de correspondance inter-sessions et de renseignements normalisés sur les risques sans envoyer d'OTP. L'endpoint crée une session d'API et renvoie son identifiant sous forme de `request_id`.\n\n**Décision.** Le `status` de premier niveau reflète `email.status`. Il vaut normalement `Approved`\_; l'évaluation des risques peut produire `In Review` ou `Declined`.\n\n**Alias de compatibilité.** Les réponses en production exposent l'objet de renseignements normalisé à la fois sous `email.email_intelligence` et `email.enrichment`. Les valeurs sont identiques. Les nouvelles intégrations peuvent lire `email.enrichment`. Les deux clés sont absentes lorsqu'aucune donnée de renseignement exploitable n'a été renvoyée.\n\n**Facturation.** Les appels en production utilisent les tarifs de l'Email Risk API. La requête est facturable dès que la recherche commence, même si certains champs fournis au mieux sont indisponibles.\n\n**Sandbox.** Les clés de sandbox valident la requête et renvoient des données approuvées déterministes sans envoyer d'e-mail, consommer de crédits, créer de session ni contribuer à Networks.\n\n**Authentification.** Envoyez la clé API de votre application dans `x-api-key`. Des identifiants manquants ou invalides renvoient `403` - cette API ne renvoie jamais `401`.\n\n**Limite de débit.** Budget d'écriture partagé de 300 requêtes par minute par clé API sur les endpoints POST/PATCH/DELETE (les créations de transactions et l'ingestion d'événements disposent d'un budget distinct de 600).\n\n**Empreinte sociale.** Définissez `enable_social` sur `true` pour ajouter un bloc `email_social`\_: les plateformes en ligne sur lesquelles cette adresse est enregistrée, avec le décompte par catégorie et les détails de profil disponibles. `profiles_registered: 0` signifie que les plateformes ont été vérifiées et que l'adresse n'a été trouvée sur aucune d'entre elles - une réponse valide et facturable. Le bloc est absent lorsque l'option n'a pas été demandée ou que la vérification n'a pas pu être effectuée, et il n'est pas facturé dans ce cas. La facturation ajoute une unité `email_social` par requête en plus du prix propre à cet endpoint."
      operationId: post_v3email_risk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailRiskRequest'
            examples:
              Minimal:
                summary: Évaluer une adresse avec les paramètres par défaut
                value:
                  email: alice@example.com
              Full context:
                summary: >-
                  Évaluer avec des signaux, une indication de pays et des
                  identifiants de corrélation
                value:
                  email: alice@example.com
                  country_code: US
                  signals:
                    ip: 192.0.2.1
                    device_id: 8F0B8FDD-C2CB-4387-B20A-56E9B2E5A0D2
                    device_platform: web
                    os_version: '14.4'
                    app_version: 1.2.34
                    user_agent: >-
                      Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
                      AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4
                      Safari/605.1.15
                  vendor_data: lead-123
                  metadata:
                    source: signup_prescreen
      responses:
        '200':
          description: "L'évaluation du risque est terminée. Inspectez `status` pour connaître la décision\_; le code HTTP est toujours `200` pour les recherches terminées."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailRiskResponse'
              examples:
                Clean address:
                  summary: Adresse livrable sans exposition à une compromission
                  value:
                    request_id: 82397be9-5921-4970-a979-2d5b43e08b33
                    status: Approved
                    email:
                      status: Approved
                      email: alice@example.com
                      is_breached: false
                      breaches: []
                      is_disposable: false
                      is_undeliverable: false
                      verification_attempts: 0
                      verified_at: null
                      warnings: []
                      lifecycle: []
                      matches: []
                      email_intelligence:
                        score: 4
                        deliverable: high
                        breach_risk_level: Low
                        breach_risk_index: 4
                        is_recent_breach: false
                        is_frequent_breached: false
                        is_disposable: false
                        is_free_domain: false
                        is_breached: false
                        no_of_breaches: 0
                        reason_codes: []
                      enrichment:
                        score: 4
                        deliverable: high
                        breach_risk_level: Low
                        breach_risk_index: 4
                        is_recent_breach: false
                        is_frequent_breached: false
                        is_disposable: false
                        is_free_domain: false
                        is_breached: false
                        no_of_breaches: 0
                        reason_codes: []
                    vendor_data: lead-123
                    metadata:
                      source: signup_prescreen
                    created_at: '2026-09-01T10:30:00.123456+00:00'
                Breached address:
                  summary: Adresse trouvée dans des fuites de données connues
                  value:
                    request_id: d1e5c2a8-6f30-4c1a-8b2d-3e4f5a6b7c8d
                    status: In Review
                    email:
                      status: In Review
                      email: bob@example.org
                      is_breached: true
                      breaches:
                        - name: ExampleBreach2023
                          domain: example.org
                          breach_date: '2023-06-01'
                          breach_emails_count: 1200000
                          description: A data breach affecting example.org accounts.
                          logo_path: https://logos.example.org/example.png
                          data_classes:
                            - email_addresses
                            - passwords
                          is_verified: true
                      is_disposable: false
                      is_undeliverable: false
                      verification_attempts: 0
                      verified_at: null
                      warnings: []
                      lifecycle: []
                      matches: []
                      email_intelligence:
                        score: 58
                        deliverable: high
                        breach_risk_level: High
                        breach_risk_index: 72
                        is_recent_breach: true
                        is_frequent_breached: true
                        is_disposable: false
                        is_free_domain: true
                        is_breached: true
                        no_of_breaches: 4
                        reason_codes:
                          - code: IR-F784B630
                            direction: risk
                            message: Email's digital footprint diversity is Very Low
                            impact_level: low
                      enrichment:
                        score: 58
                        deliverable: high
                        breach_risk_level: High
                        breach_risk_index: 72
                        is_recent_breach: true
                        is_frequent_breached: true
                        is_disposable: false
                        is_free_domain: true
                        is_breached: true
                        no_of_breaches: 4
                        reason_codes:
                          - code: IR-F784B630
                            direction: risk
                            message: Email's digital footprint diversity is Very Low
                            impact_level: low
                    vendor_data: lead-125
                    metadata: null
                    created_at: '2026-09-01T10:30:00.123456+00:00'
        '400':
          $ref: '#/components/responses/EmailRiskValidationError'
        '403':
          $ref: '#/components/responses/RiskPermissionDenied'
        '429':
          $ref: '#/components/responses/RateLimitedWrite'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST https://verification.didit.me/v3/email/risk/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "email": "alice@example.com",
                "country_code": "US",
                "vendor_data": "lead-123",
                "metadata": {"source": "signup_prescreen"}
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.email.assess_risk(
                email="alice@example.com",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.email.assessRisk({
              email: "alice@example.com",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Email.AssessRisk(ctx, didit.EmailRiskRequest{\n\tEmail: \"alice@example.com\",\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;
            import me.didit.types.EmailRiskRequest;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            var result = client.email().assessRisk(EmailRiskRequest.builder()
                    .email("alice@example.com")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->email->assessRisk([
                'email' => 'alice@example.com',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.email.assess_risk(email: "alice@example.com")
            puts result.to_h
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY.
            using var client = new DiditClient();

            var result = await client.Email.AssessRiskAsync(new EmailRiskRequest
            {
                Email = "alice@example.com",
            });
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    EmailRiskRequest:
      type: object
      required:
        - email
      properties:
        email:
          type: string
          format: email
          description: Adresse e-mail à évaluer.
          example: alice@example.com
        country_code:
          type: string
          maxLength: 3
          description: >-
            Indication de pays ISO 3166-1 alpha-2 ou alpha-3 optionnelle pour la
            couverture du renseignement.
          example: US
        signals:
          $ref: '#/components/schemas/RiskSignals'
        vendor_data:
          type: string
          description: >-
            Votre référence stable pour cette requête. Enregistrée sur la
            session API et renvoyée dans la réponse.
        metadata:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Vos métadonnées JSON non sensibles. Enregistrées sur la session
            d'API et renvoyées dans la réponse.
        enable_social:
          type: boolean
          default: false
          description: >-
            Si true, recherche également l'empreinte sociale de l'adresse : les
            plateformes d'e-mail, sociales, professionnelles, d'e-commerce et de
            divertissement sur lesquelles elle est enregistrée. Facturé comme
            une unité `email_social` par requête en plus du prix propre à cet
            endpoint.
          example: true
    EmailRiskResponse:
      type: object
      required:
        - request_id
        - status
        - created_at
      properties:
        request_id:
          type: string
          format: uuid
          description: >-
            Identifiant de la session d'API créée pour cette requête.
            Enregistrez-le avec `vendor_data` si vous devez faire correspondre
            le résultat avec des webhooks ultérieurs ou l'activité de la
            console.
        status:
          type: string
          enum:
            - Approved
            - In Review
            - Declined
          description: >-
            Décision finale pour cette session d'API. Habituellement `Approved`
            ; l'évaluation des risques peut donner `In Review` ou `Declined`.
        vendor_data:
          type: string
          nullable: true
          description: >-
            Écho des `vendor_data` que vous avez envoyées, `null` si vous n'en
            avez pas envoyé.
        metadata:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Écho des `metadata` que vous avez envoyées, `null` si vous n'en avez
            pas envoyé.
        created_at:
          type: string
          format: date-time
          description: Horodatage de cette réponse.
        email:
          type: object
          description: >-
            Rapport d'e-mail normalisé, le même bloc que celui utilisé par les
            réponses de Vérification de l'e-mail.
          required:
            - status
            - email
            - is_breached
            - breaches
            - is_disposable
            - is_undeliverable
          properties:
            status:
              type: string
              enum:
                - Approved
                - In Review
                - Declined
              description: >-
                Décision pour cette adresse e-mail. Reflète le `status` de
                premier niveau.
            email:
              type: string
              description: L'adresse notée.
              example: alice@example.com
            is_breached:
              type: boolean
              description: >-
                Indique si l'adresse apparaît dans une fuite connue
                d'identifiants.
            breaches:
              type: array
              description: >-
                Jusqu'aux 5 fuites de données connues les plus récentes
                contenant cette adresse. Tableau vide lorsque `is_breached` vaut
                `false`.
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Identifiant de la violation.
                  domain:
                    type: string
                    description: Domaine du service compromis.
                  breach_date:
                    type: string
                    format: date
                    description: Date à laquelle la violation s'est produite.
                  breach_emails_count:
                    type: integer
                    description: Nombre total de comptes exposés lors de la violation.
                  description:
                    type: string
                    description: >-
                      Description lisible par l'humain de la violation (peut
                      contenir du balisage HTML).
                  logo_path:
                    type: string
                    description: URL du logo du service compromis.
                  data_classes:
                    type: array
                    items:
                      type: string
                    description: >-
                      Catégories de données exposées, en snake_case (par
                      exemple, `email_addresses`, `passwords`).
                  is_verified:
                    type: boolean
                    description: Indique si la légitimité de la fuite a été vérifiée.
            is_disposable:
              type: boolean
              description: >-
                Indique si le domaine appartient à un fournisseur d'adresses
                e-mail temporaires.
            is_undeliverable:
              type: boolean
              description: Indique si l'adresse s'est révélée non distribuable.
            verification_attempts:
              type: integer
              description: >-
                Envois d'OTP pour cette adresse. `0` pour les recherches de
                risque.
            verified_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Date et heure de la dernière vérification de l'adresse par un
                code à usage unique (OTP). `null` pour les recherches de risque.
            warnings:
              type: array
              description: >-
                Avertissements de risque enregistrés pour cette requête. Tableau
                vide lorsqu'il n'y en a aucun.
              items:
                $ref: '#/components/schemas/RiskWarning'
            lifecycle:
              type: array
              description: >-
                Piste d'audit chronologique de la requête. Tableau vide pour les
                recherches de risque sans envois.
              items:
                $ref: '#/components/schemas/RiskLifecycleEvent'
            matches:
              type: array
              description: >-
                Autres sessions de votre application où la même adresse e-mail a
                été utilisée par un utilisateur différent (`vendor_data`
                différent). Jusqu'à 5 entrées. Tableau vide lorsqu'il n'y a
                aucune correspondance.
              items:
                $ref: '#/components/schemas/EmailMatchItem'
            email_intelligence:
              $ref: '#/components/schemas/EmailIntelligence'
            enrichment:
              $ref: '#/components/schemas/EmailIntelligence'
            email_social:
              $ref: '#/components/schemas/EmailSocialFootprint'
    RiskSignals:
      type: object
      description: >-
        Contexte d'appareil et de réseau optionnel observé par votre
        application. Tous les champs sont optionnels. Les renseigner alimente la
        détection de correspondance inter-sessions dans Networks.
      properties:
        ip:
          type: string
          format: ip
          description: Adresse IPv4 ou IPv6 observée pour l'utilisateur final.
          example: 192.0.2.1
        device_id:
          type: string
          maxLength: 255
          description: >-
            Identifiant stable de l'appareil collecté par votre application
            (Android `ANDROID_ID`, iOS `identifierForVendor`).
        device_platform:
          type: string
          enum:
            - android
            - ios
            - ipados
            - tvos
            - web
          description: Plateforme de l'appareil de l'utilisateur final.
        device_model:
          type: string
          maxLength: 255
          description: Modèle d'appareil signalé par votre application.
        os_version:
          type: string
          maxLength: 64
          description: Version du système d'exploitation.
        app_version:
          type: string
          maxLength: 64
          description: Version de votre application.
        user_agent:
          type: string
          maxLength: 512
          description: Agent utilisateur du navigateur ou de l'application.
    RiskWarning:
      type: object
      required:
        - feature
        - risk
        - log_type
        - short_description
        - long_description
      properties:
        feature:
          type: string
          description: Fonctionnalité ayant généré l'avertissement.
        risk:
          type: string
          description: >-
            Code de risque lisible par machine. De nouvelles valeurs peuvent
            être ajoutées au fil du temps.
        additional_data:
          type: object
          nullable: true
          additionalProperties: true
          description: Contexte spécifique au risque, ou `null`.
        log_type:
          type: string
          enum:
            - error
            - warning
            - information
          description: Gravité utilisée par les règles de décision.
        short_description:
          type: string
          description: Résumé en une ligne lisible par l'utilisateur.
        long_description:
          type: string
          description: Explication lisible par l'humain.
    RiskLifecycleEvent:
      type: object
      required:
        - type
        - timestamp
        - details
        - fee
      properties:
        type:
          type: string
          description: >-
            Type d'événement lisible par machine. De nouvelles valeurs peuvent
            être ajoutées au fil du temps.
        timestamp:
          type: string
          format: date-time
          description: Date et heure de l'événement.
        details:
          type: object
          nullable: true
          additionalProperties: true
          description: Payload spécifique à l'événement, ou `null`.
        fee:
          type: number
          description: Montant en USD facturé pour cet événement.
    EmailMatchItem:
      type: object
      description: >-
        Une autre session de votre application qui a utilisé la même adresse
        e-mail avec un `vendor_data` différent.
      properties:
        session_id:
          type: string
          format: uuid
          description: >-
            ID de session de l'autre vérification ayant utilisé cette adresse
            e-mail.
        session_number:
          type: integer
          description: Numéro séquentiel lisible par l'humain de cette session.
        vendor_data:
          type: string
          nullable: true
          description: '`vendor_data` de cette session.'
        verification_date:
          type: string
          description: Date et heure de création de cette session (`YYYY-MM-DDTHH:MM:SSZ`).
        email:
          type: string
          description: L'adresse e-mail correspondante.
        status:
          type: string
          description: >-
            Statut de cette session (par exemple, `Approved`, `Declined`, `In
            Progress`).
        is_blocklisted:
          type: boolean
          description: >-
            Indique si l'adresse e-mail figure sur la liste de blocage de votre
            application.
        api_service:
          type: string
          nullable: true
          description: >-
            Pour les sessions de type API, l'API autonome qui l'a créée ; `null`
            pour les sessions de vérification régulières.
        source:
          type: string
          description: >-
            Emplacement où la correspondance a été trouvée. Généralement
            `session` ; une correspondance avec une liste de blocage via une
            entrée de liste d'organisation utilise `list_entry`.
    EmailIntelligence:
      type: object
      description: >-
        Bloc de renseignements d'e-mail normalisé. Présent uniquement lorsque le
        module complémentaire d'intelligence a été exécuté pour cet e-mail ;
        lorsqu'il est présent, il est également exposé sous l'alias `enrichment`
        avec des valeurs identiques.
      properties:
        score:
          type: number
          nullable: true
          description: >-
            Score de risque normalisé de 0 à 100. Plus la valeur est élevée,
            plus le risque est grand.
        deliverable:
          type: string
          nullable: true
          description: Tranche de délivrabilité (par ex., `high`).
        breach_risk_level:
          type: string
          nullable: true
          description: '`Low`, `Medium` ou `High`.'
        breach_risk_index:
          type: number
          nullable: true
          description: Indice numérique de risque de violation.
        is_recent_breach:
          type: boolean
          nullable: true
          description: >-
            `true` lorsque l'adresse apparaît dans une violation récente de
            données.
        is_frequent_breached:
          type: boolean
          nullable: true
          description: >-
            `true` lorsque l'adresse apparaît dans de nombreuses violations de
            données.
        is_disposable:
          type: boolean
          nullable: true
          description: >-
            `true` lorsque le domaine appartient à un fournisseur d'e-mails
            jetables.
        is_free_domain:
          type: boolean
          nullable: true
          description: >-
            `true` lorsque le domaine provient d'un fournisseur d'e-mails
            gratuit.
        is_breached:
          type: boolean
          nullable: true
          description: >-
            `true` lorsque l'adresse apparaît dans des violations de données
            connues.
        no_of_breaches:
          type: number
          nullable: true
          description: Nombre de violations de données connues contenant l'adresse.
        reason_codes:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: "Identifiant Didit stable du signal, par exemple `IR-5AC67A32`. Opaque\_: utilisez-le pour regrouper et filtrer, ne l'interprétez pas."
              value:
                nullable: true
                description: >-
                  Pour un indicateur de risque (par exemple `voip`, `leaked`,
                  `disposable`, `spam_trap`), sa valeur : un booléen, un niveau
                  ou une date. Null pour un code de motif noté.
              direction:
                type: string
                enum:
                  - risk
                  - trust
                description: >-
                  Indique si le signal a augmenté le risque ou renforcé la
                  confiance.
              message:
                type: string
                description: Explication lisible par l'humain du signal, en anglais.
              impact_level:
                type: string
                nullable: true
                description: >-
                  Mesure dans laquelle le signal a influencé le score, par
                  exemple `low`, `medium` ou `high`.
          description: >-
            Signaux expliquant le score, chacun accompagné d'un code Didit
            stable, d'un sens, d'un message et d'un niveau d'impact. De nouveaux
            codes pouvant apparaître au fil du temps, ne rejetez pas les codes
            inconnus.
    EmailSocialFootprint:
      type: object
      nullable: true
      description: "Empreinte sociale de l'adresse e-mail\_: les plateformes en ligne sur lesquelles elle est enregistrée. Présent uniquement lorsque `enable_social` a été défini et que la vérification s'est terminée. Chaque décompte peut être nul lorsqu'aucune donnée n'a été renvoyée pour celui-ci. `profiles_registered: 0` signifie que les plateformes ont été vérifiées et que l'adresse e-mail n'a été trouvée sur aucune d'entre elles - une réponse valide et facturable, ainsi qu'un signal fréquent d'identité synthétique."
      properties:
        profiles_registered:
          type: integer
          nullable: true
          description: >-
            Plateformes pour lesquelles l'inscription de l'adresse e-mail est
            confirmée.
          example: 5
        profiles_checked:
          type: integer
          nullable: true
          description: Plateformes évaluées pour l'inscription.
          example: 14
        names_found:
          type: integer
          nullable: true
          description: Plateformes ayant renvoyé un nom associé.
          example: 0
        photos_found:
          type: integer
          nullable: true
          description: Plateformes ayant renvoyé une photo de profil.
          example: 0
        communication_breadth:
          type: integer
          nullable: true
          description: >-
            Plateformes de communication sur lesquelles une présence a été
            détectée.
          example: 2
        digital_footprint_diversity:
          type: integer
          nullable: true
          description: Catégories de plateformes distinctes avec une présence détectée.
          example: 5
        digital_sophistication_index:
          type: integer
          nullable: true
          description: Indicateur composite de maturité numérique, de 0 à 10.
          example: 5
        engagement_depth_index:
          type: integer
          nullable: true
          description: Indicateur de richesse du profil, de 0 à 10.
          example: 3
        subscription_affordability_index:
          type: integer
          nullable: true
          description: Mix de plateformes gratuites vs payantes, 0-10.
          example: 2
        free_platforms:
          type: integer
          nullable: true
          description: Inscriptions sur des plateformes gratuites.
          example: 4
        full_paid_platforms:
          type: integer
          nullable: true
          description: Inscriptions sur des plateformes payantes.
          example: 0
        partial_paid_platforms:
          type: integer
          nullable: true
          description: Inscriptions sur des plateformes freemium.
          example: 1
        whatsapp_profile_completeness:
          type: string
          nullable: true
          enum:
            - Basic
            - Partial
            - Complete
            - Not Present
            - null
          description: "Niveau de complétion du profil WhatsApp. Téléphone uniquement\_; null pour l'e-mail."
          example: Partial
        registered_platforms:
          type: array
          description: Plateformes pour lesquelles l'inscription est confirmée.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        not_registered_platforms:
          type: array
          description: Plateformes vérifiées avec un résultat négatif.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        categories:
          type: object
          description: Nombre d'inscrits et ratio par catégorie de plateforme.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintCategorySummary'
        profiles:
          type: object
          description: >-
            Détails du profil par plateforme, indexés par plateforme, lorsque
            celle-ci les expose.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintProfile'
    SocialFootprintPlatform:
      type: object
      properties:
        platform:
          type: string
          description: Identifiant de plateforme.
          example: whatsapp
        category:
          type: string
          description: >-
            Catégorie de plateforme, par ex. MESSAGING, SOCIAL_MEDIA, ECOMMERCE,
            PROFESSIONAL, EMAIL_PROVIDER.
          example: MESSAGING
        scope:
          type: string
          enum:
            - global
            - local
          description: >-
            `global` pour les plateformes mondiales, `local` pour celles
            spécifiques à une région.
          example: global
    SocialFootprintCategorySummary:
      type: object
      properties:
        registered:
          type: integer
          nullable: true
          description: >-
            Plateformes de cette catégorie pour lesquelles l'inscription est
            confirmée.
          example: 2
        ratio:
          type: number
          format: float
          nullable: true
          description: >-
            Part des plateformes vérifiées de la catégorie comportant une
            inscription, de 0.0 à 1.0.
          example: 0.6667
    SocialFootprintProfile:
      type: object
      properties:
        name:
          type: string
          nullable: true
          description: Nom du profil, lorsque la plateforme en fournit un.
        photo:
          type: string
          nullable: true
          description: URL de la photo de profil, lorsque la plateforme en fournit une.
        about:
          type: string
          nullable: true
          description: >-
            Texte de présentation/biographie du profil, lorsque la plateforme en
            fournit un.
        privacy_status:
          type: string
          nullable: true
          enum:
            - PUBLIC
            - PRIVATE
            - null
          description: Visibilité du profil, lorsque la plateforme la fournit.
        business_account:
          type: boolean
          nullable: true
          description: >-
            Indique si le profil est un compte professionnel, lorsque la
            plateforme l'expose.
  responses:
    EmailRiskValidationError:
      description: Échec de la validation de la requête.
      content:
        application/json:
          examples:
            Missing email:
              summary: E-mail manquant
              value:
                email:
                  - This field is required.
            Invalid email:
              summary: E-mail non valide
              value:
                email:
                  - Enter a valid email address.
            Invalid country hint:
              summary: Indication de pays non valide
              value:
                country_code:
                  - Ensure this field has no more than 3 characters.
    RiskPermissionDenied:
      description: >-
        La clé API est manquante ou invalide, ou l'organisation ne peut pas
        couvrir la recherche en direct. Cette API ne renvoie jamais `401`.
      content:
        application/json:
          examples:
            Missing or invalid API key:
              summary: Aucun en-tête `x-api-key`, ou la clé est non valide ou révoquée
              value:
                detail: You do not have permission to perform this action.
            Not enough credits:
              summary: >-
                Le solde de l'organisation ne peut pas couvrir le prix de la
                recherche
              value:
                error: You don't have enough credits to perform this request.
    RateLimitedWrite:
      description: >-
        La limite d'écriture partagée de 300 requêtes par minute et par clé API
        a été dépassée. Respectez l'en-tête `Retry-After` avant de réessayer.
      content:
        application/json:
          schema:
            type: object
            required:
              - detail
            properties:
              detail:
                type: string
          example:
            detail: >-
              Write request rate limit exceeded. You can make up to 300 requests
              per minute.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.