> ## 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 Management API로 상태, 우선순위, 출처, 블루프린트, 담당자, 태그, 마감일별 컴플라이언스 케이스를 조회하고, 주제·태그·연결된 엔티티를 전문 검색할 수 있습니다.



케이스 목록 API 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\`List compliance cases for my Didit application through the Management API.

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

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

Goal:
\- Retrieve cases with the same filtering the Console's Cases list offers: status, priority, source, blueprint, assignee, tag, created-date range, due-before, and overdue. Paginated with limit/offset.

Useful query params:
\- status__in=OPEN,AWAITING_USER,RESOLVED (comma-separated)
\- priority=LOW,MEDIUM,HIGH (comma-separated)
\- source__in=MANUAL,AML_SCREENING,TRANSACTION_RULE,WORKFLOW_BUILDER
\- blueprint=<uuid>, assigned_to=<uuid>, unassigned=true|false, tag=<string>
\- search=<string> - matches title, case_number, tag, subject name/UUID/external ID, linked session UUID, linked transaction UUID
\- date_from=YYYY-MM-DD, date_to=YYYY-MM-DD (created_at range), due_before=<ISO datetime>, overdue=true
\- ordering=created_at|-created_at|due_at|-due_at (default -created_at)

Example call:
curl -X GET "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/?status__in=OPEN,AWAITING_USER&ordering=-due_at" \
-H "x-api-key: YOUR_API_KEY"

Response shape:
\{"count": int, "next": url|null, "previous": url|null, "results": [CaseListItem, ...]}
count is exact up to 100 and capped at 100 beyond that for performance - rely on next being null to detect the last page, never on count.
Each CaseListItem has uuid, case_number, title, status, resolution, pending_resolution (set only while a 4-eyes resolution is staged), checker {member_uuid, name, email}, priority, source, tags, subject {type, uuid, name, external_id, country, portrait}, assigned_to {uuid, full_name, email}, team {uuid, name}, blueprint {uuid, name}, links_count, notes_count, due_at, resolved_at, created_at, updated_at.
\- subject.country - ISO 3166-1 alpha-3 code, or null when unknown. A business: its country of incorporation. A person: the issuing country of one of their identity documents.
\- subject.portrait - short-lived signed URL of the person's portrait, or null. Always null for a business. Download the image when you read it; do not store the URL.
\- team - the review team that owns the case, or null.
\- checker - the member named to approve a pending four-eyes resolution, or null. Set only while a resolution waits on a named checker; name is null when unknown.

Failure modes:
\- 401 - missing or malformed x-api-key.
\- 403 - a key with restricted access gets {"detail": "This API key has no access to this endpoint."} (cases need a full-access key). A console member token needs list:cases.

Side effects: none, pure read.

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

\</pre>



      
      

붙여넣을 곳

애플리케이션의 케이스를 나열합니다. 기본적으로 최신순으로 표시됩니다. 콘솔의 케이스 목록에서 사용할 수 있는 모든 필터와 정렬 옵션은 쿼리 파라미터로 제공됩니다. 여기에는 주체, 태그, 케이스 번호, 연결된 세션 또는 거래 ID를 대상으로 하는 전체 텍스트 검색 `search`가 포함됩니다.각 케이스에는 케이스를 소유한 `team`, 보류 중인 2인 승인 절차의 지정된 `checker`, 그리고 주체의 `country`와 `portrait`도 포함됩니다.## 액세스케이스 endpoint에는 전체 액세스 권한이 있는 [API 키](https://docs.didit.me/ko/console/api-keys.md)가 필요합니다.
제한된 액세스 권한이 있는 키는 `403`을 받습니다.## 관련 문서- [케이스 생성](https://docs.didit.me/ko/management-api/cases/create.md)
- [케이스 업데이트](https://docs.didit.me/ko/management-api/cases/update.md)
- [케이스 분석](https://docs.didit.me/ko/management-api/cases/statistics.md)
- [케이스(콘솔)](https://docs.didit.me/ko/console/case-management/cases.md)


## OpenAPI

````yaml ko/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/
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/organization/{organization_id}/application/{application_id}/cases/:
    get:
      tags:
        - Cases
      summary: 케이스 목록 조회
      description: >-
        애플리케이션의 케이스 목록을 최신순으로 조회합니다. 필터링, 검색, 정렬을 지원하며 쿼리 파라미터를 참고하십시오.
        `limit`/`offset`을 사용한 페이지네이션이 적용됩니다.
      operationId: list_cases
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: 조직 UUID입니다.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: 애플리케이션 UUID입니다.
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
          description: 페이지 크기입니다. 기본값은 50입니다.
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
          description: 첫 번째 레코드의 0부터 시작하는 오프셋입니다.
        - name: status__in
          in: query
          schema:
            type: string
          description: '포함할 쉼표로 구분된 상태입니다(예: OPEN,AWAITING_USER).'
        - name: priority
          in: query
          schema:
            type: string
          description: 포함할 쉼표로 구분된 우선순위입니다.
        - name: source__in
          in: query
          schema:
            type: string
          description: 포함할 쉼표로 구분된 소스입니다.
        - name: blueprint
          in: query
          schema:
            type: string
            format: uuid
          description: 이 블루프린트의 케이스로 필터링합니다.
        - name: assigned_to
          in: query
          schema:
            type: string
            format: uuid
          description: 이 사용자에게 배정된 케이스로 필터링합니다.
        - name: unassigned
          in: query
          schema:
            type: boolean
          description: 할당되지 않은 케이스의 경우 true, 할당된 케이스의 경우 false입니다.
        - name: tag
          in: query
          schema:
            type: string
          description: 이 정확한 태그가 지정된 케이스로 필터링합니다.
        - name: search
          in: query
          schema:
            type: string
          description: >-
            제목, case_number, 태그, 대상자 성명/UUID/외부 ID, 연결된 세션 UUID 또는 연결된 거래 UUID와
            일치합니다.
        - name: date_from
          in: query
          schema:
            type: string
            format: date
          description: 생성 일시 하한값(해당 값 포함).
        - name: date_to
          in: query
          schema:
            type: string
            format: date
          description: 생성 일시 상한값(해당 값 포함).
        - name: due_before
          in: query
          schema:
            type: string
            format: date-time
          description: due_at 상한값입니다.
        - name: overdue
          in: query
          schema:
            type: boolean
          description: 기한이 지난 open/awaiting-user 케이스만 반환하려면 true입니다.
        - name: ordering
          in: query
          schema:
            type: string
            enum:
              - created_at
              - '-created_at'
              - due_at
              - '-due_at'
            default: '-created_at'
          description: 정렬 순서입니다. due_at은 null 값을 마지막으로 정렬합니다.
      responses:
        '200':
          description: 페이지 단위로 제공되는 케이스 목록입니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: >-
                      일치하는 행의 수입니다. 최대 100개까지는 정확하며, 성능상의 이유로 100개를 초과하면 100으로
                      제한됩니다. 마지막 페이지를 감지하려면 `next`가 null인지 확인하십시오.
                  next:
                    type: string
                    nullable: true
                    description: 다음 페이지의 절대 URL이거나 null입니다.
                  previous:
                    type: string
                    nullable: true
                    description: 이전 페이지의 절대 URL이거나 null입니다.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/CaseListItem'
      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/cases/?status__in=OPEN,AWAITING_USER&ordering=-due_at'
            \
              -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()

            for item in client.cases.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.cases.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.Cases.ListAutoPaging(ctx, didit.CasesListParams{})\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.cases().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->cases->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.cases.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.Cases.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    CaseListItem:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        case_number:
          type: string
          nullable: true
          description: '자동 할당됨(예: CS-0001).'
        title:
          type: string
        status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
        resolution:
          type: string
          enum:
            - FALSE_POSITIVE
            - VALID_THREAT
            - INCONCLUSIVE
            - REQUIREMENTS_NOT_MET
            - REQUIREMENTS_SATISFIED
          nullable: true
        pending_resolution:
          type: object
          nullable: true
          description: 체커 블루프린트에서 승인 또는 거부 승인을 기다리며 4-eyes 해결 절차가 스테이징되는 동안에만 설정됩니다.
          properties:
            resolution:
              type: string
              enum:
                - FALSE_POSITIVE
                - VALID_THREAT
                - INCONCLUSIVE
                - REQUIREMENTS_NOT_MET
                - REQUIREMENTS_SATISFIED
            resolution_notes:
              type: string
              nullable: true
            maker_email:
              type: string
              format: email
              nullable: true
              description: >-
                결정을 제출한 담당자의 이메일입니다. API 키로 제출한 경우 null입니다. 해당 결정에는 기록된 작성자가
                없으므로 모든 호출자에 대해 승인 및 승인 거부가 403을 반환합니다.
            maker_name:
              type: string
              nullable: true
            maker_user_id:
              type: string
              format: uuid
              nullable: true
              description: >-
                해결 조치를 제출한 담당자의 멤버 사용자 uuid입니다. API 키가 제출한 경우 null입니다. 해당 멤버는
                `checker`로 지정될 수 없습니다.
            maker_blueprint_id:
              type: string
              format: uuid
            staged_at:
              type: string
              format: date-time
        checker:
          $ref: '#/components/schemas/CaseChecker'
        priority:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
        source:
          type: string
          enum:
            - MANUAL
            - AML_SCREENING
            - TRANSACTION_RULE
            - WORKFLOW_BUILDER
        tags:
          type: array
          items:
            type: string
        subject:
          $ref: '#/components/schemas/CaseSubject'
        assigned_to:
          $ref: '#/components/schemas/CaseAssignee'
        assigned_at:
          type: string
          format: date-time
          nullable: true
        team:
          $ref: '#/components/schemas/CaseTeamSummary'
        due_at:
          type: string
          format: date-time
          nullable: true
        resolved_at:
          type: string
          format: date-time
          nullable: true
        created_by_email:
          type: string
          nullable: true
        created_by_name:
          type: string
          nullable: true
        blueprint:
          $ref: '#/components/schemas/CaseBlueprintSummary'
        links_count:
          type: integer
        notes_count:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        application_id:
          type: string
          format: uuid
        application_name:
          type: string
        organization_id:
          type: string
          format: uuid
        organization_name:
          type: string
    CaseChecker:
      type: object
      nullable: true
      description: >-
        대기 중인 결정을 승인하거나 거부하도록 지정된 멤버입니다. 4인 승인 결정이 지정된 검토자를 기다리는 동안에만 설정됩니다. 대기
        중인 항목이 없거나, 대기 중인 결정이 검토자 대기열에서 대기 중이거나, 증거가 변경되어 결정이 승인, 거부 또는 새로운 검토를
        위해 반환된 경우에는 null입니다.
      properties:
        member_uuid:
          type: string
          format: uuid
          description: 멤버의 사용자 uuid입니다. 케이스를 해결할 때 `checker`로 전달하는 값입니다.
        name:
          type: string
          nullable: true
          description: 멤버의 성명이며, 알 수 없는 경우 null입니다.
        email:
          type: string
          format: email
    CaseSubject:
      type: object
      nullable: true
      description: 케이스가 연결된 단일 사용자 또는 기업입니다.
      properties:
        type:
          type: string
          enum:
            - user
            - business
        uuid:
          type: string
          format: uuid
        name:
          type: string
        external_id:
          type: string
          nullable: true
          description: 대상자의 vendor_data입니다.
        country:
          type: string
          nullable: true
          description: >-
            주체의 3자리 국가 코드(ISO 3166-1 alpha-3)이며, 알 수 없는 경우 null입니다. 기업의 경우 법인 설립
            국가입니다. 개인의 경우 인증에서 확인된 신분증의 발급 국가입니다. 여러 국가의 신분증을 보유한 개인은 그중 하나가
            표시되며, `XXA`와 같은 ICAO 문서 코드가 나타날 수 있습니다.
          example: ESP
        portrait:
          type: string
          format: uri
          nullable: true
          description: >-
            해당 인물의 인물 사진 이미지에 대한 유효 기간이 짧은 서명된 URL입니다. 기업의 경우 항상 null이며, 인물 사진이
            없는 개인의 경우에도 null입니다. URL이 만료되므로 URL을 저장하지 말고 케이스를 조회할 때 이미지를
            다운로드하세요.
    CaseAssignee:
      type: object
      nullable: true
      properties:
        uuid:
          type: string
          format: uuid
        full_name:
          type: string
        email:
          type: string
          format: email
    CaseTeamSummary:
      type: object
      nullable: true
      description: >-
        케이스를 소유한 검토 팀이거나, 소유한 팀이 없는 경우 null입니다. 라우팅 규칙이 케이스를 해당 팀 중 하나에 배정할 때
        라우팅에 의해 설정됩니다. `PATCH .../cases/{case_uuid}/`(`team`)로 변경하거나 비울 수 있습니다.
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
    CaseBlueprintSummary:
      type: object
      nullable: true
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
          maxLength: 24
  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.