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

# Anwendungs-Analytics-API

> Verifizierungsanalysen Ihrer Anwendung je Zeitraum mit der Didit API abrufen: KYC-Sitzungen, Konversion, Funnels, KYB- und Transaktionsdaten.



Prompt für Get Application Analytics API
        Prompt in die Zwischenablage kopieren



      
      

\<pre>

\`Read the verification analytics of my Didit application for a date range.

Endpoint:
GET https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/analytics/

Authentication:
Use the x-api-key header with my Didit API key. Only a full-access key works: any scoped key gets 403 "This API key has no access to this endpoint.". application_id must be the application the key belongs to.

Goal:
\- Pull KYC session totals, conversion rate and breakdowns into my own reporting, or fetch the same KYB and transaction widgets the Business Console dashboard shows.

Query parameters:
\- start_date, end_date - YYYY-MM-DD, inclusive, UTC. Send both or neither; without both the range runs from 30 days ago through today. A future end_date counts as today. At most 730 days.
\- scope - "kyc", "kyb", "transactions" or "home". Omit it for the KYC summary.
\- widget_keys - comma-separated widget keys, in order. Unknown keys are dropped; with none left you get the scope's defaults.
\- workflow_ids - comma-separated workflow IDs, limits KYC and KYB numbers. versions and branch_path_ids apply only together with workflow_ids (branch_path_ids to KYC numbers only; only the default branch path has figures, so any other value returns empty figures).
\- tag, transaction_type, action_type - filters for transaction widgets only.

Behavior:
\- Without scope and widget_keys the response is the KYC summary: data_points (one per day), request_breakdown, conversion_rate, previous_data_points and previous_request_breakdown for the period of equal length before start_date, location_stats, demographic_stats, device_details, workflow_funnel_stats, verification_time_stats, resubmission_stats, warning_stats, original_status_stats and time series grouped by grouping_mode ("day" up to 14 days, "week" up to 90, "month" beyond). data_points and the grouping span start at the first day with sessions inside the range, not at start_date.
\- With scope (or widget_keys) the response is {scope, available_widget_keys, requested_widget_keys, widgets}; widgets is keyed by widget key and each widget has kind, title and the fields of its kind.
\- Invalid workflow IDs and versions are ignored rather than rejected.
\- Counts come from daily rollups refreshed in the background, so the newest activity can take a short while to appear.

Example call:
curl -X GET "https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/analytics/?start_date=2026-10-01&end_date=2026-10-15" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- request_breakdown.total_approved, total_declined, total_in_review - status totals for the range.
\- conversion_rate - approved / (approved + declined + in review) x 100; null when nothing finished.
\- workflow_funnel_stats.<workflow_id>.steps.<STEP>.reached - sessions that reached each step.
\- widgets.<widget_key> - with scope, the widget payloads.

Failure modes:
\- 400 - {"start_date": "Invalid date format. Use YYYY-MM-DD (e.g., 2024-01-15)."}, {"start_date": "Start date must be before or equal to end date."}, {"date_range": "Date range cannot exceed 730 days (2 years)."} or {"scope": "Unsupported analytics scope."}.
\- 401 - the API key has expired.
\- 403 - missing key (a wrong, revoked or expired key gets 401) ({"detail": "Authentication credentials were not provided or are invalid."}), a key of another application ({"detail": "You do not have permission to perform this action."}), any scoped key, or a request from outside the key's IP list.
\- 429 - more than 600 GET requests per minute with this key.

Side effects: none. Not billed.

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

\</pre>



      
      

Einfügen in

Der Endpoint liefert die Daten für das [Analytics-Dashboard](https://docs.didit.me/de/console/analytics.md) der Business Console. Er hat zwei Antwortformen:| Sie senden | Sie erhalten |
| - | - |
| Weder `scope` noch `widget_keys` | Die Zusammenfassung der Benutzerverifizierung (KYC) für den Zeitraum |
| `scope`, `widget_keys` oder beides | Dashboard-Widgets für einen Tab: `kyc`, `kyb`, `transactions` oder `home` (beliebige Kombination aus diesen dreien) |Jedes Widget enthält ein `kind` und einen `title`; die übrigen Felder hängen von der Art des Widgets ab. Senden Sie `scope` einmal ohne `widget_keys`, um `available_widget_keys` abzufragen, und fordern Sie dann nur die Widgets an, die Sie benötigen.> [!NOTE]
>
> Nur ein API-Schlüssel mit vollem Zugriff kann diesen Endpoint aufrufen. Ein eingeschränkter Schlüssel erhält unabhängig von seinen Berechtigungen `403`, ebenso ein Schlüssel einer anderen Anwendung. Siehe [API-Schlüssel](https://docs.didit.me/de/console/api-keys.md).## Verwandte Themen- [Verifizierungen von heute nach Stunde abrufen](https://docs.didit.me/de/management-api/analytics/today-by-hour.md)
- [Analytics-Dashboard](https://docs.didit.me/de/console/analytics.md)
- [API-Schlüssel und eingeschränkter Zugriff](https://docs.didit.me/de/console/api-keys.md)


## OpenAPI

````yaml de/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API für Ausweisverifizierung. Authentifizierung über den x-api-key-Header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/analytics/:
    get:
      tags:
        - Analytics
      summary: Anwendungsanalysen abrufen
      description: >-
        Lesen Sie die Zahlen hinter dem
        [Analytics-Dashboard](https://docs.didit.me/de/console/analytics) der
        Business Console für einen Datumsbereich aus. Ohne `scope` und
        `widget_keys` ist die Antwort die Zusammenfassung der
        Benutzerverifizierung (KYC) (`ApplicationAnalyticsSummary`): tägliche
        Sitzungsanzahlen, Statussummen, Konversionsrate, dieselben Kennzahlen
        für den vorherigen Zeitraum gleicher Länge, Standorte, Demografie,
        Geräte, Workflow-Funnel, aktive Verifizierungszeit, erneute
        Einreichungen, Warnungen und Zeitreihen. Mit `scope` oder `widget_keys`
        enthält sie die Widgets eines Dashboard-Tabs
        (`ApplicationAnalyticsWidgetResponse`): `kyc`, `kyb`, `transactions`
        oder `home`.


        Sitzungsanzahlen basieren auf dem Sitzungserstellungsdatum (UTC) und
        spiegeln den aktuellen Status jeder Sitzung wider. Sie stammen aus
        täglichen Rollups, die im Hintergrund aktualisiert werden, sodass die
        neueste Aktivität einen kurzen Moment benötigen kann, um angezeigt zu
        werden. Ungültige Workflow-IDs und -Versionen werden ignoriert statt
        abgewiesen. Es wird nichts in Rechnung gestellt.


        Nur ein API-Schlüssel mit Vollzugriff kann diesen Endpoint aufrufen:
        Jeder berechtigungsbeschränkte Schlüssel erhält den Status `403`,
        unabhängig von seinen Berechtigungen, ebenso wie der Schlüssel einer
        anderen Anwendung. Siehe
        [API-Schlüssel](https://docs.didit.me/de/console/api-keys).
      operationId: get_application_analytics
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID der Organisation.
          example: 11111111-2222-3333-4444-555555555555
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            Anwendungs-UUID. Muss die Anwendung sein, zu der der API-Schlüssel
            gehört: Ein für eine andere Anwendung verwendeter Schlüssel erhält
            `403`.
          example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date
            example: '2026-10-01'
          description: >-
            Erster Tag des Zeitraums, `YYYY-MM-DD`, einschließlich (UTC).
            Zusammen mit `end_date` senden: Wenn einer von beiden fehlt, werden
            beide ignoriert und der Zeitraum reicht von 30 Tagen vor heute bis
            heute.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date
            example: '2026-10-15'
          description: >-
            Letzter Tag des Zeitraums, `YYYY-MM-DD`, einschließlich (UTC). Ein
            Datum in der Zukunft zählt als heute. Der Zeitraum darf 730 Tage
            nicht überschreiten.
        - name: scope
          in: query
          required: false
          schema:
            type: string
            enum:
              - home
              - kyc
              - kyb
              - transactions
          description: >-
            Dashboard-Tab, für den Widgets zurückgegeben werden sollen
            (Groß-/Kleinschreibung wird nicht beachtet). Lassen Sie ihn zusammen
            mit `widget_keys` weg, um die KYC-Zusammenfassung zu erhalten. Das
            Senden von nur `widget_keys` impliziert `kyc`. `home` akzeptiert
            jedes KYC-, KYB- oder Transaktions-Widget und verwendet
            standardmäßig das gespeicherte Start-Layout der Anwendung.
        - name: widget_keys
          in: query
          required: false
          schema:
            type: string
            example: tx_count_total,tx_count_daily
          description: >-
            Kommagetrennte Widget-Schlüssel, in dieser Reihenfolge
            zurückgegeben. Schlüssel, die der Scope nicht akzeptiert, werden
            verworfen; wenn keine übrig bleiben, erhalten Sie die Standardwerte
            des Scopes. KYC: `kyc_sessions_volume`, `kyc_warning_insights`,
            `kyc_id_locations`, `kyc_ip_locations`, `kyc_workflow_funnel`,
            `kyc_average_verification_time`, `kyc_conversion_rate`,
            `kyc_conversion_by_country`, `kyc_resubmission_insights`,
            `kyc_original_status_distribution`,
            `kyc_database_validation_coverage`,
            `kyc_database_validation_latency`, `kyc_demographics`,
            `kyc_device_details`. KYB: `kyb_sessions_volume`,
            `kyb_workflow_funnel`, `kyb_average_verification_time`,
            `kyb_ip_locations`, `kyb_business_country_distribution`,
            `kyb_warning_insights`, `kyb_conversion_rate`,
            `kyb_conversion_by_country`, `kyb_industry_breakdown`,
            `kyb_resubmission_insights`, `kyb_original_status_distribution`,
            `kyb_registry_coverage`, `kyb_registry_data_completeness`,
            `kyb_device_details`. Transaktionen: `tx_count_total`,
            `tx_count_daily`, `tx_volume_total_preferred_currency`,
            `tx_volume_daily_preferred_currency`, `tx_average_amount`,
            `tx_average_amount_daily`, `tx_transaction_category_breakdown`,
            `tx_action_type_breakdown`, `tx_status_volume_trend`,
            `tx_user_ip_or_country_distribution`, `tx_tag_breakdown`,
            `tx_top_rules_triggered`, `tx_team_member_performance`,
            `tx_score_histogram`.
        - name: workflow_ids
          in: query
          required: false
          schema:
            type: string
            example: 33333333-4444-5555-6666-777777777777
          description: >-
            Kommagetrennte Workflow-IDs. Beschränkt die KYC-Zusammenfassung
            sowie die KYC- und KYB-Widgets auf diese Workflows. Werte, die keine
            UUIDs sind, werden ignoriert; wenn keiner gültig ist, wird der
            Filter verworfen. Die Zusammenfassung akzeptiert auch `workflow_id`.
        - name: versions
          in: query
          required: false
          schema:
            type: string
            example: 3,4
          description: >-
            Kommagetrennte Workflow-Versionsnummern. Gilt nur zusammen mit
            `workflow_ids`; Werte, die keine ganzen Zahlen sind, werden
            ignoriert. `version` wird als Alias akzeptiert.
        - name: branch_path_ids
          in: query
          required: false
          schema:
            type: string
            example: default
          description: >-
            Kommagetrennte Verzweigungspfad-IDs. Gilt nur zusammen mit
            `workflow_ids` und nur für KYC-Zahlen. Zahlen werden derzeit nur für
            `default` (alle Pfade kombiniert) erfasst, sodass jeder andere Wert
            leere Zahlen zurückgibt. `branch_path_id` wird als Alias akzeptiert.
        - name: tag
          in: query
          required: false
          schema:
            type: string
          description: 'Nur Transaktions-Widgets: kommagetrennte Tag-UUIDs oder Tag-Namen.'
        - name: transaction_type
          in: query
          required: false
          schema:
            type: string
            example: finance
          description: 'Nur Transaktions-Widgets: kommagetrennte Transaktionskategorien.'
        - name: action_type
          in: query
          required: false
          schema:
            type: string
            example: withdrawal
          description: >-
            Nur Transaktions-Widgets: kommagetrennte Aktionstypen
            (Groß-/Kleinschreibung wird nicht berücksichtigt).
      responses:
        '200':
          description: >-
            Die KYC-Zusammenfassung oder die angeforderten Widgets, wenn `scope`
            oder `widget_keys` gesendet wird.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ApplicationAnalyticsSummary'
                  - $ref: '#/components/schemas/ApplicationAnalyticsWidgetResponse'
              examples:
                KYC summary:
                  value:
                    grouping_mode: day
                    data_points:
                      - rounded_date: '2026-10-14'
                        total: 12
                        approved: 8
                        declined: 1
                        canceled: 1
                        pending: 2
                        in_review: 1
                        expired: 1
                        abandoned: 0
                        in_progress: 1
                        not_started: 0
                        manually_approved: 1
                        manually_declined: 0
                      - rounded_date: '2026-10-15'
                        total: 10
                        approved: 6
                        declined: 2
                        canceled: 0
                        pending: 2
                        in_review: 2
                        expired: 0
                        abandoned: 0
                        in_progress: 0
                        not_started: 0
                        manually_approved: 0
                        manually_declined: 1
                    request_breakdown:
                      total_approved: 14
                      total_in_review: 3
                      total_declined: 3
                      total_canceled: 1
                      total_pending: 4
                      total_expired: 1
                      total_abandoned: 0
                      total_in_progress: 1
                      total_not_started: 0
                      total_manually_approved: 1
                      total_manually_declined: 1
                    conversion_rate: 70
                    location_stats:
                      countries:
                        - session_count: 15
                          country: Spain
                          country_code: ES
                        - session_count: 7
                          country: Portugal
                          country_code: PT
                      ip_countries:
                        - session_count: 15
                          country: Spain
                          country_code: ES
                        - session_count: 7
                          country: Portugal
                          country_code: PT
                      id_countries:
                        - country: Spain
                          country_code: ES
                          session_count: 14
                        - country: Portugal
                          country_code: PT
                          session_count: 6
                      conversion_by_country:
                        - country: Spain
                          country_code: ES
                          finished: 13
                          approved: 10
                        - country: Portugal
                          country_code: PT
                          finished: 6
                          approved: 4
                      cities:
                        - session_count: 9
                          location: Madrid, Spain
                          latitude: 40.4168
                          longitude: -3.7038
                    demographic_stats:
                      age_distribution:
                        under_18: 0
                        18_24: 5
                        25_34: 8
                        35_44: 4
                        45_64: 2
                        65_plus: 1
                      gender_distribution:
                        M: 11
                        F: 9
                    device_details:
                      device_models:
                        - device: Apple
                          count: 12
                        - device: Android
                          count: 10
                      browsers:
                        - browser: Safari
                          count: 12
                        - browser: Chrome
                          count: 10
                      operating_systems:
                        - os: iOS
                          count: 12
                        - os: Android
                          count: 10
                    workflow_funnel_stats:
                      33333333-4444-5555-6666-777777777777:
                        total: 22
                        steps:
                          OCR:
                            reached: 21
                          LIVENESS:
                            reached: 19
                          FACE_MATCH:
                            reached: 19
                          AML:
                            reached: 18
                    verification_time_stats:
                      overall_avg_seconds: 64
                      overall_count: 18
                      per_feature:
                        OCR:
                          avg_seconds: 41.2
                          total_seconds: 741.6
                          count: 18
                        LIVENESS:
                          avg_seconds: 22.8
                          total_seconds: 410.4
                          count: 18
                      per_sub_step:
                        OCR:
                          front_id_photo:
                            avg_seconds: 18.3
                            total_seconds: 329.4
                            count: 18
                    resubmission_stats:
                      first_pass: 17
                      second: 2
                      third_plus: 1
                      abandoned: 0
                    warning_stats:
                      ID_VERIFICATION:
                        total: 21
                        risks:
                          DOCUMENT_EXPIRED:
                            error: 1
                            warning: 0
                            information: 0
                      LIVENESS:
                        total: 19
                        risks:
                          LOW_LIVENESS_SCORE:
                            error: 0
                            warning: 2
                            information: 0
                    original_status_stats:
                      approved: 13
                      in_review: 5
                      declined: 2
                    demographic_time_series:
                      - date: '2026-10-14'
                        age_distribution:
                          under_18: 0
                          18_24: 3
                          25_34: 4
                          35_44: 2
                          45_64: 1
                          65_plus: 0
                        gender_distribution:
                          M: 6
                          F: 4
                      - date: '2026-10-15'
                        age_distribution:
                          under_18: 0
                          18_24: 2
                          25_34: 4
                          35_44: 2
                          45_64: 1
                          65_plus: 1
                        gender_distribution:
                          M: 5
                          F: 5
                    device_time_series:
                      - date: '2026-10-14'
                        devices:
                          Apple: 7
                          Android: 5
                        browsers:
                          Safari: 7
                          Chrome: 5
                        operating_systems:
                          iOS: 7
                          Android: 5
                      - date: '2026-10-15'
                        devices:
                          Apple: 5
                          Android: 5
                        browsers:
                          Safari: 5
                          Chrome: 5
                        operating_systems:
                          iOS: 5
                          Android: 5
                    verification_time_time_series:
                      - date: '2026-10-14'
                        overall_avg: 66.1
                        per_feature:
                          OCR: 42
                          LIVENESS: 24.1
                      - date: '2026-10-15'
                        overall_avg: 61.5
                        per_feature:
                          OCR: 40.2
                          LIVENESS: 21.3
                    resubmission_time_series:
                      - date: '2026-10-14'
                        first_pass: 9
                        second: 1
                        third_plus: 0
                        abandoned: 0
                      - date: '2026-10-15'
                        first_pass: 8
                        second: 1
                        third_plus: 1
                        abandoned: 0
                    original_status_time_series:
                      - date: '2026-10-14'
                        approved: 7
                        in_review: 3
                        declined: 1
                      - date: '2026-10-15'
                        approved: 6
                        in_review: 2
                        declined: 1
                    previous_data_points:
                      - rounded_date: '2026-10-12'
                        total: 9
                        approved: 6
                        declined: 1
                        canceled: 1
                        pending: 1
                      - rounded_date: '2026-10-13'
                        total: 11
                        approved: 7
                        declined: 2
                        canceled: 0
                        pending: 2
                    previous_request_breakdown:
                      total_approved: 13
                      total_in_review: 2
                      total_declined: 3
                      total_canceled: 1
                      total_pending: 3
                Transaction widgets:
                  value:
                    scope: transactions
                    available_widget_keys:
                      - tx_count_total
                      - tx_count_daily
                      - tx_volume_total_preferred_currency
                      - tx_volume_daily_preferred_currency
                      - tx_average_amount
                      - tx_average_amount_daily
                      - tx_transaction_category_breakdown
                      - tx_action_type_breakdown
                      - tx_status_volume_trend
                      - tx_user_ip_or_country_distribution
                      - tx_tag_breakdown
                      - tx_top_rules_triggered
                      - tx_team_member_performance
                      - tx_score_histogram
                    requested_widget_keys:
                      - tx_count_total
                      - tx_count_daily
                    widgets:
                      tx_count_total:
                        kind: metric
                        title: Transaction count
                        value: 42
                      tx_count_daily:
                        kind: time_series
                        title: Transaction count
                        items:
                          - date: '2026-10-14'
                            value: 20
                          - date: '2026-10-15'
                            value: 22
                        previous_items:
                          - date: '2026-10-12'
                            value: 18
                          - date: '2026-10-13'
                            value: 15
        '400':
          description: >-
            Ungültiger Datumsbereich oder Scope. Der Body ist ein Objekt mit dem
            fehlerhaften Parameter als Schlüssel und einer
            Zeichenfolgennachricht.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
              examples:
                Bad date format:
                  value:
                    start_date: Invalid date format. Use YYYY-MM-DD (e.g., 2024-01-15).
                Start after end:
                  value:
                    start_date: Start date must be before or equal to end date.
                Range too long:
                  value:
                    date_range: Date range cannot exceed 730 days (2 years).
                Unknown scope:
                  value:
                    scope: Unsupported analytics scope.
        '401':
          description: >-
            Der API-Schlüssel ist abgelaufen. Nur ein Schlüssel, der mit einem
            Ablaufdatum erstellt wurde, kann ablaufen; nach diesem Datum
            antwortet jede Anfrage damit mit `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            Die Anfrage ist nicht zulässig. Prüfen Sie `detail`: ein fehlender
            API-Schlüssel (ein falscher, widerrufener oder abgelaufener
            Schlüssel erhält `401`), ein Schlüssel einer anderen Anwendung, ein
            beliebiger berechtigungsbeschränkter Schlüssel oder eine Anfrage von
            außerhalb der IP-Liste des Schlüssels.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid key:
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Another application:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key:
                  value:
                    detail: This API key has no access to this endpoint.
                Outside the key's IP list:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            Mehr als 600 GET-Anfragen pro Minute mit diesem API-Schlüssel.
            Warten Sie die Anzahl der Sekunden in `Retry-After` ab und führen
            Sie dann einen Wiederholungsversuch durch.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
          headers:
            Retry-After:
              description: >-
                Sekunden bis zum Zurücksetzen des aktuellen
                Ein-Minuten-Fensters.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: Pro Minute in diesem Budget zulässige Anfragen.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Im aktuellen Zeitfenster verbleibende Anfragen.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix-Zeit, zu der das Zeitfenster zurückgesetzt wird.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/analytics/?start_date=2026-10-01&end_date=2026-10-15'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            result = client.analytics.retrieve()
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            const didit = new Didit();

            const result = await didit.analytics.retrieve();
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Analytics.Retrieve(ctx, didit.AnalyticsRetrieveParams{})\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_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            Didit client = new Didit();

            var result = client.analytics().retrieve();
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            $didit = new DiditClient();

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

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            didit = Didit::Client.new

            result = didit.analytics.retrieve
            puts result.to_h
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            using var client = new DiditClient();

            var result = await client.Analytics.RetrieveAsync();
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    ApplicationAnalyticsSummary:
      type: object
      description: >-
        Zusammenfassung der Benutzerverifizierung (KYC), die zurückgegeben wird,
        wenn weder `scope` noch `widget_keys` gesendet werden.
      required:
        - data_points
        - request_breakdown
        - previous_data_points
        - previous_request_breakdown
        - conversion_rate
        - location_stats
        - demographic_stats
        - device_details
        - workflow_funnel_stats
        - verification_time_stats
        - resubmission_stats
        - warning_stats
        - original_status_stats
        - grouping_mode
        - demographic_time_series
        - device_time_series
        - verification_time_time_series
        - resubmission_time_series
        - original_status_time_series
      properties:
        data_points:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDataPoint'
          description: >-
            Ein Datenpunkt pro Tag, vom ersten Tag mit Sitzungen im Zeitraum bis
            `end_date`. Immer täglich, unabhängig vom Wert für `grouping_mode`.
        request_breakdown:
          $ref: '#/components/schemas/ApplicationAnalyticsRequestBreakdown'
        previous_data_points:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDataPoint'
          description: >-
            Tägliche Datenpunkte für den Zeitraum derselben Länge direkt vor
            `start_date`.
        previous_request_breakdown:
          $ref: '#/components/schemas/ApplicationAnalyticsRequestBreakdown'
        conversion_rate:
          type: number
          nullable: true
          description: >-
            `total_approved / (total_approved + total_declined +
            total_in_review) x 100`, eine Nachkommastelle. `null`, wenn noch
            nichts abgeschlossen wurde.
        location_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsLocationStats'
        demographic_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsDemographicStats'
        device_details:
          $ref: '#/components/schemas/ApplicationAnalyticsDeviceDetails'
        workflow_funnel_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsWorkflowFunnel'
        verification_time_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsVerificationTimeStats'
        resubmission_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsResubmissionStats'
        warning_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsWarningStats'
        original_status_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsOriginalStatusStats'
        grouping_mode:
          type: string
          enum:
            - day
            - week
            - month
          description: >-
            Wie die `*_time_series`-Listen gruppiert sind: `day` für bis zu 14
            Tage, `week` bis zu 90, `month` darüber hinaus. Gemessen ab dem
            ersten Tag mit Sitzungen im Bereich.
        demographic_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDemographicPoint'
        device_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDevicePoint'
        verification_time_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsVerificationTimePoint'
        resubmission_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsResubmissionPoint'
        original_status_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsOriginalStatusPoint'
    ApplicationAnalyticsWidgetResponse:
      type: object
      description: >-
        Dashboard-Widgets, die zurückgegeben werden, wenn `scope` oder
        `widget_keys` gesendet wird.
      required:
        - scope
        - available_widget_keys
        - requested_widget_keys
        - widgets
      properties:
        scope:
          type: string
          enum:
            - home
            - kyc
            - kyb
            - transactions
          description: Dashboard-Tab.
        available_widget_keys:
          type: array
          items:
            type: string
          description: Jeder Widget-Schlüssel, den dieser Scope akzeptiert.
        requested_widget_keys:
          type: array
          items:
            type: string
          description: >-
            Die beantworteten Widget-Schlüssel in der folgenden Reihenfolge:
            Ihre gültigen `widget_keys` oder die Standardwerte des Scopes.
        widgets:
          type: object
          description: >-
            Nach Widget-Schlüssel gegliedert, in der Reihenfolge von
            `requested_widget_keys`.
          additionalProperties:
            $ref: '#/components/schemas/ApplicationAnalyticsWidget'
    ApplicationAnalyticsDataPoint:
      type: object
      description: >-
        Sitzungsanzahl für einen Tag, nach Erstellungsdatum (UTC). Jede Anzahl
        spiegelt den aktuellen Status der Sitzung wider. Datenpunkte des
        vorherigen Zeitraums enthalten mindestens die erforderlichen Felder.
      required:
        - rounded_date
        - total
        - approved
        - declined
        - canceled
        - pending
      properties:
        rounded_date:
          type: string
          format: date
          description: Der Tag, `YYYY-MM-DD`.
        total:
          type: integer
          description: An diesem Tag erstellte Sitzungen.
        approved:
          type: integer
          description: Davon Sitzungen mit Status `Approved` oder `Kyc Expired`.
        declined:
          type: integer
          description: Sitzungen mit Status `Declined`.
        canceled:
          type: integer
          description: Sitzungen mit Status `Expired` oder `Abandoned`.
        pending:
          type: integer
          description: Sitzungen mit Status `Not Started`, `In Progress` oder `In Review`.
        in_review:
          type: integer
          description: Sitzungen mit Status `In Review`.
        expired:
          type: integer
          description: Sitzungen mit Status `Expired`.
        abandoned:
          type: integer
          description: Sitzungen mit Status `Abandoned`.
        in_progress:
          type: integer
          description: Sitzungen mit Status `In Progress`.
        not_started:
          type: integer
          description: Sitzungen mit Status `Not Started`.
        manually_approved:
          type: integer
          description: >-
            Sitzungen, die ein Prüfer genehmigt hat, nachdem der Workflow ein
            anderes Ergebnis geliefert hatte.
        manually_declined:
          type: integer
          description: >-
            Sitzungen, die ein Prüfer abgelehnt hat, nachdem der Workflow ein
            anderes Ergebnis geliefert hatte.
    ApplicationAnalyticsRequestBreakdown:
      type: object
      description: >-
        Statussummen für den Zeitraum. Die Aufschlüsselung des vorherigen
        Zeitraums enthält mindestens die erforderlichen Felder.
      required:
        - total_approved
        - total_in_review
        - total_declined
        - total_canceled
        - total_pending
      properties:
        total_approved:
          type: integer
          description: Sitzungen mit Status `Approved` oder `Kyc Expired`.
        total_in_review:
          type: integer
          description: Sitzungen mit Status `In Review`.
        total_declined:
          type: integer
          description: Sitzungen mit Status `Declined`.
        total_canceled:
          type: integer
          description: Sitzungen mit Status `Expired` oder `Abandoned`.
        total_pending:
          type: integer
          description: >-
            Sitzungen mit Status `Not Started`, `In Progress` oder `In Review`
            (einschließlich `total_in_review`).
        total_expired:
          type: integer
          description: Sitzungen mit Status `Expired`.
        total_abandoned:
          type: integer
          description: Sitzungen mit Status `Abandoned`.
        total_in_progress:
          type: integer
          description: Sitzungen mit Status `In Progress`.
        total_not_started:
          type: integer
          description: Sitzungen mit Status `Not Started`.
        total_manually_approved:
          type: integer
          description: Von einem Prüfer genehmigt.
        total_manually_declined:
          type: integer
          description: Von einem Prüfer abgelehnt.
    ApplicationAnalyticsLocationStats:
      type: object
      properties:
        ip_countries:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsCountryCount'
          description: Länder der IP-Adressen der Benutzer, die meisten Sitzungen zuerst.
        countries:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsCountryCount'
          description: Dieselbe Liste wie `ip_countries`.
        id_countries:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsCountryCount'
          description: >-
            Ausstellungsländer der verifizierten Ausweisdokumente, die meisten
            Sitzungen zuerst.
        conversion_by_country:
          type: array
          description: >-
            Pro Dokument-Ausstellungsland: abgeschlossene Sitzungen (genehmigt,
            abgelehnt oder in Prüfung) und wie viele genehmigt wurden. Die
            meisten abgeschlossenen zuerst.
          items:
            type: object
            properties:
              country:
                type: string
              country_code:
                type: string
              finished:
                type: integer
              approved:
                type: integer
        cities:
          type: array
          description: Bis zu 100 IP-Städte, die meisten Sitzungen zuerst.
          items:
            type: object
            properties:
              location:
                type: string
                description: '`City, Country`.'
              session_count:
                type: integer
              latitude:
                type: number
                nullable: true
              longitude:
                type: number
                nullable: true
    ApplicationAnalyticsDemographicStats:
      type: object
      properties:
        age_distribution:
          type: object
          description: >-
            Sitzungen pro Altersgruppe aus dem Ausweisdokument. Leer, wenn keine
            Daten vorliegen.
          properties:
            under_18:
              type: integer
            18_24:
              type: integer
            25_34:
              type: integer
            35_44:
              type: integer
            45_64:
              type: integer
            65_plus:
              type: integer
          additionalProperties:
            type: integer
        gender_distribution:
          type: object
          description: >-
            Sitzungen pro Dokumentengeschlechtscode: `M`, `F` oder `U`
            (unbekannt).
          additionalProperties:
            type: integer
    ApplicationAnalyticsDeviceDetails:
      type: object
      description: Die fünf häufigsten jedes Typs, die meisten Sitzungen zuerst.
      properties:
        device_models:
          type: array
          description: >-
            Gerätemarken: `Apple`, `Android`, `LG`, alles andere wird als
            `Other` gruppiert.
          items:
            type: object
            properties:
              device:
                type: string
              count:
                type: integer
        browsers:
          type: array
          description: >-
            Browser: `Chrome`, `Safari`, `Didit App`, `Firefox`, alles andere
            wird unter `Other` zusammengefasst.
          items:
            type: object
            properties:
              browser:
                type: string
              count:
                type: integer
        operating_systems:
          type: array
          description: Betriebssysteme.
          items:
            type: object
            properties:
              os:
                type: string
              count:
                type: integer
    ApplicationAnalyticsWorkflowFunnel:
      type: object
      description: >-
        Nach Workflow-ID gegliedert. `total` gibt die in diesem Workflow
        gestarteten Sitzungen an; `steps` zählt die Sitzungen, die den
        jeweiligen Schritt erreicht haben (`OCR`, `LIVENESS`, `FACE_MATCH`,
        `AML`, `POA`, `PHONE`, `EMAIL`, `NFC`, `DATABASE_VALIDATION`,
        `QUESTIONNAIRE`, `IP_ANALYSIS`, `AGE_ESTIMATION`, `KYB_REGISTRY`,
        `KYB_DOCUMENTS`, `KYB_KEY_PEOPLE`). Das Erreichen eines Schritts
        bedeutet nicht, dass er erfolgreich bestanden wurde.
      additionalProperties:
        type: object
        properties:
          total:
            type: integer
          steps:
            type: object
            additionalProperties:
              type: object
              properties:
                reached:
                  type: integer
    ApplicationAnalyticsVerificationTimeStats:
      type: object
      description: >-
        Aktive Zeit, die Benutzer mit der Verifizierung verbracht haben,
        Leerlaufzeiten ausgenommen. Ein leeres Objekt, wenn keine Daten
        vorliegen.
      properties:
        overall_avg_seconds:
          type: number
          description: Durchschnitt pro Sitzung, eine Nachkommastelle.
        overall_count:
          type: integer
          description: Gemessene Sitzungen.
        per_feature:
          type: object
          description: Nach Funktion gegliedert, zum Beispiel `OCR` oder `LIVENESS`.
          additionalProperties:
            type: object
            properties:
              avg_seconds:
                type: number
              total_seconds:
                type: number
              count:
                type: integer
        per_sub_step:
          type: object
          description: >-
            Nach Funktion gegliedert, dann nach Teilschritt, zum Beispiel
            `front_id_photo`.
          additionalProperties:
            type: object
            additionalProperties:
              type: object
              properties:
                avg_seconds:
                  type: number
                total_seconds:
                  type: number
                count:
                  type: integer
    ApplicationAnalyticsResubmissionStats:
      type: object
      properties:
        first_pass:
          type: integer
          description: Beendete Sitzungen ohne erneute Einreichung.
        second:
          type: integer
          description: Beendete Sitzungen, die einmal erneut eingereicht wurden.
        third_plus:
          type: integer
          description: >-
            Beendete Sitzungen, die zwei- oder mehrmals erneut eingereicht
            wurden.
        abandoned:
          type: integer
          description: Abgebrochene Sitzungen.
    ApplicationAnalyticsWarningStats:
      type: object
      description: >-
        Nach Funktion gegliedert (`ID_VERIFICATION`, `LIVENESS`, `FACEMATCH`,
        `AML`, `PROOF_OF_ADDRESS`, `PHONE`, `EMAIL`, `NFC`, `LOCATION`,
        `DATABASE_VALIDATION`, `QUESTIONNAIRE` und die KYB-Funktionen). `total`
        gibt die Sitzungen an, die die Funktion erreicht haben; `risks` zählt
        Sitzungen pro Warnungscode und Stufe.
      additionalProperties:
        type: object
        properties:
          total:
            type: integer
          risks:
            type: object
            additionalProperties:
              type: object
              properties:
                error:
                  type: integer
                warning:
                  type: integer
                information:
                  type: integer
    ApplicationAnalyticsOriginalStatusStats:
      type: object
      description: >-
        Die automatische Entscheidung des Workflows, bevor ein Prüfer sie
        geändert hat.
      properties:
        approved:
          type: integer
        in_review:
          type: integer
        declined:
          type: integer
    ApplicationAnalyticsDemographicPoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            Periodenschlüssel: `YYYY-MM-DD` für einen Tag, den Montag einer
            Woche oder `YYYY-MM` für einen Monat, entsprechend `grouping_mode`.
        age_distribution:
          type: object
          additionalProperties:
            type: integer
        gender_distribution:
          type: object
          additionalProperties:
            type: integer
    ApplicationAnalyticsDevicePoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            Periodenschlüssel: `YYYY-MM-DD` für einen Tag, den Montag einer
            Woche oder `YYYY-MM` für einen Monat, entsprechend `grouping_mode`.
        devices:
          type: object
          additionalProperties:
            type: integer
        browsers:
          type: object
          additionalProperties:
            type: integer
        operating_systems:
          type: object
          additionalProperties:
            type: integer
    ApplicationAnalyticsVerificationTimePoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            Periodenschlüssel: `YYYY-MM-DD` für einen Tag, den Montag einer
            Woche oder `YYYY-MM` für einen Monat, entsprechend `grouping_mode`.
        overall_avg:
          type: number
          description: Durchschnittliche aktive Sekunden pro Sitzung.
        per_feature:
          type: object
          description: Durchschnittliche aktive Sekunden pro Funktion.
          additionalProperties:
            type: number
    ApplicationAnalyticsResubmissionPoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            Periodenschlüssel: `YYYY-MM-DD` für einen Tag, den Montag einer
            Woche oder `YYYY-MM` für einen Monat, entsprechend `grouping_mode`.
        first_pass:
          type: integer
        second:
          type: integer
        third_plus:
          type: integer
        abandoned:
          type: integer
    ApplicationAnalyticsOriginalStatusPoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            Periodenschlüssel: `YYYY-MM-DD` für einen Tag, den Montag einer
            Woche oder `YYYY-MM` für einen Monat, entsprechend `grouping_mode`.
        approved:
          type: integer
        in_review:
          type: integer
        declined:
          type: integer
    ApplicationAnalyticsWidget:
      type: object
      description: >-
        Ein Dashboard-Widget. Jedes Widget hat `kind` und `title`; die weiteren
        Felder hängen von `kind` ab. Die Sitzungs-Widgets verwenden die
        Zusammenfassungsobjekte (`data_points`, `request_breakdown`,
        `workflow_funnel_stats` usw.) wieder; Listen-Widgets platzieren ihre
        Einträge in `items`; Transaktionsmetriken verwenden `value`.
      required:
        - kind
        - title
      properties:
        kind:
          type: string
          enum:
            - sessions_volume
            - workflow_funnel
            - average_verification_time
            - country_distribution
            - warning_insights
            - conversion_rate
            - conversion_by_country
            - resubmission_insights
            - original_status_distribution
            - database_validation_coverage
            - database_validation_latency
            - demographics
            - device_details
            - horizontal_bar
            - kyb_registry_coverage
            - kyb_registry_data_completeness
            - metric
            - time_series
            - breakdown
            - status_time_series
            - leaderboard
            - histogram
          description: Widget-Typ.
        title:
          type: string
          description: Anzeigetitel, zum Beispiel `Verification volume`.
        grouping_mode:
          type: string
          enum:
            - day
            - week
            - month
          description: >-
            Wie die `*_time_series`-Listen gruppiert sind: `day` für bis zu 14
            Tage, `week` bis zu 90, `month` darüber hinaus. Gemessen ab dem
            ersten Tag mit Sitzungen im Bereich.
        data_points:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDataPoint'
        request_breakdown:
          $ref: '#/components/schemas/ApplicationAnalyticsRequestBreakdown'
        previous_data_points:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDataPoint'
        previous_request_breakdown:
          $ref: '#/components/schemas/ApplicationAnalyticsRequestBreakdown'
        conversion_rate:
          type: number
          nullable: true
        workflow_funnel_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsWorkflowFunnel'
        verification_time_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsVerificationTimeStats'
        verification_time_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsVerificationTimePoint'
        warning_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsWarningStats'
        resubmission_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsResubmissionStats'
        resubmission_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsResubmissionPoint'
        original_status_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsOriginalStatusStats'
        original_status_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsOriginalStatusPoint'
        demographic_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsDemographicStats'
        demographic_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDemographicPoint'
        device_details:
          $ref: '#/components/schemas/ApplicationAnalyticsDeviceDetails'
        device_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDevicePoint'
        items:
          type: array
          description: >-
            Einträge eines Listen-Widgets. `country_distribution` (KYC):
            `country`, `country_code`, `session_count`. `conversion_by_country`:
            `country`, `country_code`, `finished`, `approved`. `time_series`:
            `date`, `value`. `status_time_series`: `date`, `approved`,
            `declined`, `flagged`. `breakdown`: `transaction_type` oder
            `action_type` mit `count` und `volume`, oder `tag_id`, `tag_name`,
            `count`. `leaderboard`: `rule_title`, `trigger_count` oder
            `assignee`, `handled_count`, `average_processing_seconds`, jeweils
            mit `approved_percentage`, `declined_percentage`,
            `flagged_percentage`. `histogram`: `score`, `count`.
          items:
            type: object
            additionalProperties: {}
        previous_items:
          type: array
          description: >-
            Transaktionszeitreihe für den Zeitraum gleicher Länge direkt vor
            `start_date`.
          items:
            type: object
            additionalProperties: {}
        value:
          type: number
          description: '`metric`-Widgets: der Wert für den Bereich.'
        currency:
          type: string
          nullable: true
          description: >-
            Widgets für Transaktionsvolumen und -betrag: die
            Standard-Transaktionswährung der Anwendung.
        thresholds:
          type: object
          description: >-
            `histogram`-Widget: die Schwellenwerte für Überprüfung und Ablehnung
            der Anwendung.
          properties:
            review:
              type: integer
            decline:
              type: integer
        search:
          type: object
          description: '`kyb_registry_coverage`-Widget: Gesamtzahlen der Registersuche.'
          properties:
            searches_total:
              type: integer
            searches_with_no_candidates:
              type: integer
    ApplicationAnalyticsCountryCount:
      type: object
      properties:
        country:
          type: string
          description: Ländername.
        country_code:
          type: string
          description: Zweistelliger Ländercode.
        session_count:
          type: integer
          description: Sitzungen aus diesem Land.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Der API-Schlüssel Ihrer Anwendung, aus Entwickler -> API-Schlüssel in
        der Business Console. Der Primärschlüssel hat Vollzugriff. Ein benannter
        Schlüssel kann im Geltungsbereich eingeschränkt werden: keine, Lese-
        oder Schreibberechtigung pro Ressource, beschränkt auf bestimmte
        Workflows oder genehmigte Sitzungen, auf eine Liste von IP-Adressen und
        auf ein Ablaufdatum. 401 bedeutet, dass der Schlüssel falsch, widerrufen
        oder abgelaufen ist; 403 bedeutet, dass kein Schlüssel gesendet wurde,
        der Schlüssel keinen Zugriff auf diese Ressource oder Aktion hat oder
        die Anfrage von einer Adresse außerhalb seiner IP-Liste stammte; 404 bei
        einer Sitzungsroute bedeutet, dass die Sitzung außerhalb der Workflows
        oder Status des Schlüssels liegt. Ein Schlüssel ohne Medienzugriff
        erhält Bild-, Video- und PDF-URLs als null, und ein Schlüssel ohne
        Schreibberechtigung für Sitzungen erhält Sitzungslinks und Token als
        null. Siehe https://docs.didit.me/console/api-keys.

````

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