Hoppa till innehåll

API-referens

Antibedrägeri-API

En webbläsar-SDK för identifiering, signerade webhooks för händelser i realtid och ett skrivskyddat Server API för historik. Allt du behöver för att stoppa bedrägeri på enhetsnivå.

SDK@tracio/sdk

Identifiera en besökare i webbläsaren med klient-SDK:n. Returnerar ett stabilt besökar-ID och botverdikt utan server-tur och retur. Den publika nyckeln är säker att inkludera i klientsideskod.

Begäran

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

Svar

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

TRACIO levererar en signerad händelse till din endpoint vid varje identifiering. Verifiera X-Tracio-Signature-headern och agera sedan på den platta JSON-nyttolasten. Detta är push-ytan: du behöver inte polla efter den. Behöver du ändå läsa ett besök i efterhand svarar Server API:t på requestId.

Begäran

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

Svar

{
"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 }
}
GET/.well-known/webhook-keys

Hämta plattformens publika Ed25519-nycklar som används för att verifiera webhook-leveranser. Den här routen kräver ingen autentisering och cachas i fem minuter. Fältet kid i signatur-headern talar om vilken nyckel du ska använda.

Begäran

curl https://api.tracio.ai/.well-known/webhook-keys

Svar

{
"keys": [
{
"kid": "k1",
"alg": "Ed25519",
"publicKey": "MCowBQYDK2VwAyEA9tR2v1kQ..."
}
]
}
GET/v1/visitors/{visitorId}

Läs en besökares historik från Server API:t med din hemliga nyckel. Tillgängligt från Pro-planen. Fönstret begränsas till din plan, och det fönster du faktiskt fick rapporteras tillbaka i meta. Stödjer förfrågningar om rätt till åtkomst enligt GDPR.

Begäran

# Server API — available on the Pro plan and above
curl "https://api.tracio.ai/v1/visitors/X7fh2Hg9LkMn3pQr5tBvQw3xZa9mK2pL4nR8dT6y" \
-H "Authorization: Bearer tracio_sk_XXXX...XXXX"

Svar

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

Autentisering

TRACIO använder tre autentiseringsuppgifter, en per yta: en publik nyckel för webbläsar-SDK:n, en hemlig nyckel (tracio_sk_…) som skickas som Authorization: Bearer till Server API:t och en HMAC-signeringshemlighet för att verifiera webhook-leveranser. Den hemliga nyckeln skapas i dashboarden, visas en gång och får aldrig nå en webbläsare — Server API:t returnerar medvetet inga CORS-headers.

# Client SDK — public key (safe to ship in the browser)
Tracio.init({ publicKey: '5ca175fc...' })
# Server API — secret key, created in the dashboard and shown once
Authorization: Bearer tracio_sk_XXXX...XXXX
# Webhook verification — HMAC-SHA256 over "<t>.<rawBody>"
X-Tracio-Signature: t=<unix>,v1=<hmac_sha256_hex>

Hastighetsgränser

Gränser gäller per arbetsyta. Anrop till Server API:t räknas separat från identifieringar, så att läsa din egen historik förbrukar aldrig den kvot du betalar för. Varje svar bär X-RateLimit-Limit, X-RateLimit-Remaining och X-RateLimit-Reset, plus Retry-After vid 429. Server API:t ingår inte i Free-planen.

PlanServer API-frekvensServer API per dagWebhook-endpointsFrågefönster
GratisIngår inteIngår inte07 days
Pro10 req/s10,000530 days
Business50 req/s100,0002090 days
Enterprise200 req/sObegränsat100365 days

Felkoder

Alla fel returnerar samma hölje: ett error-objekt med en kod som sträng, ett läsbart message och requestId för det misslyckade anropet.

400Bad RequestFelformaterade frågeparametrar, ett fönster som inte stöds, eller en identifierare som inte är ett giltigt besökar-ID.
401UnauthorizedSaknade eller ogiltiga autentiseringsuppgifter — publik nyckel (SDK), hemlig nyckel (Server API) eller webhook-signatur.
402Upgrade RequiredDin plan inkluderar inte åtkomst till Server API. Den börjar på Pro-planen.
404Not FoundIngen besökare eller session med den identifieraren inom din plans frågefönster.
405Method Not AllowedServer API:t stöder endast läsning. Varje route svarar på GET och inget annat.
429Rate LimitedFör många begäranden per sekund, eller så är dagskvoten förbrukad. Kontrollera Retry-After-headern och dina plangränser.
500Internal ErrorServerfel. Försök igen med exponentiell backoff. Kontakta support med requestId om det kvarstår.
503Service UnavailableAPI:et kan tillfälligt inte svara. Försök igen med exponentiell backoff.

Format för felsvar

{
"error": {
"code": "rate_limited",
"message": "too many requests",
"requestId": "8f14e45fceea167a5a36dedd"
}
}

Börja bygga

Hämta din API-nyckel och gör din första identifieringsbegäran på under 5 minuter.