Skip to content

/api/check

Score any domain, email, phone, or IBAN for fraud risk.

POST https://kairoscheck.net/api/check

Authentication

Pass your API key as a Bearer token in the Authorization header:

Authorization: Bearer kc_live_YOUR_KEY_HERE

Request body

Send application/json. At least one field is required.

FieldTypeDescription
domainstringDomain name to score. e.g. suspicious-shop.io
emailstringEmail address to score.
phonestringPhone number (any format). e.g. +351912345678
ibanstringIBAN to score. e.g. PT50 0002 0123 1234 5678 9015 4
regionobjectOptional. {"country": "PT"}. Defaults to EU.

Response — 200 OK

{
  "score": 72,           // 0–100, higher = more suspicious
  "verdict": "block",    // "allow" | "review" | "block"
  "signals": [           // reasons driving the score
    "Domain registered 3 days ago",
    "Matches known phishing pattern"
  ],
  "dominant_threat": "phishing",  // primary threat category or null
  "type": "domain",      // which field was scored
  "query": "suspicious-shop.io",
  "timestamp": "2026-05-10T12:00:00.000Z",
  "ref": "a1b2c3d4"      // unique reference ID for audit
}

Verdict thresholds

VerdictScore rangeRecommended action
allow0–39Proceed normally.
review40–69Queue for manual review or add friction.
block70–100Reject or escalate.

Error responses

StatusBodyCause
400{"error": "Provide at least one of: domain, phone, iban, email"}No scorable field provided.
401{"error": "Invalid API key"}Key missing, malformed, revoked, or cancelled.
429{"error": "Monthly quota exceeded. Resets on 2026-06-01", "reset_at": "..."}Monthly quota exhausted.
500{"error": "An error occurred.", "ref": "..."}Internal error. Use ref to contact support.

Quota headers

Quota is enforced monthly per API key. Check the response body on 429 for reset_at. To see your current usage, count your requests since the 1st of the current month using your own logs — or contact support with your key preview.

GDPR note

Under GDPR Art. 22, automated scoring must not be the sole basis for decisions affecting individuals. Kairos Check scores are informational. Your application must maintain human oversight for decisions with significant impact.

Examples

Score an email

curl -X POST https://kairoscheck.net/api/check \
  -H "Authorization: Bearer kc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "winner@lottery-claim-now.io"}'

Score a phone number

curl -X POST https://kairoscheck.net/api/check \
  -H "Authorization: Bearer kc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+351910000000", "region": {"country": "PT"}}'