Système identité et risque
Déterminez si un utilisateur est réel, sûr et digne de confiance
Combinez e-mail, téléphone, IP et signaux comportementaux en une décision de risque unique avant que les mauvais acteurs n'atteignent votre produit.
Obtenir une clé APIMoteur
Moteur identité et risque
Un appel renvoie une image de risque complète : e-mail, IP, téléphone et signaux comportementaux composés en une décision.
{
"email": "[email protected]",
"ip_address": "45.33.32.156",
"phone": "+14155552671"
}
{
"risk_score": 0.87,
"is_safe": false,
"confidence": 0.94,
"flags": [
"disposable_email",
"vpn_detected"
],
"signals": {
"email_valid": true,
"phone_valid": false,
"vpn_detected": true,
"disposable_email": true
}
}
Protégez votre produit des faux comptes, bots, fraude et abus. Au lieu d'appeler séparément validation, réseau et texte puis de construire le scoring vous-même, le moteur identité et risque renvoie une décision structurée unique.
Référence API
Base URL: https://requiems.xyz
Vue d'ensemble
Cas d'utilisation
- Block fake signups, disposable emails, and high-risk IPs at registration
- Score users before they transact or access sensitive features
- Identify automated traffic using behavioral and network signals
- Re-evaluate existing accounts when anomalous activity is detected
- Layer fraud signals without building scoring logic yourself
Fonctionnalités
Points de terminaison de l'API
Protect Signup
Evaluate a new user at signup. Returns a full risk decision with per-signal breakdown across email, phone, and IP.
https://requiems.xyz/v1/systems/signup/protect
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
string |
Facultatif | Email address to validate and score. At least one of email, phone, or ip_address is required. | |
| phone | string |
Facultatif | Phone number in E.164 format to validate and check for VoIP or virtual numbers. |
| ip_address | string |
Facultatif | IPv4 or IPv6 address to check for VPN, proxy, TOR, and hosting status. |
Essayez-le
Démo en directRequête
Email address to validate and score. At least one of email, phone, or ip_address is required.
Phone number in E.164 format to validate and check for VoIP or virtual numbers.
IPv4 or IPv6 address to check for VPN, proxy, TOR, and hosting status.
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| risk_score | number |
Composite risk score from 0.0 (clean) to 1.0 (high risk) |
| is_safe | boolean |
True when risk_score is below the safety threshold with no critical flags |
| confidence | number |
Confidence in the decision from 0.0 to 1.0, based on which signals resolved successfully |
| flags | array<string> |
Array of triggered risk flags. Possible values: disposable_email, vpn_detected, proxy_detected, tor_detected, is_hosting |
| signals.email | object |
Email validation result including disposable detection and MX check |
| signals.phone | object |
Phone number validation result with country code and VoIP/virtual detection |
| signals.ip | object |
IP intelligence including VPN/proxy/TOR status and fraud score |
Exemples de code
curl -X POST https://requiems.xyz/v1/systems/signup/protect \
-H "requiems-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"ip_address": "45.33.32.156",
"phone": "+14155552671"
}'
import requests
url = "https://requiems.xyz/v1/systems/signup/protect"
headers = {"requiems-api-key": "YOUR_API_KEY"}
payload = {
"email": "[email protected]",
"ip_address": "45.33.32.156",
"phone": "+14155552671"
}
response = requests.post(url, json=payload, headers=headers)
data = response.json()["data"]
if not data["is_safe"]:
print(f"Blocked: risk_score={data['risk_score']}, flags={data['flags']}")
else:
print("User passed risk check")
const response = await fetch('https://requiems.xyz/v1/systems/signup/protect', {
method: 'POST',
headers: {
'requiems-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: '[email protected]',
ip_address: '45.33.32.156',
phone: '+14155552671'
})
});
const { data } = await response.json();
if (!data.is_safe) {
console.log('Blocked:', data.flags);
}
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/systems/signup/protect')
request = Net::HTTP::Post.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = {
email: '[email protected]',
ip_address: '45.33.32.156',
phone: '+14155552671'
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)['data']
puts data['is_safe'] ? 'Passed' : "Blocked: #{data['flags'].join(', ')}"
Réponses d'erreur
validation_failed
All of email, phone, and ip_address were omitted. At least one is required.
unauthorized
Missing or invalid API key in the requiems-api-key header
Score Risk
Score a user for risk without the full signal breakdown. Lower latency than /signup/protect, suited for background re-scoring and rate limiting.
https://requiems.xyz/v1/systems/risk/score
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
string |
Facultatif | Email address to include in the risk score. | |
| phone | string |
Facultatif | Phone number in E.164 format. |
| ip_address | string |
Facultatif | IPv4 or IPv6 address to check. |
Essayez-le
Démo en directRequête
Email address to include in the risk score.
Phone number in E.164 format.
IPv4 or IPv6 address to check.
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| risk_score | number |
Composite risk score from 0.0 to 1.0 |
| is_safe | boolean |
True when the risk score is below the safety threshold |
| confidence | number |
Confidence in the score based on resolved signals |
| flags | array<string> |
Array of triggered risk flags |
Exemples de code
curl -X POST https://requiems.xyz/v1/systems/risk/score \
-H "requiems-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "ip_address": "45.33.32.156"}'
import requests
response = requests.post(
"https://requiems.xyz/v1/systems/risk/score",
headers={"requiems-api-key": "YOUR_API_KEY"},
json={"email": "[email protected]", "ip_address": "45.33.32.156"}
)
data = response.json()["data"]
print(f"risk_score={data['risk_score']}, is_safe={data['is_safe']}")
const { data } = await fetch('https://requiems.xyz/v1/systems/risk/score', {
method: 'POST',
headers: { 'requiems-api-key': 'YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({ email: '[email protected]', ip_address: '45.33.32.156' })
}).then(r => r.json());
console.log(data.risk_score, data.is_safe);
Réponses d'erreur
validation_failed
All of email, phone, and ip_address were omitted
unauthorized
Missing or invalid API key
Verify User
Deep-verify an email address using domain-level signals including WHOIS age, MX records, and domain availability. Optional IP check. Use for high-value or suspicious accounts.
https://requiems.xyz/v1/systems/user/verify
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
string |
Requis | Email address to verify. Domain-level WHOIS, MX, and DNS checks are run automatically. | |
| ip_address | string |
Facultatif | Optional IPv4 or IPv6 address. When provided, VPN and proxy signals are added to the result. |
Essayez-le
Démo en directRequête
Email address to verify. Domain-level WHOIS, MX, and DNS checks are run automatically.
Optional IPv4 or IPv6 address. When provided, VPN and proxy signals are added to the result.
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| verified | boolean |
True when risk score is below 0.3, confidence is above 0.5, email is valid, domain has MX, and domain is registered |
| confidence | number |
Confidence in the verification result, based on how many signals resolved |
| risk_score | number |
Composite risk score from 0.0 to 1.0 |
| flags | array<string> |
Triggered risk flags. Possible values: email_invalid, disposable_email, no_mx, domain_not_registered, young_domain, whois_unavailable, ip_risk |
| signals.email | object |
Email validation result |
| signals.domain | object |
Domain intelligence including WHOIS age, MX and A record presence, and registration status |
| signals.ip | object |
IP risk signals. Null when ip_address was not provided |
Exemples de code
curl -X POST https://requiems.xyz/v1/systems/user/verify \
-H "requiems-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "ip_address": "45.33.32.156"}'
import requests
response = requests.post(
"https://requiems.xyz/v1/systems/user/verify",
headers={"requiems-api-key": "YOUR_API_KEY"},
json={"email": "[email protected]", "ip_address": "45.33.32.156"}
)
data = response.json()["data"]
print(f"verified={data['verified']}, confidence={data['confidence']}")
const { data } = await fetch('https://requiems.xyz/v1/systems/user/verify', {
method: 'POST',
headers: { 'requiems-api-key': 'YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({ email: '[email protected]', ip_address: '45.33.32.156' })
}).then(r => r.json());
console.log(data.verified, data.confidence);
Réponses d'erreur
validation_failed
email field is missing or empty
unauthorized
Missing or invalid API key
Foire aux questions
Backend tout-en-un pour produits SaaS
Authentification, validation, détection de fraude, intelligence paiements et données mondiales, livrés via une API unifiée.