ข้ามไปยังเนื้อหา

API Reference

API ป้องกันการฉ้อโกง

SDK สำหรับเบราว์เซอร์ในการระบุตัวตน, webhooks ที่ลงนามสำหรับเหตุการณ์แบบเรียลไทม์ และ workspace management API ทุกสิ่งที่คุณต้องการเพื่อหยุดการฉ้อโกงที่ระดับอุปกรณ์

SDK@tracio/sdk

ระบุตัวตนผู้เข้าชมในเบราว์เซอร์ด้วย client SDK คืนค่า visitor ID ที่เสถียรและคำตัดสินบอตโดยไม่ต้องวนกลับไปที่เซิร์ฟเวอร์ public key ปลอดภัยที่จะส่งไปในโค้ดฝั่งไคลเอนต์

Request

import { Tracio } from '@tracio/sdk'
const tracio = Tracio.init({ publicKey: '5ca175fc...' })
const result = await tracio.getResult()

Response

{
"visitorId": "X7fh2Hg9LkMn3pQr",
"bot": {
"detected": false,
"confidence": 2,
"reasons": []
}
}
POST/webhook/tracio

TRACIO ส่งเหตุการณ์ที่ลงนามไปยัง endpoint ของคุณทุกครั้งที่มีการระบุตัวตน ตรวจสอบ header X-Tracio-Signature จากนั้นดำเนินการกับ payload JSON แบบ flat นี่คือพื้นผิวเหตุการณ์ฝั่งเซิร์ฟเวอร์ — ไม่มีการอ่าน REST แบบ poll-by-requestId

Request

POST /webhook/tracio HTTP/1.1
Host: your-server.com
Content-Type: application/json
X-Tracio-Signature: t=1710432000,v1=5257a869e7ecebed...

Response

{
"requestId": "1710432000_abc123",
"visitorId": "X7fh2Hg9LkMn3pQr",
"bot": { "result": "human", "type": "", "score": 0.02 },
"identification": { "confidence": 0.95, "visitType": "returning" },
"network": { "vpn": false, "proxy": false, "tor": false, "datacenter": false },
"decision": { "action": "allow", "riskScore": 4 }
}
POST/api/v1/workspaces/{workspaceId}/webhooks

ลงทะเบียน webhook endpoint ผ่าน workspace management API ตรวจสอบสิทธิ์ด้วย dashboard session (Clerk) JWT ของคุณและตรวจกับบทบาทใน workspace ของคุณ signing secret จะถูกคืนค่าเพียงครั้งเดียวตอนสร้าง

Request

curl -X POST \
https://app.tracio.ai/api/v1/workspaces/{workspaceId}/webhooks \
-H "Authorization: Bearer <clerk-session-jwt>" \
-H "Content-Type: application/json" \
-d '{ "url": "https://your-server.com/webhook/tracio", "events": [] }'

Response

{
"ok": true,
"data": {
"id": "wh_abc123",
"url": "https://your-server.com/webhook/tracio",
"events": [],
"signingSecret": "f3a9…<hex>",
"status": "active",
"createdAt": "2024-03-12T16:00:00Z"
}
}
GET/api/v1/workspaces/{workspaceId}/visitors/{visitorId}

ค้นหาประวัติที่จัดเก็บไว้ของผู้เข้าชมผ่าน workspace management API ตรวจสอบสิทธิ์ด้วย dashboard session (Clerk) JWT ของคุณ รองรับคำขอสิทธิ์การเข้าถึงข้อมูลตาม GDPR

Request

curl \
https://app.tracio.ai/api/v1/workspaces/{workspaceId}/visitors/X7fh2Hg9LkMn3pQr \
-H "Authorization: Bearer <clerk-session-jwt>"

Response

{
"ok": true,
"data": {
"visitorId": "X7fh2Hg9LkMn3pQr",
"firstSeenAt": "2024-03-01T08:11:00Z",
"lastSeenAt": "2024-03-16T14:22:01Z",
"visits": 12
}
}

การตรวจสอบสิทธิ์

TRACIO ใช้ข้อมูลรับรองสามชุด หนึ่งชุดต่อหนึ่งพื้นผิว: public key สำหรับ browser SDK, dashboard session (Clerk) JWT ของคุณสำหรับ workspace management API และ HMAC signing secret เพื่อตรวจสอบการส่ง webhook ไม่มี API secret แบบแยกเดี่ยว

# Client SDK — public key (safe to ship in the browser)
Tracio.init({ publicKey: '5ca175fc...' })
# Workspace management API — dashboard session (Clerk) JWT,
# additionally checked against your workspace role (RBAC)
Authorization: Bearer <clerk-session-jwt>
# Webhook verification — HMAC-SHA256 over "<t>.<rawBody>"
X-Tracio-Signature: t=<unix>,v1=<hmac_sha256_hex>

ขีดจำกัดอัตรา

ขีดจำกัดคิดต่อ workspace การตอบกลับของ Management API มี header X-RateLimit-Limit, X-RateLimit-Remaining และ Retry-After

แพ็กเกจการระบุตัวตนเหตุการณ์ webhookManagement APIการค้นหาผู้เข้าชม
ฟรี100/day100/day50/day100/day
Pro1,000/min1,000/min500/min1,000/min
Enterprise10,000/min10,000/min5,000/min10,000/min

รหัสข้อผิดพลาด

ข้อผิดพลาดทั้งหมดคืนค่า JSON body พร้อมฟิลด์ code, message และ details

400Bad Requestrequest body ผิดรูปแบบหรือขาดฟิลด์ที่จำเป็น
401Unauthorizedข้อมูลรับรองขาดหายหรือไม่ถูกต้อง — public key (SDK), Clerk JWT (management API) หรือลายเซ็น webhook
403Forbiddenบทบาทใน workspace ของคุณ (RBAC) ไม่มีสิทธิ์สำหรับการดำเนินการนี้
404Not Foundไม่พบ visitor ID หรือ webhook ใน workspace ของคุณ
429Rate Limitedคำขอมากเกินไป ตรวจสอบ header Retry-After และขีดจำกัดแพ็กเกจของคุณ
500Internal Errorข้อผิดพลาดเซิร์ฟเวอร์ ลองใหม่ด้วย exponential backoff หากยังคงเกิดขึ้น ติดต่อฝ่ายสนับสนุน

รูปแบบการตอบกลับข้อผิดพลาด

{
"error": {
"code": 429,
"message": "Rate limit exceeded",
"details": "1000 requests per minute limit reached for this workspace",
"retryAfter": 12
}
}

เริ่มสร้าง

รับ API key ของคุณและสร้างคำขอระบุตัวตนครั้งแรกภายในไม่ถึง 5 นาที