> ## 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：送达率与泄露信号

> 无需发送一次性验证码，即可对邮箱地址进行风险评分。一次服务端到服务端调用，即可获取送达率、一次性邮箱域名、泄露与欺诈信号。由 Didit 提供。

当您需要获取邮箱情报，但不希望用户输入一次性验证码时，请使用 `POST /v3/email/risk/`。

它不会发送邮件。它会创建一个 API 会话，丰富该地址的信息，应用您的邮箱风险规则，并在一次同步响应中返回与邮箱验证相同的标准化邮箱数据块。

保存请求后，Didit 还可以将评分后的邮箱作为汇总证据用于 **网络**。网络图谱可能会在共享邮箱信号上显示高风险邮箱情报、数据泄露背景以及社交资料覆盖情况，但不会向其他机构披露原始邮箱地址。

## 解读响应

* `status` 是本次 API 会话的最终决策。通常为 `Approved`（已通过）；风险评估也可能得出 `In Review`（审核中）或 `Declined`（已拒绝）。
* `email.is_breached`、`email.is_disposable` 和 `email.is_undeliverable` 是供应用逻辑使用的稳定是/否信号。
* `email.breaches` 在有覆盖数据时列出包含该地址的最近已知数据泄露记录，包括泄露日期和暴露的数据类别。
* `email.email_intelligence.score` 采用 0-100 的风险评分，数值越高表示风险越高。`breach_risk_level`（`Low`、`Medium`、`High`）和 `no_of_breaches` 是派生视图。
* `email.email_intelligence.reason_codes` 说明哪些标准化信号影响了结果。这些代码的取值可能随时间增加，因此请勿拒绝未知代码。
* `email.email_intelligence` 和 `email.enrichment` 是兼容性别名，指向同一个标准化对象。新集成可以读取 `email.enrichment`。
* `email.matches` 列出您应用中同一地址被其他用户使用的其他会话，可用于重复账户检测。
* `request_id` 即 API 会话 ID。如需将结果与后续 Webhook 或控制台活动关联，请将其与 `vendor_data` 一同存储。

> [!WARNING]
>
> `email.email_intelligence` 和 `email.enrichment` 属于尽力返回的字段。当该地址、域名或套餐没有可用的情报数据时，即使查询已完成，这两个字段也可能缺失。请优先基于 `is_breached`、`is_disposable` 和 `is_undeliverable` 构建规则，并将缺失的情报视为"未知"，而非"安全"。

## 社交足迹附加功能

将 `enable_social` 设为 `true`，即可在 `email` 下的响应中添加 `email_social` 数据块。该数据块列出此邮箱地址注册过的在线平台，按类别分组，并附带汇总计数，以及数据合作伙伴返回的任何资料详情。

* `email.email_social.profiles_registered` 和 `email.email_social.profiles_checked` 是核心数字：前者是已确认注册该邮箱的平台数，后者是所评估的平台总数。
* `email.email_social.registered_platforms` 和 `email.email_social.not_registered_platforms` 分别列出每个平台及其 `category` 和 `scope`（`global` 表示全球平台，`local` 表示特定地区的平台）。
* `email.email_social.categories` 给出每个类别的注册数量和比例。当平台提供资料时，`email.email_social.profiles` 会包含每个平台的资料详情（名称、头像 URL、简介文本、隐私状态以及是否为企业账户）。
* 汇总指数（`digital_footprint_diversity`、`digital_sophistication_index`、`engagement_depth_index`、`subscription_affordability_index`）是 0-10 的综合评分。当检查未返回相应数据时，任何计数都可能为 `null`。

`profiles_registered: 0` 是一个真实结果，而不是失败：平台已经过检查，但该邮箱地址未在任何平台上找到，这是常见的合成身份信号。此接口本身不会据此采取行动。如需将其转化为审核或拒绝判定，请在工作流中使用 `email_no_social_presence_action`。

未设置 `enable_social` 时，响应中不会包含该数据块；社交检查无法完成时同样不会返回，且此时不计费。

## 沙盒行为

沙盒密钥会验证请求，并返回确定性的已通过数据。它们不会发送邮件、消耗额度、创建会话，也不会向**网络**贡献数据。设置 `enable_social` 后，沙盒还会返回确定性的 `email_social` 数据块。

## 计费

Email Risk API 调用的标价为 \$0.04。由于不发送邮件，其费用低于完整的邮箱验证。一次真实请求在查询开始后即计费，即使部分尽力返回的字段不可用也不例外。

社交足迹附加功能单独计费：每次请求在 Email Risk API 价格之外，额外收取一个 `email_social` 单位，前提是检查已完成。查询前的额度检查同时覆盖这两项费用。


## OpenAPI

````yaml zh/openapi-25.json POST /v3/email/risk/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 身份证件验证 API。使用 x-api-key 请求头进行身份验证。
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/email/risk/:
    post:
      tags:
        - Standalone APIs
      summary: 对邮箱地址进行风险评分
      description: >-
        返回送达率、一次性地址、数据泄露、跨会话匹配以及标准化的风险情报信号，而无需发送 OTP。该 endpoint 会创建一个 API 会话，并将其
        ID 作为 `request_id` 返回。


        **决策。** 顶层 `status` 与 `email.status` 保持一致。通常为 `Approved`；风险评估可能会产生 `In
        Review` 或 `Declined`。


        **兼容性别名。** 生产环境响应将标准化的情报对象同时作为 `email.email_intelligence` 和
        `email.enrichment` 暴露。两者的值完全相同。新的集成可以直接读取
        `email.enrichment`。当未返回可用的情报数据时，这两个键均不存在。


        **计费。** 生产环境调用按 Email Risk API 定价计费。一旦查询开始，该请求即计费，即使某些尽力而为的字段不可用也是如此。


        **沙盒。** 沙盒密钥会验证请求并返回确定性的已通过数据，不会发送电子邮件、消耗额度、创建会话或向 Networks 提供数据。


        **认证。** 在 `x-api-key` 中发送您应用的 API 密钥。缺失或无效的凭据将返回 `403`，该 API 从不返回 `401`。


        **速率限制。** 每个 API 密钥在所有 POST/PATCH/DELETE endpoint 之间共享每分钟 300
        次请求的写入配额（交易创建和事件摄入拥有单独的 600 次配额）。


        **社交足迹。** 将 `enable_social` 设置为 `true` 以添加 `email_social`
        块：该地址注册过的在线平台、各类别数量以及任何可用的个人资料详情。`profiles_registered: 0`
        表示已检查这些平台且未在其中找到该地址，这是有效且计费的响应。如果未请求该附加功能或无法完成检查，则该块不存在，并且在那种情况下不计费。计费会在该
        endpoint 自身价格的基础上，按每次请求增加一个 `email_social` 单位。
      operationId: post_v3email_risk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailRiskRequest'
            examples:
              Minimal:
                summary: 使用默认值对地址评分
                value:
                  email: alice@example.com
              Full context:
                summary: 附带信号、国家/地区提示和关联 ID 的评分
                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: 风险评估已完成。检查 `status` 获取决策；对于已完成的查询，HTTP 状态码始终为 `200`。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailRiskResponse'
              examples:
                Clean address:
                  summary: 可送达且无数据泄露风险的地址
                  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: 在已知数据泄露事件中发现该地址
                  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: 要进行评分的邮箱地址。
          example: alice@example.com
        country_code:
          type: string
          maxLength: 3
          description: 用于情报覆盖范围的可选 ISO 3166-1 alpha-2 或 alpha-3 国家/地区提示。
          example: US
        signals:
          $ref: '#/components/schemas/RiskSignals'
        vendor_data:
          type: string
          description: 您为此请求提供的稳定引用。存储在 API 会话中并在响应中返回。
        metadata:
          type: object
          nullable: true
          additionalProperties: true
          description: 您的非敏感 JSON 元数据。存储在 API 会话中并在响应中原样返回。
        enable_social:
          type: boolean
          default: false
          description: >-
            为 true 时，还会查找该地址的社交足迹，即其注册所在的邮箱、社交、职业、电子商务和娱乐平台。除此 endpoint
            本身的价格外，每次请求按一个 `email_social` 单位计费。
          example: true
    EmailRiskResponse:
      type: object
      required:
        - request_id
        - status
        - created_at
      properties:
        request_id:
          type: string
          format: uuid
          description: >-
            为此请求创建的 API 会话 ID。如果您需要将结果与后续的 Webhook 或控制台活动关联，请将其与 `vendor_data`
            一同存储。
        status:
          type: string
          enum:
            - Approved
            - In Review
            - Declined
          description: 此 API 会话的最终决策。通常为 `Approved`；风险评估可能会产生 `In Review` 或 `Declined`。
        vendor_data:
          type: string
          nullable: true
          description: 您发送的 `vendor_data` 回显，若未发送则为 `null`。
        metadata:
          type: object
          nullable: true
          additionalProperties: true
          description: 您发送的 `metadata` 回显，若未发送则为 `null`。
        created_at:
          type: string
          format: date-time
          description: 此响应的时间戳。
        email:
          type: object
          description: 归一化的邮箱报告，与邮箱验证响应所使用的区块相同。
          required:
            - status
            - email
            - is_breached
            - breaches
            - is_disposable
            - is_undeliverable
          properties:
            status:
              type: string
              enum:
                - Approved
                - In Review
                - Declined
              description: 针对此邮箱地址的决策。对应顶级的 `status`。
            email:
              type: string
              description: 已评分的地址。
              example: alice@example.com
            is_breached:
              type: boolean
              description: 该地址是否出现在已知的凭据泄露事件中。
            breaches:
              type: array
              description: 包含此地址的最多 5 次最近已知数据泄露事件。当 `is_breached` 为 `false` 时为空数组。
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: 数据泄露标识符。
                  domain:
                    type: string
                    description: 发生泄露的服务的域名。
                  breach_date:
                    type: string
                    format: date
                    description: 违规行为发生的日期。
                  breach_emails_count:
                    type: integer
                    description: 泄露事件中暴露的账户总数。
                  description:
                    type: string
                    description: 便于人类阅读的泄露事件描述（可能包含 HTML 标记）。
                  logo_path:
                    type: string
                    description: 发生数据泄露的服务徽标 URL。
                  data_classes:
                    type: array
                    items:
                      type: string
                    description: >-
                      泄露的数据类别，采用 snake_case 格式（例如
                      `email_addresses`、`passwords`）。
                  is_verified:
                    type: boolean
                    description: 该泄露事件是否已被核实为真实存在。
            is_disposable:
              type: boolean
              description: 该域名是否属于一次性邮箱提供商。
            is_undeliverable:
              type: boolean
              description: 该地址是否被判定为无法投递。
            verification_attempts:
              type: integer
              description: 此地址的一次性验证码发送次数。风险查询为 `0`。
            verified_at:
              type: string
              format: date-time
              nullable: true
              description: 该地址上次通过一次性验证码验证的时间。对于风险查询为 `null`。
            warnings:
              type: array
              description: 为此请求记录的风险警告。无任何警告时为空数组。
              items:
                $ref: '#/components/schemas/RiskWarning'
            lifecycle:
              type: array
              description: 请求的时间顺序审计记录。对于没有发送操作的风险查询，此项为空数组。
              items:
                $ref: '#/components/schemas/RiskLifecycleEvent'
            matches:
              type: array
              description: 您应用中由不同用户（不同 `vendor_data`）使用相同邮箱地址的其他会话。最多 5 条记录。无匹配项时为空数组。
              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: 您的应用所观测到的可选设备和网络上下文。所有字段均为可选。传入这些字段有助于为 Networks 中的跨会话匹配检测提供数据。
      properties:
        ip:
          type: string
          format: ip
          description: 观察到的终端用户的 IPv4 或 IPv6 地址。
          example: 192.0.2.1
        device_id:
          type: string
          maxLength: 255
          description: 应用收集的稳定设备标识符（Android 为 `ANDROID_ID`，iOS 为 `identifierForVendor`）。
        device_platform:
          type: string
          enum:
            - android
            - ios
            - ipados
            - tvos
            - web
          description: 终端用户设备的平台。
        device_model:
          type: string
          maxLength: 255
          description: 您的应用报告的设备型号。
        os_version:
          type: string
          maxLength: 64
          description: 操作系统版本。
        app_version:
          type: string
          maxLength: 64
          description: 您的应用版本。
        user_agent:
          type: string
          maxLength: 512
          description: 浏览器或应用的 user agent。
    RiskWarning:
      type: object
      required:
        - feature
        - risk
        - log_type
        - short_description
        - long_description
      properties:
        feature:
          type: string
          description: 产生该警告的功能。
        risk:
          type: string
          description: 机器可读的风险代码。后续可能会随着时间推移添加新值。
        additional_data:
          type: object
          nullable: true
          additionalProperties: true
          description: 特定风险的上下文，或 `null`。
        log_type:
          type: string
          enum:
            - error
            - warning
            - information
          description: 决策规则所使用的严重程度。
        short_description:
          type: string
          description: 易于阅读的单行摘要。
        long_description:
          type: string
          description: 便于人类阅读的说明。
    RiskLifecycleEvent:
      type: object
      required:
        - type
        - timestamp
        - details
        - fee
      properties:
        type:
          type: string
          description: 机器可读的事件类型。新值可能会随着时间推移而添加。
        timestamp:
          type: string
          format: date-time
          description: 事件发生的时间。
        details:
          type: object
          nullable: true
          additionalProperties: true
          description: 特定事件的 payload，或为 `null`。
        fee:
          type: number
          description: 此事件计费的美元金额。
    EmailMatchItem:
      type: object
      description: 您应用中使用了相同邮箱地址但具有不同 `vendor_data` 的另一个会话。
      properties:
        session_id:
          type: string
          format: uuid
          description: 使用此邮箱地址的另一个验证的会话 id。
        session_number:
          type: integer
          description: 该会话便于人类阅读的序号。
        vendor_data:
          type: string
          nullable: true
          description: 该会话的 `vendor_data`。
        verification_date:
          type: string
          description: 该会话的创建时间（`YYYY-MM-DDTHH:MM:SSZ`）。
        email:
          type: string
          description: 匹配的邮箱地址。
        status:
          type: string
          description: 该会话的状态（例如 `Approved`、`Declined`、`In Progress`）。
        is_blocklisted:
          type: boolean
          description: 该邮箱地址是否在您应用的黑名单中。
        api_service:
          type: string
          nullable: true
          description: 对于 API 类型的会话，为创建该会话的独立 API；对于常规验证会话为 `null`。
        source:
          type: string
          description: 发现匹配的位置。通常为 `session`；通过组织名单条目命中的黑名单使用 `list_entry`。
    EmailIntelligence:
      type: object
      description: 归一化的邮箱情报区块。仅在该邮箱运行了情报附加组件时存在；存在时还会以相同值的 `enrichment` 别名提供。
      properties:
        score:
          type: number
          nullable: true
          description: 归一化的 0-100 风险评分。分值越高风险越大。
        deliverable:
          type: string
          nullable: true
          description: 可投递性等级（例如 `high`）。
        breach_risk_level:
          type: string
          nullable: true
          description: '`Low`、`Medium` 或 `High`。'
        breach_risk_index:
          type: number
          nullable: true
          description: 泄露风险数值指数。
        is_recent_breach:
          type: boolean
          nullable: true
          description: 当该地址出现在近期泄露事件中时为 `true`。
        is_frequent_breached:
          type: boolean
          nullable: true
          description: 当该地址出现在多次泄露事件中时为 `true`。
        is_disposable:
          type: boolean
          nullable: true
          description: 当域名属于一次性邮箱服务商时为 `true`。
        is_free_domain:
          type: boolean
          nullable: true
          description: 当域名属于免费邮箱服务商时为 `true`。
        is_breached:
          type: boolean
          nullable: true
          description: 当该地址出现在已知泄露事件中时为 `true`。
        no_of_breaches:
          type: number
          nullable: true
          description: 包含该地址的已知泄露事件数量。
        reason_codes:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: 信号的稳定 Didit 标识符，例如 `IR-5AC67A32`。不透明标识：可据此分组和过滤，请勿解析其内容。
              value:
                nullable: true
                description: >-
                  对于风险标记（例如
                  `voip`、`leaked`、`disposable`、`spam_trap`），为其对应的值：布尔值、等级或日期。对于计分原因代码则为
                  null。
              direction:
                type: string
                enum:
                  - risk
                  - trust
                description: 该信号是增加了风险还是提升了信任度。
              message:
                type: string
                description: 信号的便于人类阅读的说明（英文）。
              impact_level:
                type: string
                nullable: true
                description: 该信号对评分的影响强度，例如 `low`、`medium` 或 `high`。
          description: >-
            解释评分的信号，每个信号包含一个固定的 Didit
            代码、一个方向、一条消息和一个影响级别。新代码可能会随着时间推移而出现，因此请勿拒绝未知代码。
    EmailSocialFootprint:
      type: object
      nullable: true
      description: >-
        邮箱地址的社交足迹：其注册的在线平台。仅当设置了 `enable_social` 且检查完成时才会出现。若未返回对应数据，各计数项可能为
        null。`profiles_registered: 0`
        表示已检查相关平台且未在任何平台上发现该邮箱地址，这是一个有效的计费结果，也是合成身份的常见信号。
      properties:
        profiles_registered:
          type: integer
          nullable: true
          description: 已确认该邮箱地址已注册的平台。
          example: 5
        profiles_checked:
          type: integer
          nullable: true
          description: 已评估注册情况的平台。
          example: 14
        names_found:
          type: integer
          nullable: true
          description: 返回了关联姓名的平台。
          example: 0
        photos_found:
          type: integer
          nullable: true
          description: 返回了个人资料头像的平台。
          example: 0
        communication_breadth:
          type: integer
          nullable: true
          description: 检测到存在活动的通信平台。
          example: 2
        digital_footprint_diversity:
          type: integer
          nullable: true
          description: 检测到存在记录的不同平台类别。
          example: 5
        digital_sophistication_index:
          type: integer
          nullable: true
          description: 综合数字成熟度指标，0-10。
          example: 5
        engagement_depth_index:
          type: integer
          nullable: true
          description: 个人资料丰富度指标，0-10。
          example: 3
        subscription_affordability_index:
          type: integer
          nullable: true
          description: 免费与付费平台混合比例，0-10。
          example: 2
        free_platforms:
          type: integer
          nullable: true
          description: 在免费平台上的注册数。
          example: 4
        full_paid_platforms:
          type: integer
          nullable: true
          description: 在完全付费平台上的注册数。
          example: 0
        partial_paid_platforms:
          type: integer
          nullable: true
          description: 在免费增值平台上的注册数。
          example: 1
        whatsapp_profile_completeness:
          type: string
          nullable: true
          enum:
            - Basic
            - Partial
            - Complete
            - Not Present
            - null
          description: WhatsApp 资料的完整性。仅限电话；邮箱为 null。
          example: Partial
        registered_platforms:
          type: array
          description: 已确认注册的平台。
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        not_registered_platforms:
          type: array
          description: 检查结果为阴性的平台。
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        categories:
          type: object
          description: 每个平台类别的注册数量和比例。
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintCategorySummary'
        profiles:
          type: object
          description: 各平台个人资料详情，以平台为键（在平台公开这些信息时返回）。
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintProfile'
    SocialFootprintPlatform:
      type: object
      properties:
        platform:
          type: string
          description: 平台标识符。
          example: whatsapp
        category:
          type: string
          description: >-
            平台类别，例如
            MESSAGING、SOCIAL_MEDIA、ECOMMERCE、PROFESSIONAL、EMAIL_PROVIDER。
          example: MESSAGING
        scope:
          type: string
          enum:
            - global
            - local
          description: 全球平台为 `global`，特定区域平台为 `local`。
          example: global
    SocialFootprintCategorySummary:
      type: object
      properties:
        registered:
          type: integer
          nullable: true
          description: 该类别中已确认注册的平台。
          example: 2
        ratio:
          type: number
          format: float
          nullable: true
          description: 该类别已检查平台中已注册的比例，0.0-1.0。
          example: 0.6667
    SocialFootprintProfile:
      type: object
      properties:
        name:
          type: string
          nullable: true
          description: 个人资料名称（若平台公开）。
        photo:
          type: string
          nullable: true
          description: 个人资料照片 URL（若平台公开）。
        about:
          type: string
          nullable: true
          description: 个人资料简介/生平文本（若平台公开）。
        privacy_status:
          type: string
          nullable: true
          enum:
            - PUBLIC
            - PRIVATE
            - null
          description: 个人资料公开范围（若平台公开）。
        business_account:
          type: boolean
          nullable: true
          description: 该资料是否为企业账户（若平台提供该信息）。
  responses:
    EmailRiskValidationError:
      description: 请求验证失败。
      content:
        application/json:
          examples:
            Missing email:
              summary: 缺少邮箱
              value:
                email:
                  - This field is required.
            Invalid email:
              summary: 无效的邮箱
              value:
                email:
                  - Enter a valid email address.
            Invalid country hint:
              summary: 无效的国家/地区提示
              value:
                country_code:
                  - Ensure this field has no more than 3 characters.
    RiskPermissionDenied:
      description: API 密钥缺失或无效，或者组织无法支付实时查询费用。此 API 从不返回 `401`。
      content:
        application/json:
          examples:
            Missing or invalid API key:
              summary: 缺少 `x-api-key` 请求头，或者密钥无效或已被吊销
              value:
                detail: You do not have permission to perform this action.
            Not enough credits:
              summary: 组织余额不足以支付查询价格
              value:
                error: You don't have enough credits to perform this request.
    RateLimitedWrite:
      description: 已超出每个 API 密钥每分钟 300 次请求的共享写入限制。在重试之前请遵循 `Retry-After`。
      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: >-
        您的应用 API 密钥，可在 Business Console 的“开发者 -> API
        密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域：针对每个资源设为无权限、只读或读写，限定于特定工作流或已通过的会话、限定于
        IP 地址列表，以及设置到期日期。401 表示密钥错误、已撤销或已过期；403 表示未发送密钥、密钥无权访问该资源或操作，或请求来自其 IP
        列表之外的地址；在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF
        URL 将为 null；没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅
        https://docs.didit.me/console/api-keys。

````

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