curl -X GET https://verification.didit.me/v3/biometric-templates/9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b/ \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.biometric_templates.retrieve(
"9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.biometricTemplates.retrieve("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.BiometricTemplates.Retrieve(ctx, "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.biometricTemplates().retrieve("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->biometricTemplates->retrieve('9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.biometric_templates.retrieve("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b")
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.BiometricTemplates.RetrieveAsync("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
"vendor_user_uuid": "2f7c1a9e-8b4d-4c6a-9e1f-3d5b7a9c1e2f",
"vendor_data": "user-42",
"source_type": "session_delete",
"provenance_reference": "6b1e8d2f-4a3c-4f9e-8c7d-1a2b3c4d5e6f",
"retention_policy": "retain_until_user_deleted",
"retention_override": null,
"retained_at": "2026-08-28T10:15:42.318402Z",
"expires_at": "2027-08-28T10:15:42.318402Z",
"retained_by": "3c9e2b1f-7d4a-4e8b-9c1d-5f6a7b8c9d0e",
"retained_by_type": "API_KEY",
"instruction_class": "operational_session_delete",
"instruction_source": "api",
"instruction_id": "post-approval-cleanup-2026-08",
"held_out_of_use": false,
"status": "active",
"purged_at": null
}{
"detail": "You do not have permission to perform this action."
}{
"detail": "Biometric template not found."
}获取生物特征模板 API
通过 GET /v3/biometric-templates// 获取 Didit 中单个留存的人脸生物特征模板,包括所属用户、来源、到期时间和状态。
curl -X GET https://verification.didit.me/v3/biometric-templates/9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b/ \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.biometric_templates.retrieve(
"9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.biometricTemplates.retrieve("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.BiometricTemplates.Retrieve(ctx, "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.biometricTemplates().retrieve("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->biometricTemplates->retrieve('9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.biometric_templates.retrieve("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b")
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.BiometricTemplates.RetrieveAsync("9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b");
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
"vendor_user_uuid": "2f7c1a9e-8b4d-4c6a-9e1f-3d5b7a9c1e2f",
"vendor_data": "user-42",
"source_type": "session_delete",
"provenance_reference": "6b1e8d2f-4a3c-4f9e-8c7d-1a2b3c4d5e6f",
"retention_policy": "retain_until_user_deleted",
"retention_override": null,
"retained_at": "2026-08-28T10:15:42.318402Z",
"expires_at": "2027-08-28T10:15:42.318402Z",
"retained_by": "3c9e2b1f-7d4a-4e8b-9c1d-5f6a7b8c9d0e",
"retained_by_type": "API_KEY",
"instruction_class": "operational_session_delete",
"instruction_source": "api",
"instruction_id": "post-approval-cleanup-2026-08",
"held_out_of_use": false,
"status": "active",
"purged_at": null
}{
"detail": "You do not have permission to perform this action."
}{
"detail": "Biometric template not found."
}biometric_template_uuid、人脸搜索匹配项 中的 biometric_template_id,或 列表 中的 ID。
curl -X GET https://verification.didit.me/v3/biometric-templates/9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b/ \
-H "x-api-key: YOUR_API_KEY"
{
"uuid": "9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b",
"vendor_user_uuid": "2f7c1a9e-8b4d-4c6a-9e1f-3d5b7a9c1e2f",
"vendor_data": "user-42",
"source_type": "session_delete",
"provenance_reference": "6b1e8d2f-4a3c-4f9e-8c7d-1a2b3c4d5e6f",
"retention_policy": "retain_until_user_deleted",
"retention_override": null,
"retained_at": "2026-08-28T10:15:42.318402Z",
"expires_at": "2027-08-28T10:15:42.318402Z",
"retained_by": "3c9e2b1f-7d4a-4e8b-9c1d-5f6a7b8c9d0e",
"retained_by_type": "API_KEY",
"instruction_class": "operational_session_delete",
"instruction_source": "api",
"instruction_id": "post-approval-cleanup-2026-08",
"held_out_of_use": false,
"status": "active",
"purged_at": null
}
错误
| 状态 | 适用情况 | 响应体 |
|---|---|---|
403 | 控制台用户令牌,或 API 密钥无此权限 | {"detail": "You do not have permission to perform this action."} |
404 | 模板不存在、属于其他应用的模板,或已清除的模板 | {"detail": "Biometric template not found."} |
授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
模板 ID,由会话删除 endpoint 在 biometric_template_uuid 中返回、在人脸搜索匹配中通过 biometric_template_id 返回,或由列表 endpoint 返回。
"9d2f4b6e-1c3a-4e8f-b7d5-0a1c2e3f4a5b"
响应
模板。
模板 ID。随机生成;并非衍生自已删除的会话或其人脸。
所有者用户。
用户的当前 vendor_data,在您读取模板时解析(绝不会被复制)。
模板的创建方式:会话删除(API 或 Console)、应用的数据自动保留期限,或者根据您的指示由 Didit 执行的历史回填。
session_delete, automatic_retention, backfill 将模板与其审计日志关联的不透明引用。它不是已删除会话的 id,且无法解析为该 id。
在保留时间到达时适用的应用策略。
delete_with_session, retain_until_user_deleted 删除请求中发送的 retain_face_embeddings 值,应用策略时为 null。
模板到期并被自动清除的时间。始终设置。
发出指令的主体:API 密钥对应的应用 ID、控制台操作对应的控制台成员 ID,或自动数据保留对应的 service: 标识符。绝不为邮箱地址。
API_KEY, CONSOLE_USER, SYSTEM operational_session_delete, privacy_erasure api, console, automatic_retention, backfill, privacy_erasure, explicit_template_purge, vendor_user_delete, expiry, reconciliation, migration, system 删除请求中发送的 instruction_id,或由 Didit 生成的 id。
仅在法律保留生效期间为 true。处于保留状态的模板将从所有匹配中排除。
只有处于 active 状态、未被暂停、未超过 expires_at 且其用户仍然存在的模板才会参与比对。
pending, active, expired, held_out_of_use, purge_pending, purge_failed, purged