curl -X GET 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/networks/n3a5e000-0000-4000-8000-000000000001/' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
client = Didit()
result = client.networks.retrieve(
"n3a5e000-0000-4000-8000-000000000001",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
const didit = new Didit();
const result = await didit.networks.retrieve("n3a5e000-0000-4000-8000-000000000001");
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
client := didit.NewClient()
result, err := client.Networks.Retrieve(ctx, "n3a5e000-0000-4000-8000-000000000001")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
Didit client = new Didit();
var result = client.networks().retrieve("n3a5e000-0000-4000-8000-000000000001");
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
$didit = new DiditClient();
$result = $didit->networks->retrieve('n3a5e000-0000-4000-8000-000000000001');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
didit = Didit::Client.new
result = didit.networks.retrieve("n3a5e000-0000-4000-8000-000000000001")
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
using var client = new DiditClient();
var result = await client.Networks.RetrieveAsync("n3a5e000-0000-4000-8000-000000000001");
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"network_id": "N-0042",
"name": null,
"status": "in_review",
"risk": {
"score": 82,
"band": "high",
"bar": 0.82
},
"pattern_types": [
"exact_same_device",
"same_email"
],
"signal_types": [
"device",
"email"
],
"member_counts": {
"total": 3,
"users": 3,
"businesses": 0,
"transaction_parties": 0
},
"member_status": {
"approved": 1,
"declined": 1,
"in_review": 0,
"not_completed": 1
},
"signal_coverage": {
"device": {
"signals": 1,
"subjects": 3,
"coverage": 1
},
"email": {
"signals": 1,
"subjects": 2,
"coverage": 0.6667
}
},
"first_activity_at": "2026-10-01T09:12:44Z",
"last_activity_at": "2026-10-12T16:03:10Z",
"stats": {
"members": {
"total": 3,
"users": 3,
"businesses": 0,
"transaction_parties": 0
},
"member_status": {
"approved": 1,
"declined": 1,
"in_review": 0,
"not_completed": 1
},
"signals": {
"total": 2,
"by_type": {
"device": {
"signals": 1,
"subjects": 3,
"coverage": 1
},
"email": {
"signals": 1,
"subjects": 2,
"coverage": 0.6667
}
}
}
},
"fraud_tags": [],
"risk_signals": {
"residential_proxy_reuse": {
"detected": false,
"signal_count": 0,
"max_subject_count": 0
},
"email_intelligence": {
"enriched_signal_count": 1,
"high_risk_count": 0,
"social_profile_count": 0
},
"phone_intelligence": {
"enriched_signal_count": 0,
"high_risk_count": 0
}
},
"reviewed_at": "2026-10-12T16:30:00Z",
"reviewed_by": "reviewer@example.com",
"review_reason": "Shared device across three new accounts.",
"notes_count": 0,
"sharing_mode": "global",
"cross_org_available": true,
"cross_org_unavailable_reason": null,
"tags": [
{
"uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "SUSPICIOUS",
"color": "#6366F1",
"source": "custom",
"added_by": null,
"added_at": "2026-10-13T08:15:00Z"
}
],
"outcomes": {
"approved": 1,
"declined": 1,
"in_review": 0,
"total": 3
},
"patterns": [
{
"type": "background",
"score": 0.8125,
"members": 3,
"reason": null,
"computed_at": "2026-10-13T08:00:00Z"
}
]
}获取欺诈网络 API:查询单个欺诈网络详情
Didit 可查询单个欺诈网络的完整信息:统计数据、欺诈标签、风险信号、您的标签、成员结果、自拍背景模式评分及跨组织访问权限。
curl -X GET 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/networks/n3a5e000-0000-4000-8000-000000000001/' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
client = Didit()
result = client.networks.retrieve(
"n3a5e000-0000-4000-8000-000000000001",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
const didit = new Didit();
const result = await didit.networks.retrieve("n3a5e000-0000-4000-8000-000000000001");
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
client := didit.NewClient()
result, err := client.Networks.Retrieve(ctx, "n3a5e000-0000-4000-8000-000000000001")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
Didit client = new Didit();
var result = client.networks().retrieve("n3a5e000-0000-4000-8000-000000000001");
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
$didit = new DiditClient();
$result = $didit->networks->retrieve('n3a5e000-0000-4000-8000-000000000001');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
didit = Didit::Client.new
result = didit.networks.retrieve("n3a5e000-0000-4000-8000-000000000001")
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
using var client = new DiditClient();
var result = await client.Networks.RetrieveAsync("n3a5e000-0000-4000-8000-000000000001");
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"network_id": "N-0042",
"name": null,
"status": "in_review",
"risk": {
"score": 82,
"band": "high",
"bar": 0.82
},
"pattern_types": [
"exact_same_device",
"same_email"
],
"signal_types": [
"device",
"email"
],
"member_counts": {
"total": 3,
"users": 3,
"businesses": 0,
"transaction_parties": 0
},
"member_status": {
"approved": 1,
"declined": 1,
"in_review": 0,
"not_completed": 1
},
"signal_coverage": {
"device": {
"signals": 1,
"subjects": 3,
"coverage": 1
},
"email": {
"signals": 1,
"subjects": 2,
"coverage": 0.6667
}
},
"first_activity_at": "2026-10-01T09:12:44Z",
"last_activity_at": "2026-10-12T16:03:10Z",
"stats": {
"members": {
"total": 3,
"users": 3,
"businesses": 0,
"transaction_parties": 0
},
"member_status": {
"approved": 1,
"declined": 1,
"in_review": 0,
"not_completed": 1
},
"signals": {
"total": 2,
"by_type": {
"device": {
"signals": 1,
"subjects": 3,
"coverage": 1
},
"email": {
"signals": 1,
"subjects": 2,
"coverage": 0.6667
}
}
}
},
"fraud_tags": [],
"risk_signals": {
"residential_proxy_reuse": {
"detected": false,
"signal_count": 0,
"max_subject_count": 0
},
"email_intelligence": {
"enriched_signal_count": 1,
"high_risk_count": 0,
"social_profile_count": 0
},
"phone_intelligence": {
"enriched_signal_count": 0,
"high_risk_count": 0
}
},
"reviewed_at": "2026-10-12T16:30:00Z",
"reviewed_by": "reviewer@example.com",
"review_reason": "Shared device across three new accounts.",
"notes_count": 0,
"sharing_mode": "global",
"cross_org_available": true,
"cross_org_unavailable_reason": null,
"tags": [
{
"uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "SUSPICIOUS",
"color": "#6366F1",
"source": "custom",
"added_by": null,
"added_at": "2026-10-13T08:15:00Z"
}
],
"outcomes": {
"approved": 1,
"declined": 1,
"in_review": 0,
"total": 3
},
"patterns": [
{
"type": "background",
"score": 0.8125,
"members": 3,
"reason": null,
"computed_at": "2026-10-13T08:00:00Z"
}
]
}标签
tags 按添加时间从早到晚列出您的应用在该网络上的标签。
每个应用只能查看和修改自己的标签。
added_by 是添加该标签的控制台成员的邮箱,若由 API 密钥添加则为 null。
使用 添加网络标签 和 移除网络标签 修改标签。
fraud_tags 保持不变:它列出网络成员所带有的标签。
成员结果
outcomes 统计网络中您可能看到的个人和企业,每个主体只计一次。
| 键 | 统计内容 |
|---|---|
approved | 最近一次已做出决定的验证为已通过的成员 |
declined | 最近一次已做出决定的验证为已拒绝的成员 |
in_review | 最近一次已做出决定的验证为审核中的成员 |
total | 至少有一次验证(无论是否已做出决定)的成员 |
approved。
所有验证均未做出决定(未开始、进行中、已过期或已放弃)的成员,仅计入 total。
交易方不进行任何验证,不计入统计。
自拍照背景模式
patterns 目前只包含一项,其 type 为 background。
其 score(取值 0 到 1)为任意两名成员自拍照背景之间相似度的平均值,计算时已遮罩人物。
分数接近 1 表明这些自拍照可能拍摄于同一地点。
颜色相近的纯色墙面也可能得分较高,因此应将该分数视为供审核参考的证据,而非确凿证明。
计算时读取每人最新的一张自拍照,最多读取最新的 50 名成员的自拍照,并排除年龄核验会话。
其计算范围为整个网络,而不仅限于您应用中的成员。
reason | score | members | 处理方式 |
|---|---|---|---|
null | 0 至 1 | 参与比较的自拍照数量 | 使用该分数。computed_at 表示分数的计算时间。 |
computing | null | null | 当前成员的分数正在计算中。请稍后重新读取该网络。 |
not_enough_selfies | null | 0 或 1 | 可用自拍照的成员少于两名。 |
members 可能小于网络中的人数。
分数始终反映当前成员的自拍照。
当自拍照发生变化时(例如有成员加入或离开),在新分数就绪前详情会返回 computing;若剩余不足两张,则返回 not_enough_selfies。
跨组织可用性
详情中包含与列出网络相同的sharing_mode、cross_org_available 和 cross_org_unavailable_reason。
跨组织信号需同时满足 Enterprise 套餐和 global 共享模式。
相关内容
授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
组织 UUID。
应用 UUID。
网络 UUID。
"n3a5e000-0000-4000-8000-000000000001"
响应
网络详情。
网络详情,以及组织的共享模式、跨组织信号是否适用于该网络、您的应用在网络上的标签、成员结果和模式评分。
易于阅读的组织内顺序 ID,例如 N-0001。
网络生命周期状态。与网络内每个申请人的 outcome_status(approved/in_review/declined/not_completed)不同。
active, in_review, resolved, dismissed Show child attributes
Show child attributes
在此网络中检测到的聚集模式。
exact_same_device, similar_device, same_ip_address, same_address, similar_selfie_backgrounds, similar_poa_documents, same_document_number, same_phone_number, same_email 此网络中存在的不同信号类型。
ip_address, device, face, document_number, phone, email, address 按类别统计的成员数量(例如总计、按 outcome_status 统计)。
按 outcome_status 细分的成员明细。
该网络成员各 signal_type 的覆盖率。
网络汇总统计信息(例如成员总数)。
在网络上发现的欺诈模式标签。
风险信号摘要:residential_proxy_reuse、email_intelligence、phone_intelligence。
本次调查中分析师私人备注的数量。
x >= 0该组织的跨组织共享模式。仅 global 会跨组织比对网络;private 和 off 则仅保留在组织自身历史记录内。
off, private, global "global"
跨组织信号是否适用于该组织。这需要同时具备 Enterprise 套餐和 global 共享模式。
true
跨组织信号不适用的原因,按此顺序检查。plan:无论共享模式为何,组织的套餐均不包含跨组织欺诈网络(需要 Enterprise 套餐)。sharing_mode:套餐包含该功能,但共享模式为 private 或 off。当 cross_org_available 为 true 时为 Null。
plan, sharing_mode null
您的应用在网络上的标签,按最早优先排序。每个应用只能看到自己的标签。fraud_tags 是独立的且保持不变:指网络成员拥有的标签。
Show child attributes
Show child attributes
网络的人员和企业所处的状态。您可查看的每位成员仅按其最近一次得出决策的验证状态计入一次。交易当事方不计算在内。
Show child attributes
Show child attributes
整个网络的模式评分。目前包含一项:background。
Show child attributes
Show child attributes