Quick Start
Use one API key and call `/v1/check/url` to start.Используйте API key и вызовите `/v1/check/url` для старта.
curl -X POST https://securilayer.dev/v1/check/url \
-H "Content-Type: application/json" \
-H "X-API-Key: sk_live_xxxxx" \
-d '{"url":"https://example.com"}'
import requests
resp = requests.post(
"https://securilayer.dev/v1/check/url",
headers={"X-API-Key": "sk_live_xxxxx"},
json={"url": "https://example.com"},
timeout=10,
)
resp.raise_for_status()
data = resp.json()
print(data["verdict"], data.get("reason_codes", []))
const res = await fetch("https://securilayer.dev/v1/check/url", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "sk_live_xxxxx"
},
body: JSON.stringify({ url: "https://example.com" })
});
const data = await res.json();
console.log(data.verdict, data.reason_codes);
$ch = curl_init('https://securilayer.dev/v1/check/url');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'X-API-Key: sk_live_xxxxx'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['url' => 'https://example.com']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
Need an API key? Create it in DashboardНужен API ключ? Создайте в кабинете
Authentication
| Header | Value | NotesКомментарий |
|---|---|---|
X-API-Key | sk_xxxxx | Required for API routes.Обязателен для API маршрутов. |
Authorization | Bearer <jwt> | Used for dashboard/session routes.Используется для dashboard/session маршрутов. |
| Key typeТип ключа | Scope |
|---|---|
| extension | Browser checks + extension telemetryПроверки расширения + telemetry |
| api_standard | Core check endpointsБазовые check endpoints |
| api_credits | Pay-as-you-go usage with token billingPay-as-you-go использование с токен-биллингом |
| api_enterprise | Dedicated limits, SLA, custom policy contractsВыделенные лимиты, SLA, кастомные policy-контракты |
Endpoints
| Method | Path | Request | Response |
|---|---|---|---|
| POST | /v1/check/url | {"url": "string"} | DecisionResponse |
| POST | /v1/check/text | {"text": "string"} | DecisionResponse |
| POST | /v1/check/phone | {"phone": "string"} | DecisionResponse |
| POST | /v1/check/media | {"file": "base64"} | DecisionResponse |
| GET | /v1/credits/balance | - | {"tokens": int, "usd_balance": float} |
| GET | /v1/decisions | ?limit=50 | Decision history for org_idИстория решений для org_id |
Response Format
{
"verdict": "SAFE | SUSPICIOUS | DANGER",
"confidence": 0.93,
"reason_codes": ["HOMOGRAPH", "NEW_DOMAIN"],
"explanation": "Potential domain spoofing pattern",
"decision_id": "b54f5f7e-2e5a-4ad1-9f65-4fbe818f8e44",
"billing_mode": "subscription | credits | overflow",
"tokens_used": 1
}
| Code | DescriptionОписание | Severity |
|---|---|---|
| HOMOGRAPH | Suspicious domain visual spoofingВизуальная подмена домена | high |
| REDIRECT_MISMATCH | Unexpected redirect chain mismatchНесоответствие в цепочке редиректов | medium |
| DRAINER_PATTERN | Crypto wallet drainer signature detectedОбнаружен паттерн crypto drainer | critical |
| GOV_IMPERSONATION | Government authority impersonationИмперсонация госструктуры | critical |
X-Quota-Remaining · X-Credits-Balance · X-Billing-ModeError Codes
| Status | MeaningЗначение | What to doЧто делать |
|---|---|---|
| 401 | Invalid or missing API keyОтсутствует или неверный API ключ | Create/rotate key in DashboardСоздать/ротировать ключ в кабинете |
| 402 | Insufficient balance or expired subscriptionНедостаточный баланс или истёкшая подписка | Top up credits or renew planПополнить Credits или продлить план |
| 422 | Invalid input (blocked SSRF, malformed URL, etc.)Неверный ввод (SSRF, некорректный URL и т.д.) | Validate client payloadПровалидировать payload на клиенте |
| 429 | Rate limit exceeded (tokens not charged)Превышен rate limit (токены не списываются) | Retry with backoffПовторить с backoff |
| 503 | Temporary service degradationВременная деградация сервиса | Retry later and monitor statusПовторить позже и проверить статус |
Billing / Tokens
| Check typeТип проверки | Tokens | USD |
|---|---|---|
| URL / Text | 1 | $0.004 |
| Phone | 3 | $0.012 |
| Media | 8 | $0.032 |
| Sandbox | 20 | $0.080 |
Starter
$29 → 7,250 tokens
Growth
$99 → 26,125 tokens (+5%)
Scale
$299 → 82,225 tokens (+10%)
Pro
$999 → 287,212 tokens (+15%)
Real Use Cases
1) Telegram mini app1) Telegram mini app
Validate links posted by users before publishing to group chat.Проверка ссылок пользователей до публикации в группе.
2) E-commerce moderation2) E-commerce модерация
Scan links in product reviews and comments to block phishing campaigns.Проверка ссылок в отзывах и комментариях для блокировки фишинга.
3) Discord bot wrapper3) Discord bot wrapper
Custom bot delegates detection to SecuriLayer API while keeping your own command UX.Свой бот передаёт детектирование в SecuriLayer API, сохраняя ваш UX команд.
4) Bulk URL checker4) Bulk URL checker
Rate-limit aware Python batch script with retries and result persistence.Batch-скрипт на Python с учётом rate-limit и retry-политики.