API Reference
API ป้องกันการฉ้อโกง
SDK สำหรับเบราว์เซอร์ในการระบุตัวตน, webhooks ที่ลงนามสำหรับเหตุการณ์แบบเรียลไทม์ และ Server API แบบอ่านอย่างเดียวสำหรับดูประวัติ ทุกสิ่งที่คุณต้องการเพื่อหยุดการฉ้อโกงที่ระดับอุปกรณ์
Endpoints
@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": "X7fh2Hg9LkMn3pQr5tBvQw3xZa9mK2pL4nR8dT6y", "bot": { "detected": false, "confidence": 2, "reasons": [] }}/webhook/tracioTRACIO ส่งเหตุการณ์ที่ลงนามไปยัง endpoint ของคุณทุกครั้งที่มีการระบุตัวตน ตรวจสอบ header X-Tracio-Signature จากนั้นดำเนินการกับ payload JSON แบบ flat นี่คือพื้นผิวแบบ push คุณไม่ต้อง poll เอง หากคุณจำเป็นต้องอ่านการเข้าชมย้อนหลัง Server API ตอบได้ตาม requestId
Request
POST /webhook/tracio HTTP/1.1Host: your-server.comContent-Type: application/jsonX-Tracio-Payload-Version: 2X-Tracio-Event-Type: identificationX-Tracio-Signature: t=1710432000,v1=5257a869e7ecebed...Response
{ "version": 2, "event": "identification", "eventId": "9c1f4b2e-7d3a-4f18-8b6c-2e5a71d0c4f9:primary", "requestId": "9c1f4b2e-7d3a-4f18-8b6c-2e5a71d0c4f9", "phase": "primary", "visitorId": "X7fh2Hg9LkMn3pQr5tBvQw3xZa9mK2pL4nR8dT6y", "timestamp": "2026-03-12T16:00:00Z", "bot": { "result": "human", "score": 2 }, "identification": { "confidence": 0.95, "incognito": false }, "network": { "vpn": false, "proxy": false, "tor": false, "datacenter": false }, "decision": { "action": "real", "riskScore": 4 }}/.well-known/webhook-keysดึง Ed25519 public key ของแพลตฟอร์มที่ใช้ตรวจสอบการส่ง webhook เส้นทางนี้ไม่ต้องยืนยันตัวตนและถูกแคชไว้ห้านาที ค่า kid ใน header ลายเซ็นจะบอกคุณว่าต้องใช้คีย์ตัวไหน
Request
curl https://api.tracio.ai/.well-known/webhook-keysResponse
{ "keys": [ { "kid": "k1", "alg": "Ed25519", "publicKey": "MCowBQYDK2VwAyEA9tR2v1kQ..." } ]}/v1/visitors/{visitorId}อ่านประวัติของผู้เข้าชมจาก Server API ด้วย secret key ของคุณ ใช้ได้ตั้งแต่แพ็กเกจ Pro กรอบเวลาถูกจำกัดตามแพ็กเกจของคุณ และกรอบเวลาที่คุณได้รับจริงจะถูกรายงานกลับมาใน meta รองรับคำขอสิทธิ์การเข้าถึงข้อมูลตาม GDPR
Request
# Server API — available on the Pro plan and abovecurl "https://api.tracio.ai/v1/visitors/X7fh2Hg9LkMn3pQr5tBvQw3xZa9mK2pL4nR8dT6y" \ -H "Authorization: Bearer tracio_sk_XXXX...XXXX"Response
{ "visitorId": "X7fh2Hg9LkMn3pQr5tBvQw3xZa9mK2pL4nR8dT6y", "firstSeenAt": "2026-03-01T08:11:00Z", "lastSeenAt": "2026-03-16T14:22:01Z", "visits": 12, "incognitoVisits": 1, "uniqueIps": 4, "uniqueCountries": 2, "risk": { "maxRiskScore": 63, "lastDecision": "real" }, "network": { "vpnSeen": false, "proxySeen": false, "torSeen": false, "datacenterSeen": true }, "meta": { "plan": "pro", "retentionDays": 30, "from": "2026-02-14T00:00:00Z", "to": "2026-03-16T14:30:00Z" }}การตรวจสอบสิทธิ์
TRACIO ใช้ข้อมูลรับรองสามชุด หนึ่งชุดต่อหนึ่งพื้นผิว: public key สำหรับ browser SDK, secret key (tracio_sk_…) ที่ส่งเป็น Authorization: Bearer สำหรับ Server API และ HMAC signing secret เพื่อตรวจสอบการส่ง webhook ส่วน secret key ถูกสร้างในแดชบอร์ด แสดงเพียงครั้งเดียว และต้องไม่ไปถึงเบราว์เซอร์เด็ดขาด — Server API จงใจไม่คืนค่า CORS header
# Client SDK — public key (safe to ship in the browser)Tracio.init({ publicKey: '5ca175fc...' })# Server API — secret key, created in the dashboard and shown onceAuthorization: Bearer tracio_sk_XXXX...XXXX# Webhook verification — HMAC-SHA256 over "<t>.<rawBody>"X-Tracio-Signature: t=<unix>,v1=<hmac_sha256_hex>ขีดจำกัดอัตรา
ขีดจำกัดคิดต่อ workspace การเรียก Server API ถูกนับแยกจากการระบุตัวตน การอ่านประวัติของคุณเองจึงไม่กินโควตาที่คุณจ่ายเงินไป ทุกการตอบกลับมี X-RateLimit-Limit, X-RateLimit-Remaining และ X-RateLimit-Reset พร้อม Retry-After เมื่อเกิด 429 ทั้งนี้ Server API ไม่ได้อยู่ในแพ็กเกจ Free
| แพ็กเกจ | อัตรา Server API | Server API ต่อวัน | Webhook endpoint | กรอบเวลาการค้นหา |
|---|---|---|---|---|
| ฟรี | ไม่รวม | ไม่รวม | 0 | 7 days |
| Pro | 10 req/s | 10,000 | 5 | 30 days |
| Business | 50 req/s | 100,000 | 20 | 90 days |
| Enterprise | 200 req/s | ไม่จำกัด | 100 | 365 days |
รหัสข้อผิดพลาด
ข้อผิดพลาดทุกแบบคืนค่า envelope เดียวกัน: อ็อบเจกต์ error พร้อม code แบบสตริง, message ที่มนุษย์อ่านได้ และ requestId ของการเรียกที่ล้มเหลว
รูปแบบการตอบกลับข้อผิดพลาด
{ "error": { "code": "rate_limited", "message": "too many requests", "requestId": "8f14e45fceea167a5a36dedd" }}เริ่มสร้าง
รับ API key ของคุณและสร้างคำขอระบุตัวตนครั้งแรกภายในไม่ถึง 5 นาที