curl -X POST 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/networks/3fa85f64-5717-4562-b3fc-2c963f66afa6/tags/add/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"tag_uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7"}'from didit import Didit
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
client = Didit()
result = client.networks.add_tag(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
tag_uuid="7c9e6679-7425-40de-944b-e07fc1f90ae7",
)
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.addTag("3fa85f64-5717-4562-b3fc-2c963f66afa6", {
tag_uuid: "7c9e6679-7425-40de-944b-e07fc1f90ae7",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
client := didit.NewClient()
result, err := client.Networks.AddTag(ctx, "3fa85f64-5717-4562-b3fc-2c963f66afa6", didit.NetworkTagRequest{
TagUUID: "7c9e6679-7425-40de-944b-e07fc1f90ae7",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.NetworkTagRequest;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
Didit client = new Didit();
var result = client.networks().addTag("3fa85f64-5717-4562-b3fc-2c963f66afa6", NetworkTagRequest.builder()
.tagUuid("7c9e6679-7425-40de-944b-e07fc1f90ae7")
.build());
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->addTag('3fa85f64-5717-4562-b3fc-2c963f66afa6', [
'tag_uuid' => '7c9e6679-7425-40de-944b-e07fc1f90ae7',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
didit = Didit::Client.new
result = didit.networks.add_tag(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
tag_uuid: "7c9e6679-7425-40de-944b-e07fc1f90ae7"
)
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.AddTagAsync("3fa85f64-5717-4562-b3fc-2c963f66afa6", new NetworkTagRequest
{
TagUuid = "7c9e6679-7425-40de-944b-e07fc1f90ae7",
});
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 POST 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/networks/3fa85f64-5717-4562-b3fc-2c963f66afa6/tags/add/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"tag_uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7"}'from didit import Didit
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
client = Didit()
result = client.networks.add_tag(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
tag_uuid="7c9e6679-7425-40de-944b-e07fc1f90ae7",
)
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.addTag("3fa85f64-5717-4562-b3fc-2c963f66afa6", {
tag_uuid: "7c9e6679-7425-40de-944b-e07fc1f90ae7",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
client := didit.NewClient()
result, err := client.Networks.AddTag(ctx, "3fa85f64-5717-4562-b3fc-2c963f66afa6", didit.NetworkTagRequest{
TagUUID: "7c9e6679-7425-40de-944b-e07fc1f90ae7",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.NetworkTagRequest;
// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
// and DIDIT_APPLICATION_ID.
Didit client = new Didit();
var result = client.networks().addTag("3fa85f64-5717-4562-b3fc-2c963f66afa6", NetworkTagRequest.builder()
.tagUuid("7c9e6679-7425-40de-944b-e07fc1f90ae7")
.build());
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->addTag('3fa85f64-5717-4562-b3fc-2c963f66afa6', [
'tag_uuid' => '7c9e6679-7425-40de-944b-e07fc1f90ae7',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
# and DIDIT_APPLICATION_ID.
didit = Didit::Client.new
result = didit.networks.add_tag(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
tag_uuid: "7c9e6679-7425-40de-944b-e07fc1f90ae7"
)
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.AddTagAsync("3fa85f64-5717-4562-b3fc-2c963f66afa6", new NetworkTagRequest
{
TagUuid = "7c9e6679-7425-40de-944b-e07fc1f90ae7",
});
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"
}
]
}tag_uuid 传入。
属于其他应用的标签会返回 404,与不存在的标签相同。
响应返回完整的网络详情:标签添加成功时返回 201,网络上已存在该标签时返回 200。
使用同一标签再次调用不会产生任何变化,因此可以放心重试。
tags 列出网络上属于您应用的标签,按从早到晚排序。
当标签由 API 密钥添加时,added_by 为 null;当由控制台成员添加时,为该成员的邮箱。
网络的 fraud_tags(即其成员所带的标签)不受影响。
相关内容
授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
组织 UUID。
应用 UUID。
网络 UUID。
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
请求体
您应用的某个标签的 UUID。
响应
该标签已存在于网络中并保持原样。返回网络详情。
网络详情,以及组织的共享模式、跨组织信号是否适用于该网络、您的应用在网络上的标签、成员结果和模式评分。
易于阅读的组织内顺序 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