API-referentie voor detectie van onmogelijke reizen
POST/v1/risk/check
Vergelijkt de herleide locatie van een opgegeven IP met een opgeslagen baseline per gebruiker en classificeert de daaruit voortvloeiende reissnelheid. Een ruw signaal voor je eigen fraudeworkflow, geen definitief oordeel — neem contact met ons op om de beschikbaarheid te bevestigen voordat je dit integreert; onafhankelijke handhaving van het risicoplan en de gereedheid voor checkout zijn niet geverifieerd.
Authenticatie
Geef een geheime sleutel mee via Authorization: Bearer YOUR_SECRET_KEY, hetzelfde sleuteltype als de lookup-endpoints. Stuur een JSON-body met userId, ip en een optionele boolean commit (standaard true; zet op false voor een speculatieve controle die de opgeslagen baseline niet mag verplaatsen).
Antwoordvelden
- risk
- low, medium of high.
- impossibleTravel
- Boolean-samenvatting van of de daaruit voortvloeiende snelheid tussen de vorige en huidige locatie een plausibele reissnelheid overschrijdt.
- distanceKm, impliedSpeedKmh, elapsedSeconds
- De afstand en tijd tussen de vorige en huidige waarneming, en de snelheid die dat impliceert. Null bij de allereerste controle van een gebruiker, wanneer er geen vorige locatie is om mee te vergelijken.
- previousLocation
- country, latitude, longitude en observedAt voor de opgeslagen baseline vóór deze aanroep. Null wanneer dit de allereerste controle voor deze userId is.
- currentLocation
- country, latitude en longitude voor het ip dat je bij deze aanroep hebt opgegeven.
Foutmeldingen
- 400
- Onjuist geformatteerd IP-adres of ontbrekende userId.
- 401
- Ontbrekende of ongeldige API-sleutel.
- 403
- Er is een publiceerbare sleutel gebruikt in plaats van een geheime sleutel.
- 422
- Het opgegeven IP kon niet naar een locatie worden herleid.
- 429
- Rate limit overschreden voor het huidige venster van één minuut.
Voorbeeld
Verzoek
curl https://api.watch-ip.com/v1/risk/check \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"userId": "u_123", "ip": "203.0.113.1"}'Antwoord
{
"risk": "high",
"impossibleTravel": true,
"distanceKm": 8843.2,
"impliedSpeedKmh": 4421.6,
"elapsedSeconds": 7200,
"previousLocation": { "country": "FR", "latitude": 48.8566, "longitude": 2.3522, "observedAt": "2026-09-06T12:00:00.000Z" },
"currentLocation": { "country": "US", "latitude": 30.2672, "longitude": -97.7431 }
}Limieten
v1 slaat alleen de meest recente locatie per gebruiker op, geen geschiedenisvenster — verwacht valse positieven door snel wisselende VPN's of IP-verloop op mobiele netwerken, aangezien er nog geen VPN-/datacenterbewuste onderdrukking is. Behandel het resultaat als een ruw signaal, geen definitief oordeel. Omdat dit endpoint een aan een userId gekoppelde locatie opslaat voorbij een enkele verzoek/antwoord-cyclus, maakt het gebruik ervan Watch-IP tot een verwerker van die gegevens namens jou — zie het Addendum voor gegevensverwerking.
Gerelateerde pagina's
- GET /v1/lookup/:ip-referentieVolledige veldreferentie voor het endpoint voor het opzoeken van een willekeurig IP.
- AuthenticatiePubliceerbare versus geheime sleutels, origin-binding en rate limits.
- Detectie van onmogelijke reizenVergelijk de IP-afgeleide locatie van een inlog met het vorige opgeslagen punt voor die gebruiker.
- Detectie van inlogrisicoGebruik IP-afgeleide locatiewijzigingen om inlogbeoordeling te ondersteunen, zodra toegang tot de risicocontrole is bevestigd.