Stop bots and account abuse in minutes
Dual-layer fraud defense
Castle is natively built to run at the edge and in-app as one system.
Signals flow between both, so what you block early sharpens what you catch later.
Block abuse at the edge
Deploy Castle at the edge to analyze every request and credential stuffing and scripted abuse before they reach your backend.
Catch fraud in the app
Add our SDK to track sessions, devices, and behavior, enriched with your own business context. Spot fake signups, account takeovers, and multi-accounting in real time.
Go live in minutes
Start in monitoring mode, switch to blocking when ready. No DNS swap. No contracts. Just connect, observe, and protect.
Everything you need to stop fraud & abuse
A complete stack of data, tools, and APIs, eliminating the need for multiple, disconnected tools.
Behavioral analysis
Use out-of-the-box signals or create your own custom aggregations and rate limiters.
Device fingerprinting
99.5% accurate fingerprinting. Uncover headless browsers, tampering, carrier data, etc.
Bot detection
Detect bots, scripts, and coordinated attacks. Identify automated behavior and tampering.
AI scoring
Spot account takeover attempts and abusive behavior using self-learning AI.
Rules engine
Real-time allow, challenge, or deny actions. Manage rules seamlessly, without code changes.
Email intelligence
Assess email reputation and risk. Detect disposable domains and enumeration patterns.
Case & state management
Manage dynamic trust, block, and review lists of users, devices, or any custom attribute.
Proactive threat hunting with user behavior analytics
Monitor, analyze, and alert on up to 18 months of historical data enriched with user and device intelligence to stop evolving abuse trends.
Pattern exploration
Uncover bad user activity by querying and visualizing large amounts data and turn into rules with a few clicks.
Network analysis
Spot network of bad user activity via shared devices, emails, IPs, payment methods, or addresses.
Session monitoring
Get a complete history of each user and company, down to individual page views and any custom actions.
Rule backtesting
Test complex risk logic on historical data first, ensuring zero disruption to legitimate users.
Fraudulent behavior, as defined by you
Combine Castle's threat data with velocity checks and rate limiters to categorize users according to what's considered fraud and abuse on your specific platform.
Block fake accounts in minutes
Efficiently weed out fake accounts with a our five minute frontend and backend integration.
Scale threat response with custom flows
Model custom security flows, blocklists, and trusted device management. Manage review states across signups, logins, and in-app activity.
State management
Maintain custom security lists (blocklists, allowlists, trusted devices, reviews, etc.) and update states in real-time based on rules and manual actions.
Inline blocking
Initiate real-time blocks or step-up verifications anywhere in your app without disrupting the user experience.
Alerts & notifications
Ensure your team stay informed with triggered Slack notifications, or automate end-user notifications or internal processes using granular webhooks.
A single API to detect, score, and act. Everywhere.
Retrieve comprehensive threat insights in real-time and use them to tailor the user experience.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205{
"id": "2V48MDnuMar9pvOOwulwK4BXui2",
"type": "$login",
"status": "$succeeded",
"name": "Login Succeeded",
"authenticated": true,
"endpoint": "/v1/risk",
"created_at": "2025-09-02T4:39:05.147Z",
"properties": {
"my_custom_property": 234
},
"device": {
"fingerprint": "zhQ3YFvQTVOIP4EZWcMaNg",
"user_agent": "CryptoKid iOS/2025.9.1 (2025.9.1) (iPhone17,3; iOS 18.0.1; Castle 3.0.7)",
"name": "Adam's iPhone",
"emulator": false,
"rooted": false,
"software": {
"languages": [
"en-us",
"en",
"ru-ru"
],
"type": "mobile_application",
"name": "CryptoKid iOS",
"version": {
"major": "2025",
"full": "2025.9.1"
}
},
"timezone": {
"offset": 420,
"name": "America/New_York"
},
"os": {
"name": "iOS",
"version": {
"major": "16",
"full": "16.6.1"
}
},
"hardware": {
"type": "phone",
"name": "iPhone",
"brand": "Apple",
"model": {
"name": "iPhone 14 Pro Max",
"code": "iPhone15,3"
},
"display": {
"width": 430,
"height": 932
}
},
"cellular": {
"carrier": {
"name": "Verizon Wireless",
"country_code": "US"
},
"available": true
},
"wifi": {
"available": true
},
"battery": {
"charging_state": "unplugged",
"level": 34
},
"location": {
"accuracy": 20,
"city": "Falls Church",
"country_code": "US",
"latitude": 38.8524,
"longitude": 77.148
},
"screen": {
"density": 3,
"orientation": "portrait"
},
"memory": {
"available": 345,
"total": 5500
},
"storage": {
"available": 2011,
"total": 121943
},
"usage": {
"screen_time": 10265,
"uptime": 695312
}
},
"scores": {
"bot": {
"score": 0.033
},
"account_abuse": {
"score": 0.27
},
"account_takeover": {
"score": 0.196
}
},
"ip": {
"address": "108.18.100.121",
"type": "ipv4",
"asn": 701,
"isp": {
"name": "Verizon Fios",
"organization": "Verizon Fios"
},
"location": {
"city": "Falls Church",
"country_code": "US",
"region_code": "VA",
"continent_code": "NA",
"postal_code": "22042",
"latitude": 38.8597,
"longitude": 77.198
},
"privacy": {
"anonymous": false,
"datacenter": false,
"proxy": false,
"tor": false
}
},
"email": {
"normalized": "adam@castle.com",
"domain": "castle.com",
"disposable": false,
"unreachable": false,
"domain_details": {
"created_at": "2014-12-27T00:30:13.000+00:00",
"updated_at": "2021-10-01T17:59:27.000+00:00",
"expires_at": "2026-12-27T00:30:13.000+00:00",
"registrar": "101domain GRS Limited",
"registrant": "Digital Privacy Corporation",
"nameservers": [
"ns-77.awsdns-09.com",
"ns-1523.awsdns-62.org"
],
"spf_record": {
"exists": true
},
"dmarc_record": {
"exists": true
},
"mx_records": {
"null_mx": false
}
}
},
"metrics": {
"1": {
"name": "Users per device fingerprint in 30d",
"value": 5
},
"2": {
"name": "Failed logins per IP in 1h",
"value": 238
},
"3": {
"name": "Average transaction amount per user",
"value": 83.13
}
},
"signals": {
"impossible_travel": {},
"credential_stuffing": {},
"multiple_accounts_per_device": {},
"new_device": {}
},
"policy": {
"action": "deny",
"name": "Block multi-accounting",
"id": "3666300b-adc9-4a9a-9773-f6e692ed348d",
"revision_id": "1d1e6f75-08ea-47ea-bb92-61d598c448e2"
},
"lists": [
"blocked_ips",
"trusted_devices"
],
"list_items": [
"8842e866-86e7-4f18-a023-edbf8cb91107",
"42bc2f4d-64d1-4291-a77f-61c64bd410a0"
],
"user": {
"id": "7312",
"registered_at": "2025-08-13T14:00:58.000Z",
"name": "Adam Winter",
"email": "adam@castle.com",
"phone": "+11123456789",
"traits": {
"nationality": "PL",
"organization_id": "789435"
}
},
"sdks": {
"client": {
"name": "castle-web",
"version": "2.1.8"
}
}
}Built for scale
Our APIs process billions of monthly requests with resilience against severe bot attacks.
100ms response time
Fingerprinting, risk scores, and rules computed instantly in real-time.
Pay-as-you-go pricing
Transparent and predictable plans based on requests or MAU.
Create your free account today
Starting at $0 for 1,000 requests per month, with transparent pricing that scales with your needs.