curl
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 检索应用的全部供应商用户实体,可按状态、搜索词和日期筛选,实现程序化的用户生命周期管理。
GET
/
v3
/
users
/
curl
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。 - 此 endpoint 通过游标分页:在两次调用之间保存
next游标,当next为空时停止。 - 有关用户记录的所有字段,请参阅用户数据模型。
权限
应用的任意有效 API 密钥均可调用此 endpoint。Didit 的 API 密钥是按应用划分的,而非按角色划分的:控制台的角色与权限(list:users 及其他权限)决定的是人员可以在控制台中做什么,对 Management API 流量则不做评估。请通过控制谁能读取应用的 API 密钥,来控制谁可以调用此 endpoint。
相关内容
授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
查询参数
页面大小。省略时默认为 50。虽无强制上限,但为降低延迟建议保持较小的页面大小。
必填范围:
1 <= x <= 1000000要返回的第一条记录的从零开始的偏移量。建议跟随上一页的 next URL,而不是手动计算。
必填范围:
0 <= x <= 1000000最后修改于 2026年11月7日