Aller au contenu

Référence API

API antifraude

Un SDK navigateur pour l'identification, des webhooks signés pour les événements en temps réel et une API de gestion d'espace de travail. Tout ce qu'il vous faut pour stopper la fraude au niveau de l'appareil.

SDK@tracio/sdk

Identifiez un visiteur dans le navigateur avec le SDK client. Renvoie un identifiant visiteur stable et un verdict de bot sans aller-retour serveur. La clé publique peut être livrée en toute sécurité dans le code côté client.

Requête

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

Réponse

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

TRACIO délivre un événement signé à votre endpoint à chaque identification. Vérifiez l'en-tête X-Tracio-Signature, puis agissez sur le payload JSON à plat. C'est la surface d'événements côté serveur — il n'y a pas de lecture REST poll-by-requestId.

Requête

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

Réponse

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

Enregistrez un endpoint webhook via l'API de gestion d'espace de travail. Authentifié avec le JWT de votre session tableau de bord (Clerk) et vérifié par rapport à votre rôle dans l'espace de travail. Le secret de signature est renvoyé une seule fois, à la création.

Requête

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éponse

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

Consultez l'historique stocké d'un visiteur via l'API de gestion d'espace de travail, authentifiée avec le JWT de votre session tableau de bord (Clerk). Prend en charge les demandes de droit d'accès au titre du RGPD.

Requête

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

Réponse

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

Authentification

TRACIO utilise trois identifiants, un par surface : une clé publique pour le SDK navigateur, le JWT de votre session tableau de bord (Clerk) pour l'API de gestion d'espace de travail, et un secret de signature HMAC pour vérifier les livraisons webhook. Il n'y a pas de secret API autonome.

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

Limites de débit

Les limites sont par espace de travail. Les réponses de l'API de gestion incluent les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et Retry-After.

PlanIdentificationsÉvénements webhookAPI de gestionConsultations de visiteur
Gratuit100/day100/day50/day100/day
Pro1,000/min1,000/min500/min1,000/min
Enterprise10,000/min10,000/min5,000/min10,000/min

Codes d'erreur

Toutes les erreurs renvoient un corps JSON avec les champs code, message et details.

400Bad RequestCorps de requête malformé ou champs requis manquants.
401UnauthorizedIdentifiants manquants ou invalides — clé publique (SDK), JWT Clerk (API de gestion) ou signature webhook.
403ForbiddenVotre rôle dans l'espace de travail (RBAC) n'a pas la permission pour cette opération.
404Not FoundIdentifiant visiteur ou webhook introuvable dans votre espace de travail.
429Rate LimitedTrop de requêtes. Vérifiez l'en-tête Retry-After et les limites de votre plan.
500Internal ErrorErreur serveur. Réessayez avec un backoff exponentiel. Si le problème persiste, contactez le support.

Format de la réponse d'erreur

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

Commencez à développer

Obtenez votre clé API et effectuez votre première requête d'identification en moins de 5 minutes.