curl -X GET 'https://verification.didit.me/v3/users/?limit=50' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
for item in client.users.list():
print(item)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
for await (const item of didit.users.list()) {
console.log(item);
}ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
iter := client.Users.ListAutoPaging(ctx, didit.UsersListParams{})
for iter.Next() {
fmt.Printf("%+v\n", iter.Current())
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
for (var item : client.users().list()) {
System.out.println(item);
}<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
foreach ($didit->users->list() as $item) {
print_r($item->toArray());
}require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.users.list.auto_paging_each do |item|
puts item.to_h
endusing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
await foreach (var item in await client.Users.ListAsync())
{
Console.WriteLine(JsonSerializer.Serialize(item));
}{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"didit_internal_id": "f4e5e1f2-94a9-4f86-8c16-2b7d9b4db418",
"vendor_data": "user-abc-123",
"display_name": null,
"full_name": "John Michael Doe",
"date_of_birth": "1990-05-15",
"effective_name": "John Michael Doe",
"status": "ACTIVE",
"portrait_image_url": "https://<media-host>/...",
"session_count": 3,
"approved_count": 2,
"declined_count": 0,
"in_review_count": 1,
"issuing_states": [
"USA"
],
"approved_emails": [
"john@example.com"
],
"approved_phones": [
"+14155551234"
],
"features": {
"ID_VERIFICATION": "Approved",
"LIVENESS": "Approved",
"FACE_MATCH": "Approved",
"AML": "Approved"
},
"features_list": [
{
"feature": "ID_VERIFICATION",
"status": "Approved"
},
{
"feature": "LIVENESS",
"status": "Approved"
},
{
"feature": "FACE_MATCH",
"status": "Approved"
},
{
"feature": "AML",
"status": "Approved"
}
],
"last_session_at": "2025-06-15T10:30:00Z",
"last_activity_at": "2025-06-15T10:30:00Z",
"first_session_at": "2025-06-01T08:00:00Z",
"tags": [
{
"uuid": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "VIP",
"color": "#2567FF"
}
],
"created_at": "2025-06-01T08:00:00Z"
},
{
"didit_internal_id": "6ed99d53-e8f5-4cf8-9ac1-4a506cb40f6b",
"vendor_data": null,
"display_name": "Jane S.",
"full_name": "Jane Elizabeth Smith",
"date_of_birth": "1985-11-22",
"effective_name": "Jane S.",
"status": "FLAGGED",
"portrait_image_url": null,
"session_count": 1,
"approved_count": 0,
"declined_count": 0,
"in_review_count": 1,
"issuing_states": [],
"approved_emails": [],
"approved_phones": [],
"features": {
"ID_VERIFICATION": "In Review"
},
"features_list": [
{
"feature": "ID_VERIFICATION",
"status": "In Review"
}
],
"last_session_at": "2025-06-20T14:00:00Z",
"last_activity_at": "2025-06-20T14:05:00Z",
"first_session_at": "2025-06-20T14:00:00Z",
"tags": [],
"created_at": "2025-06-20T14:00:00Z"
}
]
}{
"detail": "You must be authenticated with a valid access token to access this endpoint."
}{
"detail": "You do not have permission to perform this action."
}{
"detail": "Request was throttled. Expected available in 30 seconds."
}사용자 목록 API: 벤더 사용자 엔티티 조회
Didit 애플리케이션의 벤더 사용자 엔티티를 모두 조회합니다. 상태, 검색, 날짜 필터를 지원하며 사용자 수명 주기를 프로그래밍 방식으로 관리할 수 있습니다.
curl -X GET 'https://verification.didit.me/v3/users/?limit=50' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
for item in client.users.list():
print(item)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
for await (const item of didit.users.list()) {
console.log(item);
}ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
iter := client.Users.ListAutoPaging(ctx, didit.UsersListParams{})
for iter.Next() {
fmt.Printf("%+v\n", iter.Current())
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
for (var item : client.users().list()) {
System.out.println(item);
}<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
foreach ($didit->users->list() as $item) {
print_r($item->toArray());
}require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.users.list.auto_paging_each do |item|
puts item.to_h
endusing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
await foreach (var item in await client.Users.ListAsync())
{
Console.WriteLine(JsonSerializer.Serialize(item));
}{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"didit_internal_id": "f4e5e1f2-94a9-4f86-8c16-2b7d9b4db418",
"vendor_data": "user-abc-123",
"display_name": null,
"full_name": "John Michael Doe",
"date_of_birth": "1990-05-15",
"effective_name": "John Michael Doe",
"status": "ACTIVE",
"portrait_image_url": "https://<media-host>/...",
"session_count": 3,
"approved_count": 2,
"declined_count": 0,
"in_review_count": 1,
"issuing_states": [
"USA"
],
"approved_emails": [
"john@example.com"
],
"approved_phones": [
"+14155551234"
],
"features": {
"ID_VERIFICATION": "Approved",
"LIVENESS": "Approved",
"FACE_MATCH": "Approved",
"AML": "Approved"
},
"features_list": [
{
"feature": "ID_VERIFICATION",
"status": "Approved"
},
{
"feature": "LIVENESS",
"status": "Approved"
},
{
"feature": "FACE_MATCH",
"status": "Approved"
},
{
"feature": "AML",
"status": "Approved"
}
],
"last_session_at": "2025-06-15T10:30:00Z",
"last_activity_at": "2025-06-15T10:30:00Z",
"first_session_at": "2025-06-01T08:00:00Z",
"tags": [
{
"uuid": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"name": "VIP",
"color": "#2567FF"
}
],
"created_at": "2025-06-01T08:00:00Z"
},
{
"didit_internal_id": "6ed99d53-e8f5-4cf8-9ac1-4a506cb40f6b",
"vendor_data": null,
"display_name": "Jane S.",
"full_name": "Jane Elizabeth Smith",
"date_of_birth": "1985-11-22",
"effective_name": "Jane S.",
"status": "FLAGGED",
"portrait_image_url": null,
"session_count": 1,
"approved_count": 0,
"declined_count": 0,
"in_review_count": 1,
"issuing_states": [],
"approved_emails": [],
"approved_phones": [],
"features": {
"ID_VERIFICATION": "In Review"
},
"features_list": [
{
"feature": "ID_VERIFICATION",
"status": "In Review"
}
],
"last_session_at": "2025-06-20T14:00:00Z",
"last_activity_at": "2025-06-20T14:05:00Z",
"first_session_at": "2025-06-20T14:00:00Z",
"tags": [],
"created_at": "2025-06-20T14:00:00Z"
}
]
}{
"detail": "You must be authenticated with a valid access token to access this endpoint."
}{
"detail": "You do not have permission to perform this action."
}{
"detail": "Request was throttled. Expected available in 30 seconds."
}개요
인증된 애플리케이션의 사용자 엔터티 목록을 페이지 단위로 반환합니다. 사용자를 웨어하우스에 동기화하거나, 분석가의 확인이 필요한 사용자를 찾거나, 표시 이름으로 검색할 때 사용하세요.사용 시기
- 정기 동기화: 사용자 테이블을 외부 BI 또는 웨어하우스에 동기화합니다.
- 분석가 대기열:
status=FLAGGED또는 오래된last_activity_at으로 필터링해 검토용 수신함으로 활용하세요. - 사용자 검색:
display_name,full_name,vendor_data로 사용자를 검색합니다.
필터 및 페이지네이션
| 쿼리 파라미터 | 설명 |
|---|---|
status | ACTIVE, FLAGGED, BLOCKED 중 하나로 필터링합니다. |
search | vendor_data, display_name, full_name, 이메일, 전화번호에 대한 부분 문자열 일치 검색입니다. |
country_code | issuing_states(ISO 3166-1 alpha-3)로 필터링합니다. |
created_after, created_before | 생성 날짜 범위(ISO 8601)입니다. |
last_activity_after, last_activity_before | 활동 기간 범위입니다. |
page_size | 1–200. 기본값: 50. |
cursor | 이전 응답에서 반환된 페이지네이션 커서입니다. |
참고 사항
- 각 응답 항목에는
didit_internal_id가 포함됩니다. 원본 세션 또는 거래가 값을 제공하지 않은 경우vendor_data는null일 수 있습니다. - 이 엔드포인트는 커서 기반으로 페이지네이션됩니다. 호출 사이에
next커서를 저장하고,next가 비어 있으면 호출을 중단하세요. - 사용자 행의 모든 필드는 사용자 데이터 모델에서 확인하세요.
권한
애플리케이션의 활성 API 키는 모두 이 엔드포인트를 호출할 수 있습니다. Didit API 키는 역할이 아닌 애플리케이션 범위로 적용됩니다. 콘솔의 역할 및 권한(list:users 등)은 사람이 콘솔에서 할 수 있는 작업을 결정하며, Management API 트래픽에는 평가되지 않습니다. 이 엔드포인트를 호출할 수 있는 대상은 애플리케이션의 API 키를 읽을 수 있는 사람으로 통제하세요.
관련 문서
인증
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 를 참고하십시오.
쿼리 매개변수
페이지 크기입니다. 생략 시 기본값은 50입니다. 강제된 최댓값은 없으나 지연 시간을 줄이려면 페이지를 작게 유지하십시오.
1 <= x <= 1000000반환할 첫 번째 레코드의 0부터 시작하는 오프셋입니다. 직접 계산하기보다는 이전 페이지의 next URL을 따르는 것이 좋습니다.
0 <= x <= 1000000응답
인증 상태, 세션 수 및 기능 분석 정보가 포함된 페이지 단위로 제공되는 사용자 목록입니다.