> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API liste des workflows : flux de vérification

> Listez vos workflows KYC et KYB via l'API Didit. Gérez vos flux par programmation. Tarification à l'usage, sans engagement.



Prompt de l'API « Lister les workflows »
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`List every Didit workflow in my application through the Management API.

Endpoint:
GET https://verification.didit.me/v3/workflows/

Authentication:
Use the x-api-key header with my Didit API key.

Goal:
\- Retrieve every workflow (verification settings record) defined for the application bound to my API key.
\- Use the results to render a workflow picker, sync workflow ids into my config, or discover the workflow_id of a workflow created in the Console.

Behavior:
\- Results are returned newest first (ordered by -created_at).
\- The endpoint does not paginate today — every workflow record comes back in one response.
\- Each row is a single version of a workflow group. workflow_id is the stable identifier shared by every version, version is the integer version number, and status is "draft" or "published".
\- The workflow with is_default: true is used whenever a session is created without an explicit workflow_id.
\- is_editable: true means the row is a draft and can still be patched via PATCH /v3/workflows/{settings_uuid}/.
\- Filter client-side by is_archived and status if you maintain hundreds of workflows.

Example call:
curl -X GET "https://verification.didit.me/v3/workflows/" \
-H "x-api-key: YOUR_API_KEY"

What to do with the response:
\- Use settings_uuid as the path id for GET / PATCH / DELETE /v3/workflows/{settings_uuid}/.
\- Use workflow_id when creating a session via POST /v3/session/.

Failure modes:
\- 401 — missing or malformed x-api-key.
\- 403 — canonical { "detail": "You do not have permission to perform this action." } envelope when the API key cannot list workflows for this application.
\- 429 — rate limited; back off and retry using Retry-After.

Side effects: none. This is a pure read.

For the full integration shape (auth, retries, error handling), see /integration/integration-prompt.`

\</pre>



      
      

Coller dans



## OpenAPI

````yaml fr/openapi-25.json GET /v3/workflows/
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/workflows/:
    get:
      tags:
        - Workflows
      summary: Lister les workflows
      description: >-
        Lister vos workflows, les plus récents en premier, dans une enveloppe de
        pagination limit/offset (`{count, next, previous, results}`, taille de
        page par défaut 50). Chaque ligne correspond à une version ;
        `workflow_id` est l'identifiant de groupe stable et les nouvelles
        sessions utilisent la dernière version `published`.
      operationId: list_workflows
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
          description: Taille de page (nombre de workflows par page).
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
          description: Nombre de lignes à ignorer avant le premier workflow retourné.
      responses:
        '200':
          description: >-
            Une page de workflows triés par `created_at` décroissant, encapsulée
            dans l'enveloppe de pagination. Chaque élément de `results` est un
            `WorkflowListItem`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Nombre total de versions de workflow pour l'application.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: URL de la page suivante, ou `null` sur la dernière page.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: URL de la page précédente, ou `null` sur la première page.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkflowListItem'
              examples:
                Two workflows:
                  summary: >-
                    Un workflow KYC par défaut et un brouillon de workflow KYC +
                    AML
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - uuid: a1b2c3d4-5678-90ab-cdef-111111111111
                        workflow_id: a1b2c3d4-5678-90ab-cdef-111111111111
                        workflow_label: Standard KYC
                        workflow_type: kyc
                        is_default: true
                        is_archived: false
                        is_white_label_enabled: false
                        total_price: 0.15
                        min_price: 0.15
                        max_price: 0.15
                        features: OCR + LIVENESS + FACE_MATCH
                        is_simple_workflow: true
                        is_editable: false
                        workflow_url: https://verify.didit.me/u/_yljPOx8RWG3UAz5ZRQGVQ
                        max_retry_attempts: 3
                        retry_window_days: 7
                        session_expiration_time: 604800
                        version: 2
                        status: published
                        has_draft: false
                        created_by:
                          name: Alex Mateo
                          email: alex@example.com
                          type: user
                        updated_at: '2026-04-12T10:30:00Z'
                      - uuid: b2c3d4e5-6789-01bc-defa-222222222222
                        workflow_id: b2c3d4e5-6789-01bc-defa-222222222222
                        workflow_label: Full Verification + AML
                        workflow_type: kyc
                        is_default: false
                        is_archived: false
                        is_white_label_enabled: false
                        total_price: 0.25
                        min_price: 0.25
                        max_price: 0.25
                        features: OCR + LIVENESS + FACE_MATCH + AML
                        is_simple_workflow: true
                        is_editable: true
                        workflow_url: https://verify.didit.me/u/Aq3kPOx8RWG3UAz5ZRQGVQ
                        max_retry_attempts: 3
                        retry_window_days: 7
                        session_expiration_time: 604800
                        version: 1
                        status: draft
                        has_draft: true
                        created_by: null
                        updated_at: '2026-04-15T18:05:21Z'
        '403':
          description: >-
            La clé API est manquante, malformée, expirée ou appartient à une
            autre application. Corps : `{"detail": "You do not have permission
            to perform this action."}`. Actualisez le token via l'[API
            Auth](/fr/auth-api/get-credentials) et réessayez.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: >-
            Limite de débit dépassée. Réessayez avec une temporisation
            exponentielle et respectez tout en-tête `Retry-After`.
        '500':
          description: >-
            Erreur serveur inattendue lors de la construction de la liste. La
            requête peut être réessayée en toute sécurité.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl -X GET 'https://verification.didit.me/v3/workflows/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Accept: application/json'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.workflows.list():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            for await (const item of didit.workflows.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Workflows.ListAutoPaging(ctx, didit.WorkflowsListParams{})\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 client = new Didit();

            for (var item : client.workflows().list()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

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

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

            didit.workflows.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.
            using var client = new DiditClient();

            await foreach (var item in await client.Workflows.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    WorkflowListItem:
      type: object
      description: Une version de workflow dans la vue en liste.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            UUID par version. À utiliser comme `{settings_uuid}` pour la
            consultation, la mise à jour et la suppression, et comme
            `workflow_id` lors de la création de sessions.
        workflow_id:
          type: string
          format: uuid
          description: >-
            Identifiant de groupe stable partagé par toutes les versions d'un
            même workflow. Égal à `uuid` pour la version 1.
        workflow_label:
          type: string
          description: Nom d'affichage du workflow.
        workflow_type:
          type: string
          nullable: true
          description: >-
            Type de base pour les workflows simples : `kyc`, `kyb`,
            `adaptive_age_verification`, `biometric_authentication`, etc. `null`
            pour les workflows basés sur un graphe sans fonctionnalité KYB.
        is_default:
          type: boolean
          description: >-
            Indique s'il s'agit du workflow par défaut pour les nouvelles
            sessions.
        is_archived:
          type: boolean
        is_white_label_enabled:
          type: boolean
          description: >-
            Indique si la personnalisation en marque blanche s'applique aux
            sessions créées avec ce workflow.
        total_price:
          type: number
          description: >-
            Prix fixe par vérification en USD (nombre JSON, exclut les
            fonctionnalités à tarification variable telles que
            DATABASE_VALIDATION et PHONE_VERIFICATION).
        min_price:
          type: number
          description: >-
            Prix fixe le moins cher parmi les chemins du graphe de workflow, en
            USD.
        max_price:
          type: number
          description: >-
            Prix fixe le plus élevé parmi les chemins du graphe de workflow, en
            USD.
        features:
          type: string
          description: >-
            Fonctionnalités activées sous forme d'une chaîne unique jointe par
            `" + "`, par ex. `"OCR + LIVENESS + FACE_MATCH"`. Séparez la chaîne
            selon `" + "` pour obtenir une liste.
        is_simple_workflow:
          type: boolean
          description: >-
            Vrai lorsque le workflow ne dispose pas de graphe de workflow
            personnalisé.
        is_editable:
          type: boolean
          description: >-
            Vrai lorsque cette version est un `draft` (les brouillons sont
            modifiables directement ; les versions publiées sont immuables dans
            la Console).
        workflow_url:
          type: string
          format: uri
          description: >-
            URL de vérification publique et partageable pour ce workflow
            (`https://verify.didit.me/u/<token>`).
        max_retry_attempts:
          type: integer
          description: >-
            Nombre maximal de tentatives de réessai autorisées après une
            vérification refusée (0-10).
        retry_window_days:
          type: integer
          nullable: true
          description: >-
            Fenêtre glissante en jours utilisée pour compter les nouvelles
            tentatives (1-365). `null` = limite globale depuis le début.
        session_expiration_time:
          type: integer
          description: Secondes avant l'expiration d'une session inachevée (3600-2419200).
        version:
          type: integer
          description: Numéro de version au sein du groupe `workflow_id`, commençant à 1.
        status:
          type: string
          enum:
            - draft
            - published
          description: >-
            Statut de la version. Les nouvelles sessions utilisent la dernière
            version `published` d'un groupe.
        has_draft:
          type: boolean
          description: >-
            Vrai lorsqu'une version de ce groupe `workflow_id` est actuellement
            un brouillon.
        created_by:
          type: object
          nullable: true
          description: >-
            Qui a créé cette version : `{name, email, type}` où `type` est
            `user` (utilisateur de la Console, `email` renseigné) ou `api_key`
            (`name` est l'identifiant client, `email` est null). `null`
            lorsqu'aucun créateur n'a été enregistré.
          properties:
            name:
              type: string
            email:
              type: string
              nullable: true
            type:
              type: string
              enum:
                - user
                - api_key
        updated_at:
          type: string
          format: date-time
  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.

````

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