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

# Async-Berichte per API auflisten

> Didit-Exportberichte per API auflisten, nach Typ oder Status filtern und Fehleranzahl prüfen – inkl. Berechtigungen und Paginierung.

Die asynchrone Reports API von Didit listet Exportaufträge auf, die Sie abrufen können, und zwar die neuesten zuerst. Verwenden Sie `failed_count` und `failed_item_ids`, um Verifizierungsexporte mit einzelnen Fehlern zu erkennen.

Weitere Informationen finden Sie unter [Hinweise zum Export und Wiederholungsversuch](https://docs.didit.me/de/console/export-pdf-csv.md#fehlgeschlagene-exportelemente-wiederholen), [einen Bericht abrufen](https://docs.didit.me/de/management-api/reports/retrieve.md) oder [einen Wiederholungsversuch für einen Export durchführen](https://docs.didit.me/de/management-api/reports/retry.md).


## OpenAPI

````yaml de/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/reports/
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}/reports/:
    get:
      tags:
        - Reports
      summary: Asynchrone Berichte auflisten
      description: >-
        Erfordert Leseberechtigungen für alle Ressourcen, die der Bericht
        umfasst. Anmeldedaten von Anwendungen bzw. API-Schlüsseln müssen zur
        Anwendung im Pfad gehören. Mitglieds-Bearer-Token müssen Zugriff auf die
        Anwendung haben. Gibt lesbare Berichte, die neuesten zuerst, zurück.
        Diese asynchronen Exportaufträge sind von der Regulatory Reports API
        getrennt. Siehe [Verifizierungsdaten
        exportieren](https://docs.didit.me/de/console/export-pdf-csv).
      operationId: list_reports
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Organisations-ID.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Anwendungs-ID.
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
          description: Maximale Anzahl an Ergebnissen pro Seite.
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
          description: Anzahl der zu überspringenden Ergebnisse.
        - name: status
          in: query
          schema:
            type: string
          description: >-
            Durch Kommas getrennte oder wiederholte status-Werte: PENDING,
            PROCESSING, READY, FAILED.
        - name: report_type
          in: query
          schema:
            type: string
          description: Durch Kommas getrennte oder wiederholte report_type-Werte.
        - name: q
          in: query
          schema:
            type: string
          description: >-
            Suche nach einem Fragment der Bericht-ID oder nach Name bzw. E-Mail
            des Anforderers (höchstens 255 Zeichen).
      responses:
        '200':
          description: Asynchrone Berichte auflisten.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReportList'
        '400':
          description: Ungültiger Status, report_type oder Suchfilter.
        '401':
          description: Fehlende, ungültige oder abgelaufene Zugangsdaten.
        '403':
          description: >-
            Der Aufrufer hat keinen Zugriff auf diese Anwendung oder nicht die
            erforderlichen Berechtigungen.
        '429':
          $ref: '#/components/responses/RateLimitedRead'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

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

            for item in client.reports.list():
                print(item)
        - 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();

            for await (const item of didit.reports.list()) {
              console.log(item);
            }
        - 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\niter := client.Reports.ListAutoPaging(ctx, didit.ReportsListParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

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

            for (var item : client.reports().list()) {
                System.out.println(item);
            }
        - 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();

            foreach ($didit->reports->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            didit.reports.list.auto_paging_each do |item|
              puts item.to_h
            end
        - 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();

            await foreach (var item in await client.Reports.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    AsyncReportList:
      type: object
      required:
        - count
        - next
        - previous
        - results
        - counts
      properties:
        count:
          type: integer
          description: >-
            Anzahl der Ergebnisse, normalerweise auf 100 begrenzt; kann
            geschätzt sein. Verwenden Sie next statt count, um die Paginierung
            zu beenden.
        next:
          type: string
          description: URL der nächsten Seite oder null.
          nullable: true
        previous:
          type: string
          description: URL der vorherigen Seite oder null.
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/AsyncReport'
        counts:
          type: object
          required:
            - report_type
            - status
          description: >-
            Anzahl aller Berichte, die der Aufrufer lesen kann, vor den
            Listenfiltern.
          properties:
            report_type:
              type: object
              additionalProperties:
                type: integer
            status:
              type: object
              additionalProperties:
                type: integer
    AsyncReport:
      type: object
      required:
        - uuid
        - report_type
        - report_type_display
        - status
        - status_display
        - parameters
        - requested_by_user_id
        - requested_by_email
        - requested_by_name
        - row_count
        - failed_item_ids
        - failed_count
        - file_size
        - files
        - scheduled_report
        - error_message
        - deletion_pending
        - eta_seconds
        - started_at
        - completed_at
        - expires_at
        - created_at
        - updated_at
      properties:
        uuid:
          type: string
          description: Berichts-ID.
          format: uuid
        report_type:
          type: string
          description: Art des Exports oder Compliance-Berichts.
          enum:
            - SESSION_EXPORT
            - TRANSACTION_EXPORT
            - BUSINESS_EXPORT
            - VENDOR_USER_EXPORT
            - VENDOR_BUSINESS_EXPORT
            - CASE_EXPORT
            - CASE_SLA_EXPORT
            - LIST_ENTRY_EXPORT
            - EVENT_EXPORT
            - COMPLIANCE_KYC_KYB
            - COMPLIANCE_AML_LOG
            - COMPLIANCE_TRAVEL_RULE
            - COMPLIANCE_SANCTIONS_PEP
            - COMPLIANCE_RISK_SUMMARY
            - COMPLIANCE_SAR_STR_DRAFT
            - COMPLIANCE_CTR
            - COMPLIANCE_CASE_SUMMARY
        report_type_display:
          type: string
          description: Anzeigebezeichnung für die Berichtsart.
        status:
          type: string
          description: >-
            Status der Generierung. READY kann einzelne Fehler enthalten;
            failed_count prüfen.
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
        status_display:
          type: string
          description: Anzeigebezeichnung für den Generierungsstatus.
        parameters:
          type: object
          description: >-
            Ursprüngliche Exportoptionen. Die Schlüssel hängen vom report_type
            ab.
          additionalProperties: true
        requested_by_user_id:
          type: string
          description: >-
            Identität des ursprünglichen Anfragenden oder null für Aufrufer ohne
            Benutzeridentität.
          format: uuid
          nullable: true
        requested_by_email:
          type: string
          description: E-Mail-Adresse des Anfragenden, sofern verfügbar.
          nullable: true
        requested_by_name:
          type: string
          description: Anzeigename des Anfragenden, sofern verfügbar.
          nullable: true
        row_count:
          type: integer
          description: Anzahl der exportierten Datensätze oder null vor der Generierung.
          nullable: true
        failed_item_ids:
          type: array
          description: >-
            Live-Sitzungs-UUIDs, die in diesem Verifizierungsexport
            fehlgeschlagen sind. Gelöschte Sitzungen sind ausgeschlossen.
            Verwenden Sie diese IDs für einen selektiven Wiederholungsversuch.
          items:
            type: string
            format: uuid
        failed_count:
          type: integer
          description: Anzahl der Einträge in failed_item_ids.
          minimum: 0
        file_size:
          type: integer
          description: >-
            Gesamtgröße der erzeugten Datei in Bytes oder null vor der
            Erzeugung.
          format: int64
          nullable: true
        files:
          type: array
          description: Metadaten der generierten Datei; enthält keine Download-URLs.
          items:
            $ref: '#/components/schemas/AsyncReportFile'
        scheduled_report:
          type: string
          description: Zeitplan-Kennung oder null bei einem nicht geplanten Bericht.
          format: uuid
          nullable: true
        error_message:
          type: string
          description: Fehler bei der Generierung, sofern verfügbar.
          nullable: true
        deletion_pending:
          type: boolean
          description: Ob eine angeforderte Löschung noch läuft.
        eta_seconds:
          type: integer
          description: >-
            Geschätzte Sekunden bis zum Abschluss für einen ausstehenden oder in
            Verarbeitung befindlichen Bericht; null ohne Verlauf oder wenn der
            Bericht fertig ist.
          nullable: true
        started_at:
          type: string
          description: Startzeitpunkt der Generierung.
          format: date-time
          nullable: true
        completed_at:
          type: string
          description: Zeitpunkt des Abschlusses der Generierung.
          format: date-time
          nullable: true
        expires_at:
          type: string
          description: Ablaufzeitpunkt des Berichts.
          format: date-time
        created_at:
          type: string
          description: Erstellungszeitpunkt.
          format: date-time
        updated_at:
          type: string
          description: Zeitpunkt der letzten Aktualisierung.
          format: date-time
      example:
        uuid: 00000000-0000-4000-8000-000000000002
        report_type: SESSION_EXPORT
        report_type_display: Verifications
        status: READY
        status_display: Ready
        parameters: {}
        requested_by_user_id: null
        requested_by_email: null
        requested_by_name: null
        row_count: 9
        failed_item_ids:
          - 00000000-0000-4000-8000-000000000001
        failed_count: 1
        file_size: 1200
        files:
          - name: verifications.csv
            format: csv
            rows: 9
            bytes: 1200
        scheduled_report: null
        error_message: null
        deletion_pending: false
        eta_seconds: null
        started_at: '2026-11-11T01:00:00Z'
        completed_at: '2026-11-11T01:01:00Z'
        expires_at: '2026-12-11T01:00:00Z'
        created_at: '2026-11-11T01:00:00Z'
        updated_at: '2026-11-11T01:01:00Z'
    RateLimitBudgetError:
      type: object
      description: >-
        Wird nur bei einer Ablehnung durch das Rate-Limit-Budget der Middleware
        zurückgegeben. Andere 429-Fehler, einschließlich Idempotenzkonflikten
        und endpunktspezifischer Obergrenzen, garantieren diese Metadatenfelder
        nicht.
      required:
        - detail
        - reference
        - limit
        - remaining
        - reset
        - window_seconds
      properties:
        detail:
          type: string
          description: Bestehende, für Menschen lesbare Meldung zur Budgetablehnung.
        reference:
          type: string
          pattern: ^RL-[0-9a-f]{32}$
          description: >-
            Opake Support-Referenz: RL- gefolgt von 32 hexadezimalen Zeichen der
            UUID in Kleinbuchstaben.
        limit:
          type: integer
          description: >-
            Budget für den überschrittenen Bereich; entspricht
            X-RateLimit-Limit.
        remaining:
          type: integer
          minimum: 0
          description: >-
            Verbleibendes Budget, auf null begrenzt. Entspricht
            X-RateLimit-Remaining.
        reset:
          type: integer
          format: int64
          description: >-
            Reset-Zeit des Zeitfensters in Unix-Sekunden; entspricht
            X-RateLimit-Reset.
        window_seconds:
          type: integer
          description: >-
            Dauer des festen Zeitfensters in Sekunden, nicht die verbleibende
            Wartezeit. Vor einem erneuten Versuch Retry-After beachten.
      example:
        detail: >-
          Write request rate limit exceeded. You can make up to 300 requests per
          minute.
        reference: RL-00000000000040008000000000000001
        limit: 300
        remaining: 0
        reset: 1794358860
        window_seconds: 60
    AsyncReportFile:
      type: object
      required:
        - name
        - format
        - rows
        - bytes
      properties:
        name:
          type: string
          description: Dateiname.
        format:
          type: string
          description: Dateiformat.
        rows:
          type: integer
          description: Exportierte Datensätze in dieser Datei, sofern zutreffend.
          nullable: true
        bytes:
          type: integer
          description: Dateigröße in Bytes.
          format: int64
  responses:
    RateLimitedRead:
      description: >-
        Lesebudget der Middleware überschritten. Beachten Sie Retry-After, bevor
        Sie es erneut versuchen.
      headers:
        Retry-After:
          $ref: '#/components/headers/BudgetRetryAfter'
        X-RateLimit-Scope:
          $ref: '#/components/headers/BudgetXRateLimitScope'
        X-RateLimit-Limit:
          $ref: '#/components/headers/BudgetXRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/BudgetXRateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/BudgetXRateLimitReset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitBudgetError'
          example:
            detail: >-
              GET request rate limit exceeded. You can make up to 600 requests
              per minute.
            reference: RL-00000000000040008000000000000001
            limit: 600
            remaining: 0
            reset: 1794358860
            window_seconds: 60
  headers:
    BudgetRetryAfter:
      description: >-
        Wartezeit in Sekunden, aufgerundet auf das nächste Zeitfenster.
        Vorhanden bei Ablehnungen durch das Middleware-Budget.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: >-
        Der Geltungsbereich, dessen Budget überschritten wurde. Vorhanden bei
        Ablehnungen durch das Middleware-Budget.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        Budget für den überschrittenen Bereich; entspricht dem Limit im Body.
        Vorhanden bei Ablehnungen durch das Middleware-Budget.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        Verbleibendes Budget, auf null begrenzt. Entspricht remaining im Body.
        Bei Ablehnungen durch das Middleware-Budget vorhanden.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        Reset-Zeit in Unix-Sekunden; entspricht dem Body-Feld reset. Vorhanden
        bei Ablehnungen durch das Middleware-Budget.
      schema:
        type: integer
  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.
    BearerAuth:
      type: http
      scheme: bearer
      description: Das Client-Credentials-Zugriffstoken der Anwendung.

````

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