Salt la conținut

Referință API

API antifraudă

Un SDK de browser pentru identificare, webhook-uri semnate pentru evenimente în timp real și un API de management al workspace-ului. Tot ce ai nevoie ca să oprești frauda la nivel de dispozitiv.

SDK@tracio/sdk

Identifică un vizitator în browser cu SDK-ul client. Returnează un ID de vizitator stabil și un verdict de bot fără drum dus-întors către server. Cheia publică poate fi inclusă în siguranță în codul client-side.

Cerere

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

Răspuns

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

TRACIO livrează un eveniment semnat către endpoint-ul tău la fiecare identificare. Verifică antetul X-Tracio-Signature, apoi acționează pe baza payload-ului JSON plat. Aceasta este suprafața de evenimente server-side — nu există citire REST de tip poll-by-requestId.

Cerere

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

Răspuns

{
"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

Înregistrează un endpoint webhook prin API-ul de management al workspace-ului. Autentificat cu JWT-ul sesiunii tale din panou (Clerk) și verificat față de rolul tău din workspace. Secretul de semnare este returnat o singură dată, la creare.

Cerere

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": [] }'

Răspuns

{
"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}

Caută istoricul stocat al unui vizitator prin API-ul de management al workspace-ului, autentificat cu JWT-ul sesiunii tale din panou (Clerk). Susține cererile de drept de acces conform GDPR.

Cerere

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

Răspuns

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

Autentificare

TRACIO folosește trei credențiale, câte una per suprafață: o cheie publică pentru SDK-ul de browser, JWT-ul sesiunii tale din panou (Clerk) pentru API-ul de management al workspace-ului și un secret de semnare HMAC pentru a verifica livrările webhook. Nu există un secret API de sine stătător.

# 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>

Limite de rată

Limitele sunt per workspace. Răspunsurile API-ului de management includ anteturile X-RateLimit-Limit, X-RateLimit-Remaining și Retry-After.

PlanIdentificăriEvenimente webhookAPI de managementCăutări de vizitatori
Gratuit100/day100/day50/day100/day
Pro1,000/min1,000/min500/min1,000/min
Enterprise10,000/min10,000/min5,000/min10,000/min

Coduri de eroare

Toate erorile returnează un corp JSON cu câmpurile code, message și details.

400Bad RequestCorp de cerere malformat sau câmpuri obligatorii lipsă.
401UnauthorizedCredențiale lipsă sau invalide — cheie publică (SDK), JWT Clerk (API de management) sau semnătură webhook.
403ForbiddenRolul tău din workspace (RBAC) nu are permisiunea pentru această operație.
404Not FoundID-ul de vizitator sau webhook-ul nu a fost găsit în workspace-ul tău.
429Rate LimitedPrea multe cereri. Verifică antetul Retry-After și limitele planului tău.
500Internal ErrorEroare de server. Reîncearcă cu exponential backoff. Dacă persistă, contactează suportul.

Formatul răspunsului de eroare

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

Începe să construiești

Obține cheia API și fă prima ta cerere de identificare în mai puțin de 5 minute.