Rychlý start
Získejte API klíč a proveďte svůj první požadavek za méně než 5 minut.
1Získejte svůj API klíč
Zaregistrujte si bezplatný účet pro okamžité získání API klíče, nebo nejprve vyzkoušejte živé demo.
Váš API klíč vypadá takto: sk_live_abc123...
2Proveďte svůj první požadavek
Vyberte si preferovaný jazyk:
curl -X POST https://api.scorika.com/v1/score \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"ip": "1.2.3.4"
}'3Zpracujte odpověď
{
"data": {
"case_id": "case_abc123def456",
"score": 23,
"decision": "allow",
"confidence": 0.94,
"reason_codes": [
{
"code": "EMAIL_FREE_MAJOR",
"severity": "low",
"score_impact": 5,
"description": "Free email provider detected"
}
],
"signals": [
{
"type": "email",
"status": "success",
"score_delta": 5
},
{
"type": "ip",
"status": "success",
"score_delta": 0
}
]
},
"meta": {
"request_id": "req_xyz789",
"latency_ms": 142
}
}skóre: 0-30
Nízké riziko - obvykle povolit
skóre: 31-70
Střední riziko - doporučena kontrola
skóre: 71-100
Vysoké riziko - obvykle zamítnout
Průvodce integrací
Jak integrovat Scorika do vaší platformy.
Varování ohledně timeoutu
Nikdy nevolejte Scorika API synchronně v procesu dokončení objednávky nebo registrace bez timeoutu. Pokud je naše API pomalé nebo nedostupné, vaši zákazníci by neměli být blokováni.
Doporučený timeout: 3–5 sekund
Záložní rozhodnutí: kontrola (povolit + asynchronní kontrola)
Osvědčené postupy
✓ Co dělat
- • Nastavte timeout (3-5s) u všech API volání
- • Implementujte náhradní řešení (fallback) pro timeouty/chyby
- • Pro API klíče používejte proměnné prostředí
- • Logujte case_id pro účely ladění
✗ Co nedělat
- • Neblokujte proces objednávky při chybě API
- • Neprovádějte synchronní volání bez timeoutu
- • Nesdílejte API klíče v kódu na straně klienta
- • Neukládejte surové API odpovědi obsahující osobní údaje
Příklady z produkce
Zkopírujte jeden z těchto produkčních klientů:
# scorika_client.py - Production-ready Scorika client
import requests
from requests.exceptions import Timeout, RequestException
from dataclasses import dataclass
from typing import Optional, List, Dict, Any
from enum import Enum
class Decision(Enum):
ALLOW = "allow"
REVIEW = "review"
DENY = "deny"
@dataclass
class ScoreResult:
case_id: Optional[str]
score: int
decision: Decision
confidence: float
signals: List[Dict]
fallback: bool = False # True if using fallback response
class ScorikaClient:
BASE_URL = "https://api.scorika.com/v1"
TIMEOUT = 5 # seconds - never block critical flows!
def __init__(self, api_key: str):
self.api_key = api_key
self.session = requests.Session()
self.session.headers.update({
"X-Api-Key": api_key,
"Content-Type": "application/json"
})
def score(
self,
email: Optional[str] = None,
ip: Optional[str] = None,
domain: Optional[str] = None,
url: Optional[str] = None
) -> ScoreResult:
"""Evaluate risk for given inputs with timeout protection."""
payload = {k: v for k, v in {
"email": email, "ip": ip, "domain": domain, "url": url
}.items() if v}
try:
response = self.session.post(
f"{self.BASE_URL}/score",
json=payload,
timeout=self.TIMEOUT # IMPORTANT: Always set timeout!
)
response.raise_for_status()
data = response.json()["data"]
return ScoreResult(
case_id=data["case_id"],
score=data["score"],
decision=Decision(data["decision"]),
confidence=data["confidence"],
signals=data.get("signals", [])
)
except (Timeout, RequestException) as e:
# Fallback: allow but flag for async review
print(f"Scorika unavailable: {e}, using fallback")
return ScoreResult(
case_id=None,
score=50,
decision=Decision.REVIEW,
confidence=0.0,
signals=[],
fallback=True
)
# Usage example
if __name__ == "__main__":
client = ScorikaClient("sk_live_your_api_key")
result = client.score(email="user@example.com", ip="1.2.3.4")
if result.fallback:
print("⚠ Using fallback - queue for async review")
elif result.decision == Decision.ALLOW:
print(f"✓ Allowed (score: {result.score})")
elif result.decision == Decision.REVIEW:
print(f"⚠ Review needed (score: {result.score})")
else:
print(f"✗ Denied (score: {result.score})")Řešení chyb
Vždy implementujte správné zpracování chyb pro produkční nasazení:
try { const result = await client.score({ email, ip }); // Handle decision} catch (error) { if (error.status === 429) { // Rate limited - back off and retry await sleep(retryAfter * 1000); return retry(); } else if (error.status >= 500) { // Server error - allow and log for investigation console.error('Scorika unavailable, allowing by default'); return { decision: 'allow', fallback: true }; } throw error;}Autentizace
Všechny API požadavky vyžadují autentizaci pomocí API klíče předaného v hlavičce X-Api-Key.
Bezpečnostní poznámka: Nikdy nezveřejňujte svůj API klíč v klientském kódu. API volání provádějte vždy ze svého serveru.
curl -H "X-Api-Key: sk_live_your_api_key_here" \ https://api.scorika.com/v1/scoreZpracování chyb
API používá standardní HTTP stavové kódy a vrací chyby v konzistentním formátu JSON.
| Stav | Popis |
|---|---|
200 | Úspěch |
400 | Bad Request - Neplatné parametry |
401 | Unauthorized - Neplatný API klíč |
403 | Forbidden - Chybějící rozsah |
429 | Překročen limit požadavků |
500 | Internal Server Error - Vnitřní chyba serveru |
Příklad chybové odpovědi
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid request parameters",
"details": [
{
"field": "email",
"code": "INVALID_FORMAT",
"message": "Email must be a valid email address"
}
],
"request_id": "req_xyz789",
"documentation_url": "https://docs.scorika.io/errors/VALIDATION_ERROR"
}
}POST /v1/score
Vyhodnoťte riziko pro danou sadu vstupů a získejte rizikové skóre s rozhodnutím.
Tělo požadavku
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
email | string | No* | E-mailová adresa k vyhodnocení |
ip | string | No* | IP adresa (IPv4 nebo IPv6) |
domain | string | No* | Název domény ke kontrole |
url | string | No* | Kompletní URL k analýze |
* Je vyžadován alespoň jeden vstupní parametr.
Signál e-mailu
Signál e-mailu analyzuje e-mailové adresy z hlediska různých rizikových indikátorů.
Kódy důvodů
disposable_emailE-mail je od známého poskytovatele dočasných e-mailů
free_providerE-mail je od bezplatného poskytovatele (Gmail, Yahoo atd.)
valid_mxDoména má platné MX záznamy
IP signál
IP signál analyzuje IP adresy na přítomnost VPN, proxy a dalších rizikových indikátorů.
Kódy důvodů
tor_exit_nodeIP adresa je známý výstupní uzel Tor
vpn_detectedDetekována VPN
residentialIP adresa se jeví jako rezidenční připojení
Signál domény
Signál domény analyzuje názvy domén z hlediska stáří, reputace a dalších indikátorů.
Kódy důvodů
newly_registeredDoména byla registrována během posledních 30 dnů
young_domainDoména je mladší než 6 měsíců
established_domainDoména je starší než 1 rok
SDK a vývojářské nástroje
Oficiální SDK, kolekce API a vývojářské nástroje pro urychlení vaší integrace.
Python SDK
pip install scorika
Oficiální Python klient s podporou async, type hints a logikou opakování.
Node.js SDK
npm install @scorika/client
TypeScript-first SDK s kompletními definicemi typů a podporou ESM.
Ruby Gem
gem install scorika
Gem přátelský k Rails s integrací ActiveSupport.
Vývojářské nástroje
Postman kolekce
Importujte si připravené požadavky do Postmana
Specifikace OpenAPI
Stáhněte si specifikaci OpenAPI 3.0 pro generování kódu
Interaktivní API reference
Vyzkoušejte si volání API přímo ve vašem prohlížeči
Mock server
Otestujte svou integraci bez zásahu do produkce
https://mock.scorika.com/v1