Skip to content

Stop bots and account abuse in minutes

Connect Castle to Cloudflare with no code, or use your own edge stack. Use the SDK to monitor users and stop fraud in-app. Enterprise security without the friction.

How we're different

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.

The Castle platform

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.

Analytics

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.

Customization

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.

Fake Accounts

Block fake accounts in minutes

Efficiently weed out fake accounts with a our five minute frontend and backend integration.

More about Fake Accounts
where
Abuse Score
is
> 90
and
Disposable Email
is
true
and
Count events
Registration
by
Device Fingerprint
in
the last day
is
> 3
or
Signals
include
Blocked country
1,847 events
Page 1 of 185
Timestamp
Policy
Event
User
Location
Connection
Device
Lists
Signals
Tue, Feb 3
14:23:41
941287
14:23:38
91892
14:23:35
781565
14:23:31
962288
14:23:28
89597
Automation

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.

Developers

A single API to detect, score, and act. Everywhere.

Retrieve comprehensive threat insights in real-time and use them to tailor the user experience.

12345678910111213
1415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
{
  "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.

Get started

Create your free account today

Starting at $0 for 1,000 requests per month, with transparent pricing that scales with your needs.