> ## 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の電話番号リスクAPIは、OTPを送信せずに電話番号のリスクをスコアリングします。通信事業者、回線種別、番号ポータビリティ、使い捨て番号、不正シグナルをサーバー間の1回の呼び出しで取得できます。

`POST /v3/phone/risk/`は、OTPフローの前に、OTPフローの代わりに、またはOTPフローとは別に電話番号のインテリジェンスが必要な場合に使用します。

ユーザーにコードは送信しません。APIセッションを作成して電話番号情報を拡充し、電話番号リスクのルールを適用したうえで、電話番号検証で使われるものと同じ正規化された電話番号ブロックを1回の同期レスポンスで返します。

リクエストが保存されると、Diditはスコアリングされた電話番号を**Networks**の集約されたエビデンスとしても利用できます。ネットワークグラフには、共有されている電話番号シグナルについて、高リスクの電話番号インテリジェンス、番号ポータビリティ、回線種別のコンテキストが表示されることがあります。ただし、生の電話番号が他の組織に開示されることはありません。

## レスポンスの解釈

* `status`はこのAPIセッションの最終判定です。通常は`Approved`ですが、リスク評価によって`In Review`または`Declined`になることもあります。
* `phone.full_number`はE.164形式に正規化された番号です。`phone.phone_number_prefix`と`phone.phone_number`は、この番号を国際プレフィックスと国内番号に分割したものです。
* `phone.is_disposable`と`phone.is_virtual`は、アプリケーションのロジックで使える安定したyes/noシグナルです。通信事業者の照会により、`carrier.name`と`carrier.type`（`mobile`、`voip`など）が追加されます。
* `phone.phone_intelligence.score`は0～100のリスクスケールで、数値が高いほどリスクが高いことを示します。`phone_type_risk`（`Low`、`Medium`、`High`）と`phone_trust_index`（スコアを反転した値）は、このスコアから派生した指標です。
* `phone.phone_intelligence`と`phone.enrichment`は、同じ正規化オブジェクトを指す互換性のためのエイリアスです。新しい連携では`phone.enrichment`を参照できます。
* `phone.matches`には、同じ番号が別のユーザーによって使われた、自社アプリケーションの他のセッションが一覧表示されます。重複アカウントの検出に使用してください。
* `request_id`はAPIセッションIDです。後続のWebhookやコンソール上のアクティビティと結果を照合する必要がある場合は、`vendor_data`とともに保存してください。

> [!WARNING]
>
> `phone.phone_intelligence`と`phone.enrichment`はベストエフォートのフィールドです。照会が完了しても、その番号、国、またはプランについて利用可能なインテリジェンスデータが返されなかった場合は、両方とも省略されることがあります。ルールはまず安定した正規化フィールドに基づいて構築し、インテリジェンスが欠けている場合は「安全」ではなく「不明」として扱ってください。

## ソーシャルフットプリントアドオン

`enable_social`を`true`に設定すると、レスポンスの`phone`の下に`phone_social`ブロックが追加されます。このブロックには、この電話番号が登録されているオンラインプラットフォームがカテゴリ別に含まれ、集計値と、データパートナーが返すプロフィールの詳細も含まれます。

* `phone.phone_social.profiles_registered`と`phone.phone_social.profiles_checked`は主要な数値で、評価したプラットフォームのうち、電話番号の登録が確認されたプラットフォームの数を示します。
* `phone.phone_social.registered_platforms`と`phone.phone_social.not_registered_platforms`は、各プラットフォームをその`category`と`scope`（`global`、または地域限定のプラットフォームの場合は`local`）とともに一覧表示します。
* `phone.phone_social.categories`はカテゴリごとの登録数と比率を示します。`phone.phone_social.profiles`には、プラットフォームから提供される場合に、プラットフォームごとのプロフィールの詳細（名前、写真のURL、自己紹介文、プライバシー設定、ビジネスアカウントのフラグ）が含まれます。
* 集計指標（`digital_footprint_diversity`、`digital_sophistication_index`、`engagement_depth_index`、`subscription_affordability_index`）は0～10の複合指標です。チェックでデータが返されなかった項目については、どの数値も`null`になる場合があります。

`profiles_registered: 0`は失敗ではなく、実際の結果です。プラットフォームのチェックは行われたものの、どのプラットフォームでもその電話番号が見つからなかったことを意味し、合成IDによく見られるシグナルです。このエンドポイント自体は、この結果に基づいてアクションを実行しません。レビューまたは却下の判定につなげるには、ワークフローで`phone_no_social_presence_action`を使用してください。

このブロックは、`enable_social`が設定されていない場合に加え、ソーシャルチェックを完了できなかった場合にも含まれません。後者の場合は請求されません。

## サンドボックスでの動作

サンドボックスキーはリクエストを検証し、決定論的な承認済みデータを返します。OTPの送信、クレジットの消費、セッションの作成、ネットワークへの寄与は行いません。`enable_social`を設定した場合は、決定論的な`phone_social`ブロックも返します。

## 請求

Phone Risk APIの呼び出しは定価で\$0.04です。OTPを送信しないため、完全な電話番号検証より安価です。本番環境のリクエストは、一部のベストエフォートのフィールドが利用できない場合でも、照会が開始された時点で課金対象となります。

ソーシャルフットプリントアドオンは別途請求されます。チェックが完了するたびに、Phone Risk APIの料金に加えて、リクエスト1件につき`phone_social`1単位が請求されます。照会前のクレジットチェックは、両方をカバーします。


## OpenAPI

````yaml ja/openapi-25.json POST /v3/phone/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/phone/risk/:
    post:
      tags:
        - Standalone APIs
      summary: 電話番号のリスクをスコアリングする
      description: >-
        OTPを送信せずに電話番号を照会し、通信事業者、回線種別、番号ポータビリティ、使い捨て番号、セッション間の一致、正規化されたリスクインテリジェンスのシグナルを返します。このエンドポイントはAPIセッションを作成し、そのIDを`request_id`として返します。


        **判定。**
        トップレベルの`status`は`phone.status`と同じ値になります。通常は`Approved`ですが、リスク評価の結果、`In
        Review`または`Declined`になる場合があります。


        **互換性のためのエイリアス。**
        本番環境のレスポンスでは、正規化されたインテリジェンスオブジェクトが`phone.phone_intelligence`と`phone.enrichment`の両方で返されます。値は同一です。新規の連携では`phone.enrichment`を参照できます。利用可能なインテリジェンスデータが返されなかった場合、どちらのキーも含まれません。


        **請求。** 本番環境での呼び出しにはPhone Risk
        APIの料金が適用されます。照会が開始された時点でリクエストは課金対象となり、ベストエフォートで取得する一部のフィールドが取得できない場合でも同様です。


        **サンドボックス。**
        サンドボックスキーではリクエストが検証され、OTPの送信、クレジットの消費、セッションの作成、Networksへのデータ提供を行わずに、決定論的な承認済みデータが返されます。


        **認証。**
        アプリケーションのAPIキーを`x-api-key`で送信してください。認証情報がない場合や無効な場合は`403`が返されます。このAPIが`401`を返すことはありません。


        **レート制限。**
        すべてのPOST/PATCH/DELETEエンドポイントで共有される書き込み枠として、APIキーごとに1分あたり300リクエストです。


        **ソーシャルフットプリント。**
        `enable_social`を`true`に設定すると、`phone_social`ブロックが追加されます。このブロックには、この番号が登録されているオンラインプラットフォームが、カテゴリごとの件数と取得可能なプロフィール詳細とともに含まれます。`profiles_registered:
        0`は、プラットフォームを確認した結果、この番号がいずれにも登録されていなかったことを意味し、有効かつ課金対象の回答です。アドオンがリクエストされなかった場合やチェックを完了できなかった場合、このブロックは含まれず、その場合は課金されません。請求では、このエンドポイント自体の料金に加えて、リクエストごとに`phone_social`が1ユニット加算されます。
      operationId: post_v3phone_risk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhoneRiskRequest'
            examples:
              Minimal:
                summary: デフォルト設定で番号をスコアリング
                value:
                  phone_number: '+14155552671'
              Full context:
                summary: シグナル、国のヒント、相関IDを指定してスコアリング
                value:
                  phone_number: '+14155552671'
                  country_code: US
                  signals:
                    ip: 192.0.2.1
                    device_id: 8F0B8FDD-C2CB-4387-B20A-56E9B2E5A0D2
                    device_platform: ios
                    device_model: iPhone17,2
                    os_version: 18.0.1
                    app_version: 1.2.34
                    user_agent: >-
                      Mozilla/5.0 (iPhone; CPU iPhone OS 18_0_1 like Mac OS X)
                      AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0
                      Mobile/15E148 Safari/604.1
                  vendor_data: lead-123
                  metadata:
                    source: signup_prescreen
      responses:
        '200':
          description: リスク評価が完了しました。判定は`status`で確認してください。完了したルックアップでは、HTTPは常に`200`です。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneRiskResponse'
              examples:
                Clean mobile number:
                  summary: インテリジェンスの対象となるクリーンな携帯電話番号
                  value:
                    request_id: 4fd09d2e-9bc9-4c4e-9c46-7f625ac0ab62
                    status: Approved
                    phone:
                      status: Approved
                      phone_number_prefix: '+1'
                      phone_number: '4155552671'
                      full_number: '+14155552671'
                      country_code: US
                      country_name: United States
                      carrier:
                        name: Example Mobile
                        type: mobile
                      is_disposable: false
                      is_virtual: false
                      verification_method: null
                      verification_attempts: 0
                      verified_at: null
                      warnings: []
                      lifecycle: []
                      matches: []
                      phone_intelligence:
                        score: 3
                        phone_type_risk: Low
                        phone_trust_index: 97
                        network_stability_index: 95
                        is_disposable: false
                        is_ported: false
                        is_recently_ported: false
                        carrier_type: mobile
                        reason_codes: []
                      enrichment:
                        score: 3
                        phone_type_risk: Low
                        phone_trust_index: 97
                        network_stability_index: 95
                        is_disposable: false
                        is_ported: false
                        is_recently_ported: false
                        carrier_type: mobile
                        reason_codes: []
                    vendor_data: lead-123
                    metadata:
                      source: signup_prescreen
                    created_at: '2026-09-01T10:30:00.123456+00:00'
                Number in review:
                  summary: レビュー対象としてフラグ付けされた使い捨て番号または仮想番号
                  value:
                    request_id: 8c22e1f0-4b3d-4a3a-9d1e-2f6b7c8d9e0f
                    status: In Review
                    phone:
                      status: In Review
                      phone_number_prefix: '+44'
                      phone_number: '7700900123'
                      full_number: '+447700900123'
                      country_code: GB
                      country_name: United Kingdom
                      carrier:
                        name: Example VoIP
                        type: voip
                      is_disposable: true
                      is_virtual: true
                      verification_method: null
                      verification_attempts: 0
                      verified_at: null
                      warnings: []
                      lifecycle: []
                      matches: []
                      phone_intelligence:
                        score: 72
                        phone_type_risk: High
                        phone_trust_index: 28
                        network_stability_index: 40
                        is_disposable: true
                        is_ported: true
                        is_recently_ported: true
                        carrier_type: voip
                        reason_codes:
                          - code: IR-5AC67A32
                            direction: risk
                            message: Phone type identified as non-mobile
                            impact_level: medium
                      enrichment:
                        score: 72
                        phone_type_risk: High
                        phone_trust_index: 28
                        network_stability_index: 40
                        is_disposable: true
                        is_ported: true
                        is_recently_ported: true
                        carrier_type: voip
                        reason_codes:
                          - code: IR-5AC67A32
                            direction: risk
                            message: Phone type identified as non-mobile
                            impact_level: medium
                    vendor_data: lead-124
                    metadata: null
                    created_at: '2026-09-01T10:30:00.123456+00:00'
        '400':
          $ref: '#/components/responses/PhoneRiskValidationError'
        '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/phone/risk/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "phone_number": "+14155552671",
                "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.phone.assess_risk(
                phone_number="+14155552671",
            )
            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.phone.assessRisk({
              phone_number: "+14155552671",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Phone.AssessRisk(ctx, didit.PhoneRiskRequest{\n\tPhoneNumber: \"+14155552671\",\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.PhoneRiskRequest;

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

            var result = client.phone().assessRisk(PhoneRiskRequest.builder()
                    .phoneNumber("+14155552671")
                    .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->phone->assessRisk([
                'phone_number' => '+14155552671',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.phone.assess_risk(phone_number: "+14155552671")
            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.Phone.AssessRiskAsync(new PhoneRiskRequest
            {
                PhoneNumber = "+14155552671",
            });
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    PhoneRiskRequest:
      type: object
      required:
        - phone_number
      properties:
        phone_number:
          type: string
          maxLength: 20
          description: スコアリング対象の電話番号。検証されたうえでE.164形式に正規化されます。
          example: '+14155552671'
        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の場合、番号のソーシャルフットプリント（その番号が登録されているメッセージング、ソーシャル、EC、ビジネスの各プラットフォーム）も検索します。このエンドポイント自体の料金に加えて、リクエスト1件ごとに`phone_social`1ユニット分が請求されます。
          example: true
    PhoneRiskResponse:
      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: このレスポンスの日時。
        phone:
          type: object
          description: 正規化された電話番号レポート。電話番号検証のレスポンスで使われるものと同じブロックです。
          required:
            - status
          properties:
            status:
              type: string
              enum:
                - Approved
                - In Review
                - Declined
              description: この電話番号の判定。トップレベルの`status`と同じ値です。
            phone_number_prefix:
              type: string
              description: '先頭に`+`を付けた国際電話の国番号(例: `+1`)。'
              example: '+1'
            phone_number:
              type: string
              description: 国番号を除いた国内番号。
              example: '4155552671'
            full_number:
              type: string
              description: E.164形式の完全な番号。
              example: '+14155552671'
            country_code:
              type: string
              nullable: true
              description: 番号の国を示すISO 3166-1 alpha-2コード。
              example: US
            country_name:
              type: string
              description: '`country_code`から導出された国の正式名称。'
              example: United States
            carrier:
              type: object
              nullable: true
              description: 番号を提供している現在のネットワーク。照会で通信事業者を特定できなかった場合は`null`です。
              properties:
                name:
                  type: string
                  description: 通信事業者名。照会で特定できなかった場合は空文字列です。
                type:
                  type: string
                  description: >-
                    ルックアップで報告された回線種別:
                    `mobile`、`fixed_line`、`voip`、`isp`、`vpn`、`toll_free`、`premium_rate`、またはこれらに類する値。
            is_disposable:
              type: boolean
              description: 番号が一時的な番号サービスまたは使い捨て番号サービスに属する場合は`true`です。
            is_virtual:
              type: boolean
              description: 回線種別が仮想（`voip`、`isp`、`vpn`のいずれか）の場合は`true`です。
            verification_method:
              type: string
              nullable: true
              description: 基盤となる認証のOTPチャネルです。コードを送信しないリスク照会では`null`になります。
            verification_attempts:
              type: integer
              description: この番号へのOTP送信回数。リスク照会の場合は`0`です。
            verified_at:
              type: string
              format: date-time
              nullable: true
              description: 番号がOTPで最後に検証された日時。リスク照会では`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/PhoneMatchItem'
            phone_intelligence:
              $ref: '#/components/schemas/PhoneIntelligence'
            enrichment:
              $ref: '#/components/schemas/PhoneIntelligence'
            phone_social:
              $ref: '#/components/schemas/PhoneSocialFootprint'
    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: ブラウザまたはアプリのユーザーエージェント。
    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: 人が読める形式の1行の概要。
        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: イベント固有のペイロード、または`null`です。
        fee:
          type: number
          description: このイベントで請求されたUSD金額。
    PhoneMatchItem:
      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`）。
        phone_number:
          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`が使われます。
    PhoneIntelligence:
      type: object
      description: >-
        正規化された電話番号インテリジェンスブロック。この照会に対してインテリジェンスアドオンが実行された場合にのみ存在します。存在する場合は、同一の値を持つ`enrichment`エイリアスでも公開されます。
      properties:
        score:
          type: number
          nullable: true
          description: 0-100に正規化されたリスクスコア。値が高いほどリスクが高くなります。
        phone_type_risk:
          type: string
          nullable: true
          description: スコアから算出される`Low`、`Medium`、`High`のいずれかです。
        phone_trust_index:
          type: number
          nullable: true
          description: スコアの逆数です。値が高いほど良いことを示すダッシュボード向けです。
        network_stability_index:
          type: number
          nullable: true
          description: 回線のネットワークの安定性。
        is_disposable:
          type: boolean
          nullable: true
          description: 番号が使い捨てまたは仮想番号と見られる場合は`true`です。
        is_ported:
          type: boolean
          nullable: true
          description: 番号の通信事業者が変更されている場合は`true`です。
        is_recently_ported:
          type: boolean
          nullable: true
          description: 番号ポータビリティが最近行われた場合は`true`です。
        carrier_type:
          type: string
          nullable: true
          description: 'ルックアップで報告された回線の分類（例: `mobile`）。'
        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コード、方向、メッセージ、影響度があります。新しいコードが今後追加される可能性があるため、未知のコードを拒否しないでください。
    PhoneSocialFootprint:
      type: object
      nullable: true
      description: >-
        電話番号のソーシャルフットプリント:
        その電話番号が登録されているオンラインプラットフォームです。`enable_social`が設定され、チェックが完了した場合にのみ含まれます。データが返されなかった項目の件数は、いずれもnullになる場合があります。`profiles_registered:
        0`は、プラットフォームがチェックされ、そのいずれにも電話番号が見つからなかったことを意味します。これは有効かつ課金対象の結果であり、合成IDによく見られる兆候です。
      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:
    PhoneRiskValidationError:
      description: リクエストのバリデーションに失敗しました。
      content:
        application/json:
          examples:
            Missing phone number:
              summary: 電話番号がありません
              value:
                phone_number:
                  - This field is required.
            Invalid phone number:
              summary: 電話番号が無効です
              value:
                phone_number:
                  - Invalid phone number provided.
            Invalid signal IP:
              summary: シグナルのIPが無効です
              value:
                signals:
                  ip:
                    - Enter a valid IPv4 or IPv6 address.
    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のDevelopers -> API
        keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

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