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/remove/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"tag_uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7"}'import requests
url = "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/"
payload = { "tag_uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({tag_uuid: '7c9e6679-7425-40de-944b-e07fc1f90ae7'})
};
fetch('https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'tag_uuid' => '7c9e6679-7425-40de-944b-e07fc1f90ae7'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/"
payload := strings.NewReader("{\n \"tag_uuid\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"tag_uuid\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tag_uuid\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\"\n}"
response = http.request(request)
puts response.read_body{
"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": [],
"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"
}
]
}Remove Network Tag
Remove one of your application’s tags from the network. Returns the network detail. 404 when the tag is not on the network, or does not belong to your application. Requires a full-access API key, or write:networks for a console member.
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/remove/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"tag_uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7"}'import requests
url = "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/"
payload = { "tag_uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({tag_uuid: '7c9e6679-7425-40de-944b-e07fc1f90ae7'})
};
fetch('https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'tag_uuid' => '7c9e6679-7425-40de-944b-e07fc1f90ae7'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/"
payload := strings.NewReader("{\n \"tag_uuid\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"tag_uuid\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tag_uuid\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\"\n}"
response = http.request(request)
puts response.read_body{
"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": [],
"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: the same uuid the network detail’s tags lists.
The response is the full network detail, whose tags no longer lists the tag.
| Status | When |
|---|---|
200 | The tag was removed from the network. |
404 Network not found. | The network does not exist, or has no member visible to your application. |
404 Tag not found. | The tag does not exist, or belongs to another application. |
404 This tag is not on the network. | The tag is yours but is not on the network. |
fraud_tags, the tags its members carry, are not affected.
Related
Authorizations
Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is missing, wrong, revoked or expired; 403 means the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.
Path Parameters
Organization UUID.
Application UUID.
Network UUID.
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
Body
UUID of one of your application's tags.
Response
The tag was removed from the network. Returns the network detail.
The network detail, plus the organization's sharing mode, whether cross-organization signals apply to it, your application's tags on the network, member outcomes and pattern scores.
Human-readable per-organization sequential id, e.g. N-0001.
Network lifecycle status. Distinct from the per-applicant outcome_status inside a network (approved/in_review/declined/not_completed).
active, in_review, resolved, dismissed Show child attributes
Show child attributes
The clustering patterns detected in this network.
exact_same_device, similar_device, same_ip_address, same_address, similar_selfie_backgrounds, similar_poa_documents, same_document_number, same_phone_number, same_email The distinct signal types present in this network.
ip_address, device, face, document_number, phone, email, address Counts of members by category (e.g. total, per outcome_status).
Breakdown of members by outcome_status.
Per signal_type coverage of this network's members.
Aggregate stats for the network (e.g. member totals).
Fraud-pattern tags surfaced on the network.
Risk-signal summaries: residential_proxy_reuse, email_intelligence, phone_intelligence.
Number of private analyst notes in this investigation.
x >= 0The organization's cross-organization sharing mode. Only global compares networks across organizations; private and off keep them to the organization's own history.
off, private, global "global"
Whether cross-organization signals apply to this organization. They need both the Identity Enterprise plan and the global sharing mode.
true
Why cross-organization signals do not apply, checked in this order. plan: the organization's Identity plan does not include the cross-organization fraud network (it needs Identity Enterprise), whatever the sharing mode. sharing_mode: the plan includes it, but the sharing mode is private or off. Null when cross_org_available is true.
plan, sharing_mode null
Your application's tags on the network, oldest first. Each application sees only its own tags. fraud_tags is separate and unchanged: the tags the network's members carry.
Show child attributes
Show child attributes
Where the network's people and businesses stand. Each member you may see counts once, by the status of their most recent verification that reached a decision. Transaction parties are not counted.
Show child attributes
Show child attributes
Pattern scores over the whole network. Today one item, background.
Show child attributes
Show child attributes