> ## 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: 인증 플로우 관리

> Didit 조직의 모든 KYC 및 KYB 워크플로를 조회하세요. 인증 플로우를 프로그래밍 방식으로 관리할 수 있습니다. 사용량 기반 요금, 계약 불필요.



워크플로 목록 API 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<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>



      
      

붙여넣을 곳



## OpenAPI

````yaml ko/openapi-25.json GET /v3/workflows/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 신분증 인증 API입니다. x-api-key 헤더로 인증합니다.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/workflows/:
    get:
      tags:
        - Workflows
      summary: 워크플로 목록 조회
      description: >-
        워크플로 목록을 최신순으로 limit/offset 페이지네이션 응답 형식(`{count, next, previous,
        results}`, 기본 페이지 크기 50)으로 조회합니다. 각 행은 하나의 버전입니다. `workflow_id`는 고정 그룹
        ID이며 새 세션은 최신 `published` 버전을 사용합니다.
      operationId: list_workflows
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
          description: 페이지 크기(페이지당 워크플로 수)입니다.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
          description: 반환되는 첫 번째 워크플로 전에 건너뛸 행 수입니다.
      responses:
        '200':
          description: >-
            `created_at` 내림차순으로 정렬되어 페이지네이션 엔벨로프에 래핑된 워크플로 페이지 하나입니다. `results`의
            각 항목은 `WorkflowListItem`입니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: 해당 애플리케이션의 총 워크플로 버전 수입니다.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: 다음 페이지의 URL이며, 마지막 페이지에서는 `null`입니다.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: 이전 페이지의 URL이며, 첫 번째 페이지에서는 `null`입니다.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkflowListItem'
              examples:
                Two workflows:
                  summary: 기본 KYC 워크플로 및 초안 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: >-
            API 키가 누락되었거나, 형식이 잘못되었거나, 만료되었거나, 다른 애플리케이션에 속해 있습니다. 본문:
            `{"detail": "You do not have permission to perform this action."}`.
            [Auth API](/ko/auth-api/get-credentials)를 통해 토큰을 갱신하고 다시 시도해 주세요.
          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: 속도 제한을 초과했습니다. 지수 백오프로 재시도하고 `Retry-After` 헤더가 있는 경우 이를 준수하세요.
        '500':
          description: 목록을 생성하는 동안 예기치 않은 서버 오류가 발생했습니다. 요청을 안전하게 재시도할 수 있습니다.
      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: 목록 보기에 표시되는 워크플로 버전 1개입니다.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            버전별 UUID입니다. 조회/업데이트/삭제 시 `{settings_uuid}`로 사용하고, 세션 생성 시
            `workflow_id`로 사용합니다.
        workflow_id:
          type: string
          format: uuid
          description: 동일한 워크플로의 모든 버전에서 공유되는 안정적인 그룹 ID입니다. 버전 1의 경우 `uuid`와 동일합니다.
        workflow_label:
          type: string
          description: 워크플로의 표시 이름입니다.
        workflow_type:
          type: string
          nullable: true
          description: >-
            단순 워크플로의 기본 유형: `kyc`, `kyb`, `adaptive_age_verification`,
            `biometric_authentication` 등. KYB 기능이 없는 그래프 기반 워크플로의 경우 `null`입니다.
        is_default:
          type: boolean
          description: 이 워크플로가 새 세션의 기본 워크플로인지 여부입니다.
        is_archived:
          type: boolean
        is_white_label_enabled:
          type: boolean
          description: 이 워크플로로 생성된 세션에 화이트 라벨 맞춤 설정이 적용되는지 여부입니다.
        total_price:
          type: number
          description: >-
            인증 건당 고정 가격(USD 단위, JSON 숫자, DATABASE_VALIDATION 및
            PHONE_VERIFICATION과 같이 변동 가격이 적용되는 기능 제외).
        min_price:
          type: number
          description: 워크플로 그래프 경로 전체에서 가장 저렴한 고정 가격(USD)입니다.
        max_price:
          type: number
          description: 워크플로 그래프 경로 전체에서 가장 비싼 고정 가격(USD).
        features:
          type: string
          description: >-
            활성화된 기능을 `" + "`로 연결한 단일 문자열입니다(예: `"OCR + LIVENESS + FACE_MATCH"`).
            목록으로 가져오려면 `" + "` 기준으로 분할하세요.
        is_simple_workflow:
          type: boolean
          description: 워크플로에 커스텀 워크플로 그래프가 없는 경우 true입니다.
        is_editable:
          type: boolean
          description: >-
            이 버전이 `draft`인 경우 true입니다(초안은 해당 위치에서 편집 가능하며, 게시된 버전은 Console에서 변경할
            수 없음).
        workflow_url:
          type: string
          format: uri
          description: 이 워크플로의 공개 공유 가능 인증 URL(`https://verify.didit.me/u/<token>`)입니다.
        max_retry_attempts:
          type: integer
          description: 거부된 인증 후 허용되는 최대 재시도 횟수(0-10).
        retry_window_days:
          type: integer
          nullable: true
          description: 재시도 횟수를 계산하는 데 사용되는 롤링 윈도우 일수(1-365). `null` = 전체 기간 제한.
        session_expiration_time:
          type: integer
          description: 완료되지 않은 세션이 만료되기까지 남은 시간(초)(3600-2419200).
        version:
          type: integer
          description: '`workflow_id` 그룹 내의 버전 번호로, 1부터 시작합니다.'
        status:
          type: string
          enum:
            - draft
            - published
          description: 버전 상태입니다. 새 세션은 그룹의 최신 `published` 버전을 사용합니다.
        has_draft:
          type: boolean
          description: 이 `workflow_id` 그룹의 임의 버전이 현재 초안인 경우 true입니다.
        created_by:
          type: object
          nullable: true
          description: >-
            이 버전을 생성한 주체: `{name, email, type}` 형식이며 여기서 `type`은 `user`(콘솔 사용자,
            `email` 설정됨) 또는 `api_key`(`name`은 클라이언트 ID, `email`은 null)입니다. 생성자가
            기록되지 않은 경우 `null`입니다.
          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: >-
        Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본
        키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며
        특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나
        만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된
        IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를
        벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write
        권한이 없는 키는 세션 링크와 token을 null로 수신합니다.
        https://docs.didit.me/console/api-keys 를 참고하십시오.

````

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