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

# Lister les rapports d'export asynchrones API

> Listez les rapports d'export asynchrones Didit, filtrez par type ou statut, consultez les échecs, avec permissions par application et pagination.

L'API Reports asynchrone de Didit liste les tâches d'export que vous pouvez consulter, de la plus récente à la plus ancienne. Utilisez `failed_count` et `failed_item_ids` pour repérer les exports de vérification comportant des échecs individuels.

Consultez le [guide sur l'export et les nouvelles tentatives](https://docs.didit.me/fr/console/export-pdf-csv.md#réessayer-les-éléments-ayant-échoué-lors-de-l’export), la page [pour récupérer un rapport](https://docs.didit.me/fr/management-api/reports/retrieve.md) ou la page [pour réessayer un export](https://docs.didit.me/fr/management-api/reports/retry.md).


## OpenAPI

````yaml fr/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 de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/reports/:
    get:
      tags:
        - Reports
      summary: Lister les rapports asynchrones
      description: >-
        Requiert des autorisations de lecture pour chaque ressource couverte par
        le rapport. Les identifiants d'application ou de clé API doivent
        appartenir à l'application figurant dans le chemin. Les tokens Bearer de
        membre doivent avoir accès à l'application. Renvoie les rapports
        lisibles, du plus récent au plus ancien. Ces tâches d'exportation
        asynchrones sont distinctes de l'API Regulatory Reports. Voir [Exporter
        les données de
        vérification](https://docs.didit.me/fr/console/export-pdf-csv).
      operationId: list_reports
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identifiant de l'organisation.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identifiant de l'application.
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
          description: Nombre maximal de résultats par page.
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
          description: Nombre de résultats à ignorer.
        - name: status
          in: query
          schema:
            type: string
          description: >-
            Valeurs status séparées par des virgules ou répétées : PENDING,
            PROCESSING, READY, FAILED.
        - name: report_type
          in: query
          schema:
            type: string
          description: Valeurs report_type séparées par des virgules ou répétées.
        - name: q
          in: query
          schema:
            type: string
          description: >-
            Recherche par fragment d'identifiant de rapport ou par nom ou e-mail
            du demandeur (255 caractères maximum).
      responses:
        '200':
          description: Liste les rapports asynchrones.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReportList'
        '400':
          description: Valeur invalide pour status, report_type ou le filtre de recherche.
        '401':
          description: Identifiants manquants, invalides ou expirés.
        '403':
          description: >-
            L'appelant n'a pas accès à cette application ou ne dispose pas des
            autorisations requises.
        '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: >-
            Nombre de résultats, généralement plafonné à 100 ; peut être estimé.
            Suivez next plutôt que count pour arrêter la pagination.
        next:
          type: string
          description: URL de la page suivante, ou null.
          nullable: true
        previous:
          type: string
          description: URL de la page précédente, ou null.
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/AsyncReport'
        counts:
          type: object
          required:
            - report_type
            - status
          description: >-
            Nombre de tous les rapports que l'appelant peut lire, avant
            application des filtres de liste.
          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: Identifiant du rapport.
          format: uuid
        report_type:
          type: string
          description: Type d'export ou de rapport de conformité.
          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: Libellé affiché pour le type de rapport.
        status:
          type: string
          description: >-
            État de génération. READY peut inclure des échecs individuels ;
            vérifiez failed_count.
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
        status_display:
          type: string
          description: Libellé affiché pour l'état de génération.
        parameters:
          type: object
          description: Options d'export d'origine ; les clés dépendent de report_type.
          additionalProperties: true
        requested_by_user_id:
          type: string
          description: >-
            Identité du demandeur d'origine, ou null pour les appelants sans
            identité d'utilisateur.
          format: uuid
          nullable: true
        requested_by_email:
          type: string
          description: E-mail du demandeur, lorsqu'il est disponible.
          nullable: true
        requested_by_name:
          type: string
          description: Nom d'affichage du demandeur, lorsqu'il est disponible.
          nullable: true
        row_count:
          type: integer
          description: Nombre d'enregistrements exportés, ou null avant la génération.
          nullable: true
        failed_item_ids:
          type: array
          description: >-
            UUID des sessions en production ayant échoué dans cet export de
            vérification. Les sessions supprimées sont exclues. Utilisez ces
            identifiants pour une nouvelle tentative sélective.
          items:
            type: string
            format: uuid
        failed_count:
          type: integer
          description: Nombre d'entrées dans failed_item_ids.
          minimum: 0
        file_size:
          type: integer
          description: >-
            Taille totale du fichier généré en octets, ou null avant la
            génération.
          format: int64
          nullable: true
        files:
          type: array
          description: >-
            Métadonnées du fichier généré ; ne contient pas d'URL de
            téléchargement.
          items:
            $ref: '#/components/schemas/AsyncReportFile'
        scheduled_report:
          type: string
          description: >-
            Identifiant de la planification, ou null pour un rapport non
            planifié.
          format: uuid
          nullable: true
        error_message:
          type: string
          description: Erreur de génération, le cas échéant.
          nullable: true
        deletion_pending:
          type: boolean
          description: Indique si une suppression demandée est encore en cours.
        eta_seconds:
          type: integer
          description: >-
            Durée estimée en secondes avant la fin de la génération d'un rapport
            en attente ou en cours de traitement ; null sans historique ou une
            fois le rapport terminé.
          nullable: true
        started_at:
          type: string
          description: Heure de début de génération.
          format: date-time
          nullable: true
        completed_at:
          type: string
          description: Heure de fin de génération.
          format: date-time
          nullable: true
        expires_at:
          type: string
          description: Date d'expiration du rapport.
          format: date-time
        created_at:
          type: string
          description: Heure de création.
          format: date-time
        updated_at:
          type: string
          description: Heure de la dernière mise à jour.
          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: >-
        Renvoyé uniquement pour un refus de quota du middleware lié à la limite
        de débit. Les autres erreurs 429, y compris les conflits d'idempotence
        et les plafonds propres à chaque endpoint, ne garantissent pas ces
        champs de métadonnées.
      required:
        - detail
        - reference
        - limit
        - remaining
        - reset
        - window_seconds
      properties:
        detail:
          type: string
          description: Message lisible de refus de budget existant.
        reference:
          type: string
          pattern: ^RL-[0-9a-f]{32}$
          description: "Référence de support opaque\_: RL- suivi de 32 caractères hexadécimaux minuscules d'un UUID."
        limit:
          type: integer
          description: Budget du périmètre dépassé ; égal à X-RateLimit-Limit.
        remaining:
          type: integer
          minimum: 0
          description: Budget restant, ramené à zéro ; égal à X-RateLimit-Remaining.
        reset:
          type: integer
          format: int64
          description: >-
            Heure de réinitialisation de la fenêtre en secondes Unix ; égale à
            X-RateLimit-Reset.
        window_seconds:
          type: integer
          description: >-
            Durée de la fenêtre fixe en secondes, et non le temps d'attente
            restant. Respectez Retry-After avant de réessayer.
      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: Nom du fichier.
        format:
          type: string
          description: Format du fichier.
        rows:
          type: integer
          description: Enregistrements exportés dans ce fichier, le cas échéant.
          nullable: true
        bytes:
          type: integer
          description: Taille du fichier en octets.
          format: int64
  responses:
    RateLimitedRead:
      description: >-
        Dépassement du budget de lecture du middleware. Respectez Retry-After
        avant de réessayer.
      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: >-
        Nombre de secondes à attendre, arrondi à la fenêtre suivante. Présent
        sur les refus liés au quota du middleware.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: >-
        Le périmètre dont le quota a été dépassé. Présent sur les refus liés au
        quota du middleware.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        Budget du périmètre dépassé ; égal à la limite du corps. Présent sur les
        refus de budget du middleware.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        Budget restant, ramené à zéro ; égal à remaining du corps. Présent lors
        des refus liés au budget du middleware.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        Heure de réinitialisation en secondes Unix ; égale à reset dans le
        corps. Présent sur les refus liés au quota du middleware.
      schema:
        type: integer
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: Le token d'accès client-credentials de l'application.

````

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