curl -X GET 'https://verification.didit.me/v3/events/subjects/user-42/?entity_type=individual&limit=50' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
for item in client.monitoring_events.retrieve_subject_timeline(
"user-42",
):
print(item)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
for await (const item of didit.monitoringEvents.retrieveSubjectTimeline("user-42")) {
console.log(item);
}ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
iter := client.MonitoringEvents.RetrieveSubjectTimelineAutoPaging(ctx, "user-42", didit.MonitoringEventsRetrieveSubjectTimelineParams{})
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.monitoringEvents().retrieveSubjectTimeline("user-42")) {
System.out.println(item);
}<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
foreach ($didit->monitoringEvents->retrieveSubjectTimeline('user-42') as $item) {
print_r($item->toArray());
}require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.monitoring_events.retrieve_subject_timeline("user-42").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.MonitoringEvents.RetrieveSubjectTimelineAsync("user-42"))
{
Console.WriteLine(JsonSerializer.Serialize(item));
}主体事件时间线 API
Didit 可按时间倒序列出某一用户或企业的全部监控事件,并让共享同一 vendor_data 的个人与企业彼此分开,不相互混淆。
curl -X GET 'https://verification.didit.me/v3/events/subjects/user-42/?entity_type=individual&limit=50' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
for item in client.monitoring_events.retrieve_subject_timeline(
"user-42",
):
print(item)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
for await (const item of didit.monitoringEvents.retrieveSubjectTimeline("user-42")) {
console.log(item);
}ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
iter := client.MonitoringEvents.RetrieveSubjectTimelineAutoPaging(ctx, "user-42", didit.MonitoringEventsRetrieveSubjectTimelineParams{})
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.monitoringEvents().retrieveSubjectTimeline("user-42")) {
System.out.println(item);
}<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
foreach ($didit->monitoringEvents->retrieveSubjectTimeline('user-42') as $item) {
print_r($item->toArray());
}require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
didit.monitoring_events.retrieve_subject_timeline("user-42").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.MonitoringEvents.RetrieveSubjectTimelineAsync("user-42"))
{
Console.WriteLine(JsonSerializer.Serialize(item));
}授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
您对主体的 ID(对应其事件的 subject.vendor_data)。请对其进行 URL 编码;包含 / 的值无法被该 endpoint 寻址。
1 - 255查询参数
company 返回具有此 vendor_data 的企业;任何其他值或无值则返回个人。当 entity_type 不存在时,接受 subject_entity_type 作为别名。
individual, company 每页最大事件数。默认值为 50。超过 1000000 的值将返回 400;非数值、零或负值将回退至 50。
1 <= x <= 1000000要跳过的事件数量。默认为 0。建议使用响应中的 next URL。
0 <= x <= 1000000仅包含这些类别中的事件。对多个值重复该参数(?event_category=payment&event_category=dispute);匹配其中任一类别的事件都会被返回。
auth, session, gameplay, bonus, affiliate, payment, dispute, security, responsible_gambling, custom 仅包含具有这些操作类型的事件(精确匹配,区分大小写)。对多个值重复使用。
仅包含具有这些状态的事件。对多个值重复使用。
ACCEPTED, APPROVED, IN_REVIEW, DECLINED 仅包含这些保留类别中的事件。对多个值重复使用。
low_value, standard, risk_relevant, monetary_or_compliance 对随事件发送的 business.vendor_data 的精确匹配。
对 session.session_id 的精确匹配。
对 device_context.fingerprint 的精确匹配。
对事件的 IP 地址进行精确匹配。
对已提升的 game_id 的精确匹配。
对已提升的 round_id 的精确匹配。
对已提升的 affiliate_code 的精确匹配。
对支付参考信息的精确匹配(来自 transaction_context.payment_reference_id 或 payload.payment_reference_id)。
对已提升的 counterparty_vendor_data 的精确匹配。
true(亦可为 1 或 yes,不区分大小写)仅返回匹配至少一条规则的事件(rules_matched_count 大于 0)。任何其他值将被忽略。
仅包含 occurred_at 在此时间点或之后(包含)的事件。发送 ISO 8601 格式的值:2026-10-01T00:00:00Z、带有百分号编码 + 的显式偏移量(2026-10-01T02:00:00%2B02:00;未编码的 + 会被解码为空格导致该值无法解析),或仅日期(2026-10-01),表示当天的 00:00:00 UTC。无偏移量的值按 UTC 读取。不接受任何其他格式的值。
仅包含 occurred_at 在此时间点或之前(包含)的事件。仅日期表示当天的开始,因此 occurred_to=2026-10-15 会排除 10 月 15 日的其余时间;发送 2026-10-15T23:59:59Z 以包含全天。发送 ISO 8601 格式的值:2026-10-01T00:00:00Z、带有百分号编码 + 的显式偏移量(2026-10-01T02:00:00%2B02:00;未编码的 + 会被解码为空格导致该值无法解析),或仅日期(2026-10-01),表示当天的 00:00:00 UTC。无偏移量的值按 UTC 读取。不接受任何其他格式的值。
对 event_id、action_type、subject_vendor_data 或 counterparty_vendor_data 进行不区分大小写的子字符串匹配。