curl -X POST 'https://verification.didit.me/v3/lists/11111111-2222-3333-4444-555555555555/entries/face-upload/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d "{\"image\": \"$(base64 < face.jpg | tr -d '\n')\", \"comment\": \"Known fraud attempt\"}"from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.lists.entries.upload_face(
"11111111-2222-3333-4444-555555555555",
image="/9j/4AAQSkZJRgABAQAAAQABAAD...",
comment="Known fraud attempt",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.lists.entries.uploadFace("11111111-2222-3333-4444-555555555555", {
image: "/9j/4AAQSkZJRgABAQAAAQABAAD...",
comment: "Known fraud attempt",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Lists.Entries.UploadFace(ctx, "11111111-2222-3333-4444-555555555555", didit.ListsEntriesUploadFaceParams{
Image: "/9j/4AAQSkZJRgABAQAAAQABAAD...",
Comment: didit.String("Known fraud attempt"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.ListsEntriesUploadFaceParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.lists().entries().uploadFace("11111111-2222-3333-4444-555555555555", ListsEntriesUploadFaceParams.builder()
.image("/9j/4AAQSkZJRgABAQAAAQABAAD...")
.comment("Known fraud attempt")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->lists->entries->uploadFace('11111111-2222-3333-4444-555555555555', [
'image' => '/9j/4AAQSkZJRgABAQAAAQABAAD...',
'comment' => 'Known fraud attempt',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.lists.entries.upload_face(
"11111111-2222-3333-4444-555555555555",
image: "/9j/4AAQSkZJRgABAQAAAQABAAD...",
comment: "Known fraud attempt"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Lists.Entries.UploadFaceAsync("11111111-2222-3333-4444-555555555555", new ListsEntriesUploadFaceParams
{
Image = "/9j/4AAQSkZJRgABAQAAAQABAAD...",
Comment = "Known fraud attempt",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "cccccccc-dddd-eeee-ffff-000000000000",
"value": "44444444-5555-6666-7777-888888888888",
"display_label": "Manually uploaded face",
"comment": "Known fraud attempt",
"added_by": "api",
"reference_session_id": null,
"reference_session_number": null,
"reference_session_type": null,
"reference_object_uuid": "44444444-5555-6666-7777-888888888888",
"metadata": {
"reference_image_url": "https://media.example.com/faces/reference.jpg?expires=1760263938&signature=3f9a1c"
},
"created_at": "2026-10-12T10:12:18.904467Z"
}上传人脸 API:生物特征名单
通过 Didit 将 base64 人脸图片上传至人脸黑名单或白名单。Didit 会提取生物特征,并在之后的人脸比对中使用。
curl -X POST 'https://verification.didit.me/v3/lists/11111111-2222-3333-4444-555555555555/entries/face-upload/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d "{\"image\": \"$(base64 < face.jpg | tr -d '\n')\", \"comment\": \"Known fraud attempt\"}"from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.lists.entries.upload_face(
"11111111-2222-3333-4444-555555555555",
image="/9j/4AAQSkZJRgABAQAAAQABAAD...",
comment="Known fraud attempt",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.lists.entries.uploadFace("11111111-2222-3333-4444-555555555555", {
image: "/9j/4AAQSkZJRgABAQAAAQABAAD...",
comment: "Known fraud attempt",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Lists.Entries.UploadFace(ctx, "11111111-2222-3333-4444-555555555555", didit.ListsEntriesUploadFaceParams{
Image: "/9j/4AAQSkZJRgABAQAAAQABAAD...",
Comment: didit.String("Known fraud attempt"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.ListsEntriesUploadFaceParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.lists().entries().uploadFace("11111111-2222-3333-4444-555555555555", ListsEntriesUploadFaceParams.builder()
.image("/9j/4AAQSkZJRgABAQAAAQABAAD...")
.comment("Known fraud attempt")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->lists->entries->uploadFace('11111111-2222-3333-4444-555555555555', [
'image' => '/9j/4AAQSkZJRgABAQAAAQABAAD...',
'comment' => 'Known fraud attempt',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.lists.entries.upload_face(
"11111111-2222-3333-4444-555555555555",
image: "/9j/4AAQSkZJRgABAQAAAQABAAD...",
comment: "Known fraud attempt"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Lists.Entries.UploadFaceAsync("11111111-2222-3333-4444-555555555555", new ListsEntriesUploadFaceParams
{
Image = "/9j/4AAQSkZJRgABAQAAAQABAAD...",
Comment = "Known fraud attempt",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "cccccccc-dddd-eeee-ffff-000000000000",
"value": "44444444-5555-6666-7777-888888888888",
"display_label": "Manually uploaded face",
"comment": "Known fraud attempt",
"added_by": "api",
"reference_session_id": null,
"reference_session_number": null,
"reference_session_type": null,
"reference_object_uuid": "44444444-5555-6666-7777-888888888888",
"metadata": {
"reference_image_url": "https://media.example.com/faces/reference.jpg?expires=1760263938&signature=3f9a1c"
},
"created_at": "2026-10-12T10:12:18.904467Z"
}value 即该人脸的 UUID。
仅适用于 entry_type: face 且 list_type: blocklist 或 list_type: allowlist 的名单。
reference_session_id:该条目会关联回对应会话。400,且不会创建条目。若人脸分析服务暂时不可用,请求将返回 503:请稍后重试。授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
entry_type: face 且 list_type: blocklist 或 allowlist 的列表的 UUID。
请求体
响应
人脸条目已创建。
列表中的一个值。
条目标识符。在“删除列表条目”中用作 entry_uuid。
列入名单的值:E.164 格式的电话号码、邮箱地址、证件号码、IP 地址或 CIDR 范围、设备指纹、钱包地址、银行账户、ISO 3166-1 alpha-3 国家/地区代码、vendor_data、key 名单上的任意字符串,或人脸名单上已存储人脸的 UUID。除电话号码和国家/地区代码外,您发送的值均以小写形式存储。匹配不区分大小写。
便于人类阅读的标签。当您未提供时,Didit 会为从会话中获取的条目自动填充该标签(例如持有人姓名和证件号码)。
512自由文本备注。未设置时为空字符串。
添加此条目的主体:api(API 密钥)、控制台用户的邮箱地址或 console、system 或 migration(Didit 创建的条目),或者 rule(交易或监控规则操作)。
该条目来源的验证会话。如果条目是按值添加的,则为 null。
控制台中显示的该会话在应用范围内的编号。
个人验证会话为 kyc,企业验证会话为 kyb,不存在会话时为 null。
kyc, kyb, null 该条目代表的记录:从会话中读取的人脸、证件、电话或邮箱记录,通过“向列表上传人脸”创建的人脸,或您发送的 UUID(例如交易 UUID 或用户的 didit_internal_id)。
额外上下文。包含 Didit 设置的键(在此列出)并合并您在创建条目时发送的任何 metadata,按存储原样返回。无内容时为 null。
Show child attributes
Show child attributes
条目添加的时间。