GET /apiv2/compliance/
การตรวจสอบการปฏิบัติตามกฎระเบียบ (compliance) แบบเปิดและไม่ต้องใช้คีย์สำหรับที่อยู่ TRON รายการเดียว โดยจะส่งคืนผลการตัดสิน — ว่าที่อยู่นั้นถูกบล็อกหรือไม่ และอยู่ในหมวดหมู่ใด — ซึ่งให้บริการทั้งหมดจากแคช deny-list ในหน่วยความจำ ไม่ต้องใช้ API key, ไม่ต้องมียอดคงเหลือ, ไม่มีค่าใช้จ่าย จุดประสงค์คือเพื่อให้ทุกคนสามารถ ผสานการทำงานกับเลเยอร์การปฏิบัติตามกฎระเบียบได้ด้วยคำขอ HTTP GET เพียงครั้งเดียว
เอนด์พอยต์นี้อ่านข้อมูลจากแคชเท่านั้น ไม่เคยอ่านจากฐานข้อมูลหรือโหนดของเชน ดังนั้นการค้นหา จึงใช้เวลาเพียงเศษเสี้ยวของมิลลิวินาที โดยมีการจำกัดอัตราการเรียกใช้งานต่อ IP โดยเกตเวย์
URL ของ Endpoint
GET https://netts.io/apiv2/compliance/{address}ไม่จำเป็นต้องใช้เฮดเดอร์การตรวจสอบสิทธิ์
พารามิเตอร์ของคำขอ
| Parameter | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | ที่อยู่ TRON base58 — ขึ้นต้นด้วย T ตามด้วยอักขระ 33 ตัว |
ตัวอย่าง
cURL
curl https://netts.io/apiv2/compliance/TTVUvAWUZafeHqQP82sYnfk4jNFPEHCRpLPython
import requests
address = "TTVUvAWUZafeHqQP82sYnfk4jNFPEHCRpL"
r = requests.get(f"https://netts.io/apiv2/compliance/{address}")
data = r.json()
if r.status_code == 200:
d = data["data"]
print(f"blocked : {d['blocked']}")
print(f"category: {d['category']}")
if d["category"] == "aml_risk":
print(f"reason : {d.get('reason_code')} — {d.get('label')}")
else:
print(f"Error: {data}")JavaScript
const address = "TTVUvAWUZafeHqQP82sYnfk4jNFPEHCRpL";
const res = await fetch(`https://netts.io/apiv2/compliance/${address}`);
const { data } = await res.json();
console.log(data.blocked, data.category, data.label);การตอบกลับ
ถูกบล็อก — อยู่ใน deny list ส่วนกลาง (200 OK)
{
"code": 0,
"status": "ok",
"data": {
"address": "TTVUvAWUZafeHqQP82sYnfk4jNFPEHCRpL",
"blocked": true,
"category": "aml_risk",
"severity": "BLOCK",
"reason_code": "SANCTIONS_SCREENING",
"label": "DPRK Bitget Exploit - September 2026",
"subtype": null,
"subtype_status": "not_found",
"matches": ["aml_risk"],
"checks_complete": true,
"checked_at": "2026-09-27T12:00:00+00:00"
}
}กระเป๋า GasFree — สมาร์ตคอนแทรกต์ที่สามารถรับ USDT ได้ (200 OK)
{
"code": 0,
"status": "ok",
"data": {
"address": "TZEMF5vmSABaWjeUPty8kFpUsquMAKhGFp",
"blocked": true,
"category": "smart_contract",
"subtype": "gasfree_wallet",
"subtype_status": "confirmed",
"matches": ["smart_contract"],
"checks_complete": true,
"checked_at": "2026-10-23T12:00:00+00:00"
}
}สัญญาที่ถูกลบ — ที่อยู่ยังคงนับเป็นสมาร์ตคอนแทรกต์ (200 OK)
{
"code": 0,
"status": "ok",
"data": {
"address": "TBtrogXC58EAvE7vod56ZnzRY4y5jrwtbN",
"blocked": true,
"category": "smart_contract",
"subtype": "selfdestructed_contract",
"subtype_status": "confirmed",
"matches": ["smart_contract"],
"checks_complete": true,
"checked_at": "2026-10-23T21:40:00+00:00"
}
}ปลอดภัย — ไม่อยู่ในชุดข้อมูลใดๆ (200 OK)
{
"code": 0,
"status": "ok",
"data": {
"address": "TWaGxHZ9pFCFwUyzKtDsGNb6hEJ7tSjxEC",
"blocked": false,
"category": "clean",
"subtype": null,
"subtype_status": "not_found",
"matches": [],
"checks_complete": true,
"checked_at": "2026-09-27T12:00:00+00:00"
}
}ฟิลด์ในคำตอบ
| Field | Type | Description |
|---|---|---|
| data.address | string | ที่อยู่ที่ได้รับการตรวจสอบ |
| data.blocked | boolean | true หากที่อยู่นั้นอยู่ในชุดข้อมูลการบล็อกใดๆ |
| data.category | string | aml_risk, usdt_frozen, smart_contract, spam_sender หรือ clean (ดูด้านล่าง); เอนด์พอยต์แบบกลุ่มยังสามารถส่งคืน invalid หรือ unavailable ได้ |
| data.severity | string | สำหรับ aml_risk เท่านั้น เช่น BLOCK, REVIEW |
| data.reason_code | string | สำหรับ aml_risk เท่านั้น รหัสที่เครื่องอ่านได้ เช่น SANCTIONS_OFAC_SDN |
| data.label | string | สำหรับ aml_risk เท่านั้น ป้ายกำกับที่มนุษย์อ่านได้ |
| data.subtype | string | null | ข้อมูลระบุรายละเอียดของ smart_contract โดย gasfree_wallet — กระเป๋า GasFree ที่ใช้งานอยู่ (ดู กระเป๋า GasFree); selfdestructed_contract — สัญญา ณ ที่อยู่นี้ถูกลบไปแล้ว (ดู สัญญาที่ถูกลบ); กรณีอื่นจะเป็น null |
| data.subtype_status | string | confirmed — ทราบประเภทประเภทย่อยตามสถานะที่ได้รับการยืนยันล่าสุด; not_found — ไม่เข้าเกณฑ์ประเภทย่อยใดๆ; unavailable — ไม่สามารถตรวจสอบรายการประเภทย่อยได้ในขณะนี้ ดังนั้น subtype จึงเป็น null และไม่ได้บ่งบอกสิ่งใด |
| data.matches | string[] | ชุดข้อมูลทั้งหมดที่ที่อยู่นี้สังกัดอยู่ ตามลำดับความสำคัญ (เช่น ["usdt_frozen", "smart_contract", "spam_sender"]) โดย category จะแสดงเพียงรายการแรกเท่านั้น |
| data.checks_complete | boolean | true หากชุดข้อมูลทั้งสี่ชุดถูกโหลดและเป็นปัจจุบัน ณ เวลาที่ทำการค้นหา หากเป็น false หมายความว่าคำตอบ clean นั้นมาจากการตรวจสอบที่ไม่สมบูรณ์ |
| data.checked_at | string | การประทับเวลา UTC ISO-8601 ของการค้นหา |
หมวดหมู่
category คือผลการตัดสิน ไม่ใช่คะแนนความเสี่ยง เมื่อที่อยู่อยู่ในชุดข้อมูลมากกว่าหนึ่งชุด หมวดหมู่ที่ร้ายแรงที่สุดจะมีความสำคัญสูงสุด ตามลำดับนี้ (ทั้งหมดจะแสดงอยู่ใน matches):
| หมวดหมู่ | blocked | ความหมาย |
|---|---|---|
aml_risk | true | อยู่ใน deny list ส่วนกลาง: การคว่ำบาตร, การหลอกลวง (scam), แรนซัมแวร์, ทรัพย์สินที่ถูกขโมย, การฉ้อโกง, การบังคับใช้กฎหมาย หรือข้อค้นพบการละเมิดภายใน มีเหตุผลที่ระบุไว้อย่างชัดเจนแนบมาด้วย |
usdt_frozen | true | ที่อยู่ถูกอายัดโดยผู้ออก USDT (Tether) ไม่สามารถโอน USDT ได้ ดังนั้นการมอบหมายทรัพยากรไปยังที่อยู่นี้จะถูกปฏิเสธ |
smart_contract | true | ที่อยู่สมาร์ตคอนแทรกต์ที่รู้จัก รวมถึงสัญญาที่ถูกลบในภายหลัง ดูหมายเหตุด้านล่าง |
spam_sender | true | ผู้ส่งสแปมจำนวนมากที่ได้รับการยืนยัน |
clean | false | ไม่อยู่ในชุดข้อมูลใดๆ เลย |
unavailable | null | ไม่สามารถตรวจสอบ deny list ส่วนกลางได้ ดังนั้นที่อยู่นี้จึงยังไม่ได้รับการยืนยันว่าปลอดภัยหรือไม่ถูกบล็อก ใช้สำหรับแบบกลุ่มเท่านั้น; เอนด์พอยต์ที่อยู่เดี่ยวจะส่งคืน 503 พร้อม code 5004 แทน ดู Deny-list ส่วนกลางไม่พร้อมใช้งาน |
สมาร์ตคอนแทรกต์ถูกบล็อกด้วยเหตุผลทางเทคนิค ไม่ใช่เหตุผลด้าน AML
ผลการตัดสิน smart_contract หมายความว่า ที่อยู่นี้เป็นของสัญญา ไม่ใช่กระเป๋าเงินของผู้ใช้ ดังนั้นจึงไม่มีการมอบหมายพลังงานให้ และที่อยู่นี้จะถูกปฏิเสธก่อนที่จะมีการสร้างคำสั่งซื้อเสมอ ชุดข้อมูลนี้จะเก็บทุกที่อยู่ที่เคยมีการสร้างสัญญาสำเร็จ รวมถึงสัญญาที่ถูกลบในภายหลัง — สัญญาที่ถูกลบไม่ได้ทำให้ที่อยู่นั้นกลายเป็นกระเป๋าเงินของผู้ใช้ ไม่ได้หมายความว่าสัญญานั้นถูกบุกรุก มีมลทิน หรือมีความเสี่ยงสูงภายใต้ AML สัญญาส่วนใหญ่ในชุดข้อมูลนี้เป็นสัญญาธรรมดาทั่วไป ให้ปฏิบัติต่อ smart_contract ในฐานะ "ไม่ใช่เป้าหมายการมอบหมาย" ไม่ใช่ในฐานะธงเตือนความเสี่ยง
กระเป๋า GasFree
กระเป๋า GasFree คือสัญญาที่ช่วยให้เจ้าของสามารถรับและส่งโทเค็น พร้อมทั้งชำระค่าธรรมเนียมเครือข่าย ด้วยโทเค็นเหล่านั้นได้ แต่ละรายการถูกสร้างขึ้นโดยคอนโทรลเลอร์ GasFree TFFAMQLZybALaLb4uxHA9RBE7pxhUAjF3U ที่อยู่ดังกล่าวจะถูกรายงานเป็น category: "smart_contract" พร้อมด้วย subtype: "gasfree_wallet"
ความแตกต่างนี้มีความสำคัญเมื่อคุณกำหนดเส้นทางการโอนเงิน:
| สมาร์ตคอนแทรกต์ทั่วไป | กระเป๋า GasFree | |
|---|---|---|
| ส่ง USDT ไปยัง ที่อยู่นี้ | ไม่ใช่ผู้รับทั่วไป | ใช่ — เป็นกระเป๋าเงินของผู้ใช้ |
| มอบหมายพลังงานไปยังที่อยู่นี้ | ไม่ | ไม่ — เราไม่มอบหมายพลังงานให้กับกระเป๋า GasFree |
category / subtype | smart_contract / null | smart_contract / gasfree_wallet |
ความครอบคลุมและข้อควรระวัง:
- ทราบเฉพาะกระเป๋าที่ถูกดีพลอยแล้วเท่านั้น ที่อยู่ GasFree ที่เคยได้รับ USDT แต่ยัง ไม่เคยส่งรายการใดๆ เลยจะยังไม่ถูกดีพลอย ดังนั้นจึงไม่อยู่ในชุดข้อมูลใดๆ และจะส่งคืนผลลัพธ์เป็น
clean - ประเภทย่อยนี้อธิบายว่าที่อยู่นั้นสามารถรับเงินได้จากที่ใด ไม่ได้บ่งบอกสิ่งใดเกี่ยวกับการโอน ออกจาก กระเป๋า GasFree; ให้คัดกรองที่อยู่ผู้ส่งแยกต่างหาก
subtype_status: "unavailable"หมายความว่าไม่สามารถตรวจสอบรายการ GasFree ได้ ส่วนที่เหลือ ของผลการตัดสิน (blocked,category,matches) ยังคงถูกต้อง- ตัวคอนโทรลเลอร์เองและสัญญาอื่นๆ ไม่ใช่กระเป๋า GasFree: จะส่งคืนผลลัพธ์เป็น
subtype: null
สัญญาที่ถูกลบ
สัญญาตนเองสามารถลบตัวเองได้ (self-destruct) ที่อยู่จะยังคงอยู่ในชุดข้อมูล smart_contract: เนื่องจากเคยเป็นที่อยู่สัญญา ไม่ใช่กระเป๋าเงินของผู้ใช้ และ Netts จะไม่มอบหมายทรัพยากร หรือส่งการจ่ายเงินไปยังที่อยู่นั้น ที่อยู่ดังกล่าวจะถูกรายงานเป็น category: "smart_contract" พร้อมด้วย subtype: "selfdestructed_contract"
confirmedหมายถึงถูกลบตามสถานะล่าสุดที่ได้รับการยืนยันโดยโหนด TRON ซึ่งไม่ใช่คำสัญญา เกี่ยวกับอนาคต: สัญญาสามารถถูกดีพลอยที่ที่อยู่เดิมได้อีกครั้ง และเมื่อถึงเวลานั้น ประเภทย่อยจะถูกนำออก ในขณะที่ที่อยู่นั้นยังคงเป็นsmart_contract- การเรียกใช้ self-destruct เพียงอย่างเดียวไม่ได้หมายถึงการลบ: บน TRON สัญญาที่ถูกสร้างขึ้นใน ธุรกรรมก่อนหน้านี้จะยังคงเก็บโค้ดไว้หลังจากนั้น สถานะของโหนดเท่านั้นที่มีผล
- หากที่อยู่เป็นทั้งสัญญาที่ถูกลบและอยู่ในรายการ GasFree ตัว
selfdestructed_contractจะมีความสำคัญกว่า — ที่อยู่นั้นจะไม่ถูกรายงานว่าเป็นกระเป๋า GasFree ที่ใช้งานได้ subtype_status: "unavailable"หมายความว่าไม่สามารถตรวจสอบรายการสัญญาที่ถูกลบได้; ส่วนที่เหลือของผลการตัดสินยังคงถูกต้อง และจะไม่มีที่อยู่ใดได้รับการยืนยันว่าเป็น กระเป๋า GasFree จนกว่าจะสามารถตรวจสอบได้อีกครั้ง
รหัสเหตุผลและผู้ให้บริการข้อมูล
สำหรับ aml_risk ตัว reason_code และ label จะอธิบายถึงสาเหตุที่ที่อยู่นั้นถูกระบุไว้ หน่วยงานคว่ำบาตรสาธารณะจะยังคงชื่อเดิมไว้ — SANCTIONS_OFAC_SDN, SANCTIONS_EU_FSF, SANCTIONS_UK_FCDO เป็นต้น ส่วนชื่อของผู้ให้บริการการคัดกรองเชิงพาณิชย์ ที่อยู่เบื้องหลังการค้นพบจะไม่ถูกเปิดเผย: รหัสดังกล่าวจะถูกปรับให้เป็นมาตรฐาน เป็น SANCTIONS_SCREENING และชื่อผู้ให้บริการใดๆ จะถูกตัดออกจาก label
ขนาดของ Deny-list
GET https://netts.io/apiv2/compliance/statsขนาดรวมของชุดข้อมูลที่อยู่เบื้องหลังผลการตัดสิน จากแคชเดียวกัน เปิดให้เข้าถึงและไม่ต้องใช้คีย์
{
"code": 0,
"status": "ok",
"data": {
"aml_risk": 1079,
"usdt_frozen": 8022,
"smart_contract": 7581686,
"spam_sender": 27039018,
"gasfree_wallets_subset": 512487,
"selfdestructed_contracts_subset": 4065766,
"total": 34629805,
"revision": 1117,
"checked_at": "2026-10-23T21:40:00+00:00"
}
}smart_contract เป็นส่วนที่ใหญ่ที่สุดซึ่งเป็นกลางต่อ AML ของยอดรวมทั้งหมด — ดูหมายเหตุเกี่ยวกับ สัญญาข้างต้น gasfree_wallets_subset (กระเป๋า GasFree ที่ใช้งานอยู่) และ selfdestructed_contracts_subset (สัญญาที่ถูกลบ) เป็นส่วนหนึ่งของ smart_contract; ซึ่งไม่นำมารวมเพิ่มใน total หากตัวนับใดตัวนับหนึ่งในสองตัวนี้ไม่สามารถอ่านได้ ในขณะนี้ ค่าจะเป็น null และตัวเลขอื่นๆ จะยังคงถูกส่งคืนตามปกติ
การค้นหาแบบกลุ่ม (API key)
หากต้องการตรวจสอบหลายที่อยู่พร้อมกัน ให้ใช้เอนด์พอยต์แบบกลุ่มที่ต้องยืนยันตัวตน เอนด์พอยต์นี้มีไว้ เพื่อลดรอบเวลาการรับส่งข้อมูลผ่านเครือข่าย: คำขอเดียวและไพป์ไลน์ภายในเดียวแทนที่จะแยก GET N ครั้ง ที่อยู่เดี่ยวก็คืออาร์เรย์ที่มีสมาชิกตัวเดียว
POST https://netts.io/apiv2/compliance/batch
x-api-key: YOUR_KEY
Content-Type: application/json
{ "addresses": ["TTVUvAWUZafeHqQP82sYnfk4jNFPEHCRpL", "TWaGxHZ9pFCFwUyzKtDsGNb6hEJ7tSjxEC"] }สูงสุด 1000 ที่อยู่ต่อคำขอ ผลการตัดสินจะถูกส่งคืนตามลำดับเดิม แต่ละรายการมี ฟิลด์เหมือนกับการตอบกลับที่อยู่เดี่ยว (รวมถึง subtype, subtype_status, matches และ checks_complete) พร้อมด้วย category: "invalid" (พร้อมฟิลด์ error) สำหรับรายการที่รูปแบบไม่ถูกต้อง — รายการที่ไม่ถูกต้องหนึ่งรายการจะไม่ทำให้ล้มเหลวทั้งกลุ่ม หาก deny list ส่วนกลางไม่ได้ถูกโหลด ที่อยู่ที่โดยปกติจะปลอดภัยจะส่งคืนเป็น category: "unavailable" (blocked: null พร้อมฟิลด์ error) แทนที่จะเป็น clean — ดู Deny-list ส่วนกลางไม่พร้อมใช้งาน
{
"code": 0,
"status": "ok",
"data": {
"count": 2,
"checked_at": "2026-09-27T12:00:00+00:00",
"results": [
{ "address": "TTVUvAWUZafeHqQP82sYnfk4jNFPEHCRpL", "blocked": true, "category": "aml_risk", "subtype": null, "subtype_status": "not_found", "matches": ["aml_risk"], "checks_complete": true, "severity": "BLOCK", "reason_code": "SANCTIONS_SCREENING", "label": "DPRK Bitget Exploit - September 2026" },
{ "address": "TWaGxHZ9pFCFwUyzKtDsGNb6hEJ7tSjxEC", "blocked": false, "category": "clean", "subtype": null, "subtype_status": "not_found", "matches": [], "checks_complete": true }
]
}
}เอนด์พอยต์แบบกลุ่มต้องใช้ API key (เฮดเดอร์ x-api-key) และคีย์สามารถผูกกับ IP whitelist ได้หากต้องการ ติดต่อเราเพื่อขอรับคีย์
การจำกัดอัตราการเรียกใช้งานจะคิดต่อคีย์และสูงกว่าเอนด์พอยต์ที่อยู่เดี่ยวแบบสาธารณะ:
| ช่วงเวลา | ขีดจำกัด |
|---|---|
| 1 วินาที | 200 คำขอ |
| 1 นาที | 12,000 คำขอ |
แต่ละคำขอสามารถบรรจุได้สูงสุด 1,000 ที่อยู่ ดังนั้นคีย์เดียวจึงสามารถคัดกรองได้มากกว่า หนึ่งแสนที่อยู่ต่อวินาทีภายในขีดจำกัดนี้
การตอบกลับเมื่อเกิดข้อผิดพลาด
รูปแบบที่อยู่ไม่ถูกต้อง (400)
{
"code": 1001,
"status": "error",
"msg": "Invalid TRON address format (expected base58, 'T' + 33 chars)"
}บริการไม่พร้อมใช้งานชั่วคราว (503)
{
"code": 5003,
"status": "error",
"msg": "compliance service temporarily unavailable"
}Deny-list ส่วนกลางไม่พร้อมใช้งาน (503, code 5004)
ผลการตัดสินให้บริการจากแคชในหน่วยความจำ หากสามารถเข้าถึงแคชนั้นได้แต่ deny list ส่วนกลางด้าน AML ยังไม่ได้ถูกโหลดในขณะนั้น หรือการแก้ไขปัจจุบันไม่ผ่านการตรวจสอบความสมบูรณ์ เอนด์พอยต์ จะไม่เปลี่ยนกลับไปใช้ clean — เพราะนั่นจะเป็นการรายงานว่าที่อยู่ที่ยังไม่ได้ตรวจสอบมีความปลอดภัย แต่จะแจ้งให้คุณทราบ อย่างตรงไปตรงมาว่าไม่สามารถให้ผลการตัดสินได้:
{
"code": 5004,
"status": "error",
"msg": "compliance deny-list temporarily unavailable, verdict cannot be produced"
}สิ่งนี้หมายความว่า: ที่อยู่นั้นยังไม่ได้รับการยืนยันว่าปลอดภัยหรือไม่ถูกบล็อก บริการ ไม่สามารถคัดกรองกับรายการคว่ำบาตร/AML ได้ในขณะนี้ อย่าปฏิบัติต่อที่อยู่นี้ เสมือนว่าปลอดภัย — ให้ลองใหม่อีกครั้งในไม่ช้า
การบล็อกที่แน่นอนจะยังคงถูกส่งคืนตามปกติ: หากที่อยู่นั้นตรงกับ USDT ที่ถูกอายัด, สมาร์ตคอนแทรกต์ หรือผู้ส่งสแปม (ชุดข้อมูลที่ไม่ขึ้นอยู่กับรายการส่วนกลาง) คุณจะยังคงได้รับผลการตัดสิน blocked: true ตามปกติแม้ในสถานะนี้ เฉพาะคำตอบที่คาดว่าจะเป็น clean เท่านั้นที่จะกลายเป็น 5004
ใน เอนด์พอยต์แบบกลุ่ม สถานการณ์เดียวกันนี้จะถูกรายงาน แยกตามที่อยู่เป็น category: "unavailable" (blocked: null พร้อมฟิลด์ error); ส่วนที่เหลือของกลุ่มจะไม่ได้รับผลกระทบ นี่เป็นสถานะชั่วคราวที่เกิดขึ้นได้ยาก
ทะเบียนไม่พร้อมใช้งาน (503, code 5005)
ชุดข้อมูลได้รับการอัปเดต ณ ที่เดิมและยังคงสามารถอ่านได้ในระหว่างการอัปเดต ดังนั้นการอัปเดต ตามปกติจะไม่ส่งผลกระทบต่อผลการตัดสิน จะมีผลเฉพาะในกรณีที่การนำชุดข้อมูลไปใช้ล้มเหลวเท่านั้น ที่อาจทำให้ที่อยู่ที่ควรจะปลอดภัย ไม่สามารถยืนยันได้ว่าปลอดภัย เอนด์พอยต์ที่อยู่เดี่ยวจะส่งคืน:
{
"code": 5005,
"status": "error",
"msg": "address registry temporarily unavailable, verdict cannot be produced, retry shortly"
}เช่นเดียวกับ 5004 การบล็อกที่แน่นอนจะยังคงถูกส่งคืนตามปกติ และเอนด์พอยต์แบบกลุ่ม จะรายงานกรณีดังกล่าวแยกตามที่อยู่เป็น category: "unavailable" โปรดลองใหม่อีกครั้งในภายหลัง
ข้อมูลอ้างอิงรหัสข้อผิดพลาด
| Code | Description | HTTP Status |
|---|---|---|
0 | สำเร็จ | 200 |
1001 | รูปแบบที่อยู่ TRON ไม่ถูกต้อง | 400 |
5003 | แบ็กเอนด์แคชไม่พร้อมใช้งานชั่วคราว | 503 |
5004 | ไม่ได้โหลด deny list ส่วนกลาง — ไม่สามารถให้ผลการตัดสินได้ (ลองใหม่) | 503 |
5005 | การนำชุดข้อมูลไปใช้ล้มเหลว — ไม่สามารถให้ผลการตัดสินได้ (ลองใหม่) | 503 |
ขีดจำกัดอัตราการเรียกใช้
มีสองระดับ ซึ่งบังคับใช้ที่เกตเวย์:
| เอนด์พอยต์ | การยืนยันตัวตน | จำกัดโดย | 1 วินาที | 1 นาที |
|---|---|---|---|---|
GET /apiv2/compliance/{address} | เปิด, ไม่ต้องใช้คีย์ | IP | 10 | 300 |
GET /apiv2/compliance/stats | เปิด, ไม่ต้องใช้คีย์ | IP | 10 | 300 |
POST /apiv2/compliance/batch | API key | คีย์ | 200 | 12,000 |
เอนด์พอยต์ที่อยู่เดี่ยวแบบเปิดมีไว้สำหรับการใช้งานเชิงโต้ตอบและการทำงานอัตโนมัติขนาดเล็ก สำหรับการคัดกรองจำนวนมากให้ใช้ เอนด์พอยต์แบบกลุ่ม: ด้วยการรองรับสูงสุดถึง 1000 ที่อยู่ต่อคำขอ และ 200 คำขอ/วินาที ต่อคีย์ ทำให้คีย์เดียวสามารถคัดกรองได้มากกว่า หนึ่งแสนที่อยู่ต่อวินาที ต้องการมากกว่านี้หรือไม่? ขีดจำกัดต่อคีย์เป็นการตั้งค่าเชิงนโยบาย ไม่ใช่เพดานทางเทคนิค — โปรดติดต่อเรา
เกินขีดจำกัดอัตราการเรียกใช้งาน (429)
{
"message": "API rate limit exceeded"
}หมายเหตุ
- ไม่ต้องยืนยันตัวตนและไม่มีค่าใช้จ่าย ทุกคนสามารถเรียกใช้ได้ โดยไม่ต้องลงนามใดๆ
- ใช้แคชเท่านั้น ผลการตัดสินไม่เคยแตะต้องฐานข้อมูลหรือโหนด จึงรวดเร็ว และปลอดภัยในการเรียกซ้ำอย่างต่อเนื่อง (poll) ภายในขีดจำกัดอัตราการใช้งาน
- ไม่ใช่รายงาน AML ฉบับเต็ม สำหรับคะแนนความเสี่ยง ข้อมูลแจกแจงความเสี่ยง และรายงาน ที่มีการลงนาม โปรดใช้ API การคัดกรองที่ต้องยืนยันตัวตน (POST /apiv2/screening) เอนด์พอยต์นี้ จะตอบเพียงคำถามเดียวที่แคบกว่า: ที่อยู่นั้นอยู่ใน deny list ของเราหรือไม่ และเพราะเหตุใด