> ## 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.

# Webhookの送信先アナリティクスAPI

> DiditのWebhookの送信先1件について、配信総数、失敗率、レスポンス時間を、全体とUTC日別で任意の期間について取得できます。



Webhookの送信先アナリティクス取得APIプロンプト
        プロンプトをクリップボードにコピー



      
      

\<pre>

\`Read delivery statistics for one Didit webhook destination through the Management API.

Endpoint:
GET https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs webhooks: read.

Goal:
\- Measure how reliably and how fast my endpoint accepts webhooks, to alert on failures or chart delivery health.

Path parameter:
\- destination_uuid: the destination uuid from GET /v3/webhook/destinations/.

Query parameters (optional):
\- date_from, date_to: UTC days as YYYY-MM-DD, both inclusive. Without them, every delivery of the destination is included. Delivery records are available for about 30 days, so no range reaches further back.

Behavior:
\- summary: total_deliveries, failed_deliveries, error_rate_percentage (whole number, 0 when there are no deliveries), min_response_time_ms, avg_response_time_ms, max_response_time_ms (null when there is no data). A delivery not attempted yet counts in total_deliveries, never in failed_deliveries, and has no response time.
\- points: one entry per UTC day that had deliveries, oldest first, with the same counters plus date. Days without deliveries are omitted, so fill the gaps with zeros when you chart them.
\- Every attempt counts: the first send of an event, each automatic retry and each resend.
\- Failed means HTTP 400 or above. A timeout is recorded as 504 and a connection failure as 503, so both count as failed.

Example call:
curl -X GET "https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/analytics/?date_from=2026-05-01&date_to=2026-05-31" \
-H "x-api-key: YOUR_API_KEY"

Failure modes:
\- 400: { "date_from": ["Date has wrong format. Use one of these formats instead: YYYY-MM-DD."] } or { "date_to": ["date_to must be greater than or equal to date_from."] }
\- 401: { "detail": "This API key has expired." }
\- 403: { "detail": "You do not have permission to perform this action." } or { "detail": "This API key has no read access to webhooks." }
\- 404: { "detail": "Webhook destination not found." }
\- 429: more than 600 GET requests per minute with this key; wait for Retry-After.

Side effects: none. This is a pure read.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

貼り付け先

このエンドポイントを使うと、任意の期間における送信先の状況を確認できます。失敗の原因となった個々の試行を確認するには、[Webhookの送信先の配信一覧取得](https://docs.didit.me/ja/management-api/webhook/list-deliveries.md)で一覧を取得し、[Webhookの送信先の配信取得](https://docs.didit.me/ja/management-api/webhook/get-delivery.md)で個別に開いてください。Diditが自動的に再試行するレスポンスについては、[再試行ポリシー](https://docs.didit.me/ja/integration/webhooks.md#再試行ポリシー)で説明しています。


## OpenAPI

````yaml ja/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/analytics/
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/webhook/destinations/{destination_uuid}/analytics/:
    get:
      tags:
        - Webhook
      summary: Webhookの送信先の分析を取得
      description: >-
        1つのWebhookの送信先について、期間全体（`summary`）およびUTC日ごと（`points`）の配信合計、失敗率、応答時間。すべての試行が配信としてカウントされます。イベントの初回送信、各自動[再試行](https://docs.didit.me/ja/integration/webhooks#再試行ポリシー)、各再送信が含まれます。記録されたHTTPステータスが400以上の場合、配信は失敗とみなされるため、タイムアウト（`504`として記録）と接続失敗（`503`）も失敗としてカウントされます。キューに残っている配信は`total_deliveries`にのみカウントされます。配信記録は約30日間利用できます。スコープ付きAPIキーには`webhooks:
        read`が必要です。
      operationId: get_webhook_destination_analytics
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: 送信先のUUID (`GET /v3/webhook/destinations/`が返す`uuid`) です。
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
        - name: date_from
          in: query
          required: false
          description: >-
            対象に含める最初のUTC日を`YYYY-MM-DD`形式で指定します（この日を含みます）。省略すると、利用可能な最も古い配信から開始します。エイリアスとして`dateFrom`も使用できます。
          schema:
            type: string
            format: date
          example: '2026-10-01'
        - name: date_to
          in: query
          required: false
          description: >-
            対象に含める最終日(UTC)。`YYYY-MM-DD`形式で指定します(当日を含む)。`date_from`より前の日付は指定できません。`dateTo`もエイリアスとして受け付けます。
          schema:
            type: string
            format: date
          example: '2026-10-16'
      responses:
        '200':
          description: 送信先の配信統計。
          content:
            application/json:
              schema:
                type: object
                required:
                  - summary
                  - points
                properties:
                  summary:
                    type: object
                    description: リクエストした期間全体の合計。
                    required:
                      - total_deliveries
                      - failed_deliveries
                      - min_response_time_ms
                      - avg_response_time_ms
                      - max_response_time_ms
                      - error_rate_percentage
                    properties:
                      total_deliveries:
                        type: integer
                        minimum: 0
                        description: キューに入っているものを含む配信試行。
                      failed_deliveries:
                        type: integer
                        minimum: 0
                        description: 記録されたHTTPステータスが400以上の試行。
                      min_response_time_ms:
                        type: integer
                        nullable: true
                        description: 最速の試行時間（ミリ秒）。時間が記録された試行がない場合は`null`です。
                      avg_response_time_ms:
                        type: integer
                        nullable: true
                        description: 試行時間の平均値（ミリ秒、四捨五入）です。時間が記録された試行がない場合は`null`です。
                      max_response_time_ms:
                        type: integer
                        nullable: true
                        description: 最も遅い試行の時間(ミリ秒)。時間が記録された試行がない場合は`null`です。
                      error_rate_percentage:
                        type: integer
                        minimum: 0
                        maximum: 100
                        description: >-
                          `failed_deliveries` / `total_deliveries` x
                          100を整数に丸めた値。配信がない場合は`0`。
                  points:
                    type: array
                    description: >-
                      配信があったUTC日ごとに1エントリーで、古い順に並びます。配信のない日は省略されるため、グラフ化する際は欠けている日をゼロで埋めてください。
                    items:
                      type: object
                      required:
                        - date
                        - total_deliveries
                        - failed_deliveries
                        - min_response_time_ms
                        - avg_response_time_ms
                        - max_response_time_ms
                      properties:
                        date:
                          type: string
                          format: date
                          description: UTCの日付(`YYYY-MM-DD`)。
                        total_deliveries:
                          type: integer
                          minimum: 0
                          description: キューに入っているものを含む配信試行。
                        failed_deliveries:
                          type: integer
                          minimum: 0
                          description: 記録されたHTTPステータスが400以上の試行。
                        min_response_time_ms:
                          type: integer
                          nullable: true
                          description: 最速の試行時間（ミリ秒）。時間が記録された試行がない場合は`null`です。
                        avg_response_time_ms:
                          type: integer
                          nullable: true
                          description: 試行時間の平均値（ミリ秒、四捨五入）です。時間が記録された試行がない場合は`null`です。
                        max_response_time_ms:
                          type: integer
                          nullable: true
                          description: 最も遅い試行の時間(ミリ秒)。時間が記録された試行がない場合は`null`です。
              examples:
                Three days of deliveries:
                  value:
                    summary:
                      total_deliveries: 1250
                      failed_deliveries: 12
                      min_response_time_ms: 38
                      avg_response_time_ms: 164
                      max_response_time_ms: 5004
                      error_rate_percentage: 1
                    points:
                      - date: '2026-10-14'
                        total_deliveries: 410
                        failed_deliveries: 0
                        min_response_time_ms: 38
                        avg_response_time_ms: 152
                        max_response_time_ms: 911
                      - date: '2026-10-15'
                        total_deliveries: 395
                        failed_deliveries: 12
                        min_response_time_ms: 41
                        avg_response_time_ms: 190
                        max_response_time_ms: 5004
                      - date: '2026-10-16'
                        total_deliveries: 445
                        failed_deliveries: 0
                        min_response_time_ms: 40
                        avg_response_time_ms: 151
                        max_response_time_ms: 1220
                No deliveries in range:
                  value:
                    summary:
                      total_deliveries: 0
                      failed_deliveries: 0
                      min_response_time_ms: null
                      avg_response_time_ms: null
                      max_response_time_ms: null
                      error_rate_percentage: 0
                    points: []
        '400':
          description: >-
            `date_from`または`date_to`が`YYYY-MM-DD`形式の日付ではないか、`date_to`が`date_from`より前です。
          content:
            application/json:
              schema:
                type: object
                description: 無効な各フィールドと、それに対応するメッセージのリスト。
                additionalProperties:
                  type: array
                  items:
                    type: string
              examples:
                Malformed date:
                  value:
                    date_from:
                      - >-
                        Date has wrong format. Use one of these formats instead:
                        YYYY-MM-DD.
                Reversed range:
                  value:
                    date_to:
                      - date_to must be greater than or equal to date_from.
        '401':
          description: >-
            APIキーの有効期限が切れています。有効期限を指定して作成され、その期限が過ぎています。誤ったキーや失効したキーでも`401`が返されます。キーがない場合は`403`が返されます。
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 人が読めるエラーメッセージ。
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            リクエストは許可されていません。`x-api-key`がない、無効、または失効している場合は`You do not have
            permission to perform this
            action.`が返されます。このエンドポイントに必要なアクセス権のないスコープ付きキーには不足しているアクセス権を示すメッセージが返され、IP許可リスト外から使用されたキーには`This
            API key can't be used from this IP address.`が返されます。
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 人が読めるエラーメッセージ。
              examples:
                Missing or invalid key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without webhooks read:
                  value:
                    detail: This API key has no read access to webhooks.
                Outside the IP allowlist:
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: このUUIDの送信先がアプリケーションに存在しないか、削除されています。
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 人が読めるエラーメッセージ。
              examples:
                Destination not found:
                  value:
                    detail: Webhook destination not found.
        '429':
          description: >-
            レート制限を超過しました。このAPIキーで、現在の1分間のウィンドウ内にGETリクエストが600件を超えました。`Retry-After`秒待ってから再試行してください。
          headers:
            Retry-After:
              description: 再試行までに待機する秒数。
              schema:
                type: integer
                minimum: 1
                example: 30
            X-RateLimit-Limit:
              description: 1分間のウィンドウで許可されるリクエスト数（600）。
              schema:
                type: integer
                example: 600
            X-RateLimit-Remaining:
              description: 現在のウィンドウで残っているリクエスト数。
              schema:
                type: integer
                example: 0
            X-RateLimit-Reset:
              description: 現在のウィンドウがリセットされるUnix時刻(秒)。
              schema:
                type: integer
                example: 1792056120
            X-RateLimit-Scope:
              description: 超過した予算の名前。
              schema:
                type: string
                example: generic-get
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 人が読めるエラーメッセージ。
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/analytics/?date_from=2026-10-01&date_to=2026-10-16'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.webhooks.destinations.retrieve_analytics(
                "11111111-2222-3333-4444-555555555555",
            )
            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.webhooks.destinations.retrieveAnalytics("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Webhooks.Destinations.RetrieveAnalytics(ctx, \"11111111-2222-3333-4444-555555555555\", didit.WebhooksDestinationsRetrieveAnalyticsParams{})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.webhooks().destinations().retrieveAnalytics("11111111-2222-3333-4444-555555555555");

            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->webhooks->destinations->retrieveAnalytics('11111111-2222-3333-4444-555555555555');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.webhooks.destinations.retrieve_analytics("11111111-2222-3333-4444-555555555555")

            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.Webhooks.Destinations.RetrieveAnalyticsAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  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.