Resources Docs Free Blog Contact
Log in Get started
SIG-122 · MASKBREAK RESEARCH
Comparisons

Best Fraud Detection APIs in 2026: 10 Compared

Ten fraud detection APIs compared on the signals they return, published prices and free tiers, with six test sessions that show which layer each one can see.

In short
  • The ten APIs fall into five categories; the category fixes what each one can see, and no feature list changes that.
  • Maskbreak is free during open beta: 1,000 visitor checks an hour per key, no card, with at least 30 days’ notice before paid changes. This is not a permanent-free promise.
  • Six sessions sort them: four network cases split the IP products, two device cases split the ones that saw the browser.
  • On the antidetect case read the boolean: in our 12 August lab run the flag moved on every spoof while the score read 0.0029 on all.
  • Shadow-run finalists on the same two weeks of traffic, count per reason code, and enforce block only on codes you reviewed.
On this page
  1. What each API is for
  2. Comparison table
  3. When the other one is right
  4. How to test both
  5. Pricing

A signup farm running Kameleo behind a Bright Data exit does not look dangerous to an IP reputation score, and a stolen card at a returning customer's checkout does not look dangerous to a device fingerprint. The ten APIs below each answer a different question, which is why "best" is the wrong first word and "for which loss" is the right one. We compared them on what they return, what they publish about price and latency, and how to test them with the same six sessions. Every vendor figure links to the page it came from, read on 29 August 2026; where a vendor publishes nothing, or a page refused our fetch, the cell says so.

What each API is for

The ten sort into five categories. The category fixes what the product can see and what it cannot.

IP reputation: IPQS and MaxMind minFraud

IPQS returns a per-address fraud_score with proxy, VPN and Tor flags (IPQS proxy detection docs); minFraud scores a whole transaction per query, with anonymizer flags down to is_residential_proxy (minFraud response docs). Both key on the address and its history, and the blind spot follows: a residential exit with no history scores clean, a carrier NAT shared by thousands of phones can score dirty, and neither sees the browser. See IPQS vs Maskbreak and minFraud vs Maskbreak.

Identity enrichment: SEON

SEON takes an email, a phone number, an IP and a device session and returns a fraud_score and a state of APPROVE, REVIEW or DECLINE (SEON Fraud API reference). It answers whether the applicant exists: mailbox age, carrier data, social footprint. That is the identity question, not the session question; an antidetect profile submitting a real, bought identity passes the parts that lean on enrichment. See SEON vs Maskbreak.

Transaction risk: Sift, Forter and Kount

Sift scores the events you send and returns one 0 to 100 score per abuse type, with reasons (Sift Score API docs). Forter approves or declines each transaction at checkout and lists Chargeback Recovery among its products (Forter on AWS Marketplace). Kount prices by quote on transaction volume (Kount pricing); its developer docs answered 403 to our fetch on 30 August 2026, so we do not describe its response. All three improve with history and are thinnest on first touch: a guest checkout from a device nobody has seen has little to score against, and none was built to tell headless Chromium from a person. See Sift, Forter and Kount against Maskbreak.

Bot perimeter: DataDome and Arkose Labs

DataDome sits in front of the application as a server module or CDN integration plus a JavaScript tag (DataDome getting started) and answers per request; its nginx module documents 200, 403 or 5xx on timeout, with retries disabled (nginx module docs). Arkose runs a client script that produces a session token, and a Verify API that returns a risk_band with device and IP intelligence (Arkose Verify API fields). Both stop automation at the door. Neither knows that the human who passed the challenge is on their fortieth account. See DataDome alternatives and Arkose vs Maskbreak.

Device identity and per-request verdicts: Fingerprint, Castle and Maskbreak

Fingerprint identifies the device first and layers Smart Signals on top — browser bot, VPN, tamper and virtual-machine detection among them (Smart Signals overview). Castle pairs a browser SDK request token with /filter and /risk calls that return scores from 0.0 to 1.0 and an allow, challenge or deny action from your policies (Castle integration guide). Maskbreak returns one verdict per request from POST /v1/evaluate: decision, risk_score, reasons[], a network block and, when the request carries a device event id, a device block with antidetect, automation and, with your accountId, linked_accounts (API reference). This is the category built for the residential-proxy-plus-antidetect stack; what a device layer sees that an IP layer cannot walks through the split. See Fingerprint alternatives and Castle vs Maskbreak.

Comparison table

Cells are what each vendor publishes, linked, as read on 29 August 2026. "Not published" means the pricing page and the docs carried nothing; it does not mean the vendor lacks the capability. "Not read" means the page refused our fetch, so we do not know.

VendorCategorySignals returnedFree tierList priceSelf-serveDocumented latencyBest for
MaskbreakNetwork + device verdict per requestdecision, risk_score, reasons[], network.*, device.*, email.disposable (API reference)Open beta: 1,000 visitor checks an hour per key, no card (pricing)Free during open beta; at least 30 days’ notice before paid changes (pricing)Yes (signup)evaluated_in_ms on every response; the two example responses on /api read 118 and 126 msSignup, login and checkout verdicts against residential proxies and antidetect browsers
FingerprintDevice identification + Smart SignalsVisitor ID; bot, VPN, proxy, tamper, VM, incognito, IP-blocklist and high-activity signals (docs)1,000 API calls a month (pricing)Pro Plus $99 a month for 20,000 calls, then $4 per 1,000 (pricing)YesNo figure; the dashboard charts server-side latency percentiles (docs)Recognizing a returning device across sessions and platforms
SiftTransaction and account risk platform0 to 100 score per abuse type, with reasons (docs)Not publishedNot published; "Demo Sift" is the call to action (sift.com)NoNot published; Score API limited to 9 requests a second (docs)Post-payment risk, marketplace trust, review queues
SEONIdentity enrichment + devicefraud_score, state, ip_details, email_details, device_details (docs)Trial on request (pricing)Starter $699 a month for 2,500 checks; Premium custom (pricing)No; trial on requestNo figure; the sample response in the docs carries calculation_time: 2327 (docs)KYC-style checks on email and phone
IPQSIP reputation + email/phone validationfraud_score, proxy, vpn, tor, active_vpn, bot_status, recent_abuse (docs)1,000 lookups a month, 35 a day (plans)Startup from $99 a month for 5,000 lookups; SMB Basic from $499; SMB+ from $999 (plans)YesNot published; higher strictness values "take longer to process" (docs)Enrichment across IP, email, phone and URL from one account
MaxMind minFraudTransaction risk, pay per queryrisk_score, ip_address.risk, anonymizer flags incl. is_residential_proxy; device.id with the tracking add-on (docs)Trial of up to 1,000 queries on request (pricing)Score $0.005, Insights $0.015, Factors $0.020 per query; no minimums (pricing)Pay as you goNot publishedCard-not-present scoring at volume
DataDomeBot perimeterPer-request 200 or 403; 5xx passed through on timeout (docs)Not read: datadome.co/pricing blocks automated fetches (403, 30 August 2026)Not read (same page)Not read (same page)Module timeouts default to 50 to 150 ms with no retry; latency added is logged per request (HAProxy, nginx)Scraping and credential stuffing at the edge, before application code
Arkose LabsChallenge-based bot defenserisk_band, solved, suppressed, device_id, ip_intelligence (docs)Not publishedNot published; "Book a Demo" is the call to action (Bot Manager)NoNot published; session token lifespan defaults to 30 minutes (docs)High-value flows where a step-up challenge is acceptable
CastleDevice + policy engineAccount Abuse, Account Takeover and Bot scores, 0.0 to 1.0; allow, challenge or deny (docs)$5 of usage a month: 1,000 Risk API calls or 5,000 IP lookups (pricing)Pro $200 a month; Enterprise from $4,000 a month (pricing)YesNot published; request token expires after 120 seconds (docs)Login and signup policies written in a rules engine
Forter / KountOrder decisioning at checkoutForter: approve or decline per transaction at checkout; lists Identity Protection, Fraud Management, Payment Optimization, Chargeback Recovery and Abuse Prevention (AWS listing). Kount: docs not read (developer.kount.com answered 403, 30 August 2026)None publishedForter $120,000 per 12 months under 1M decisions, $550,000 under 5M, $0.01 per extra (AWS listing); Kount by quote, priced on transaction volume (pricing)NoNot publishedMerchants deciding card-not-present orders at checkout

Maskbreak is free during open beta: 1,000 visitor checks an hour per API key, no card, with at least 30 days’ notice before paid changes. This is not a promise of permanent free service. Fingerprint, IPQS and Castle listed free quotas in the dated sources above; check their current terms. Sift, Arkose and Kount published no price in the sources reviewed. The rest of the comparisons section takes these pairs one at a time.

Try it

Judge it on your own traffic: the free scanner returns the same decision, network classification and device fields the API does.

Open the scanner

When the other one is right

A per-request verdict says what the network and the device are. It does not decide the order, verify the person, or stand in front of the load balancer. Six cases where another row wins:

  • Your loss is chargebacks after payment. Forter approves or declines each transaction at checkout and sells Chargeback Recovery alongside (AWS listing); Sift scores payment abuse as one of its abuse types (Score API docs); Kount quotes on transaction volume (pricing). We return a verdict and a reason list, not an order decision.
  • Your question is whether the applicant exists. SEON's enrichment, or IPQS's email and phone validation. We check an email for one thing, a disposable domain, returned as email.disposable.
  • Scraping or credential stuffing hits the edge before application code runs. DataDome or Arkose, in front of the app, with a challenge. A verdict API runs at the action; perimeter versus action-level verdicts sets out how the two combine.
  • You need native mobile SDKs and an uptime agreement in the contract. Fingerprint's plan table checks iOS and Android native SDKs on every plan, including Pro Plus, and puts a 99.9% uptime agreement on Enterprise only (pricing, re-read 1 September 2026). Ours is a target on the status page, not a contract term.
  • You want to write policy in a dashboard rules engine. Castle's policies return allow, challenge or deny from rules you configure (integration guide). Our risk score and decision are fixed unless you add custom rules in the console.
  • You will exceed 1,000 requests an hour from one key. That is where our free tier returns 429 (pricing). MaxMind sells by the query with no minimum.

How to test both

A vendor demo shows you the traffic that is easy to catch. Test the traffic that is not. Six sessions, the same six against every candidate, and what a right answer looks like. The first four are four of the network classes that how to evaluate a VPN detection API asks a vendor to tell apart; the two device cases are what this list adds.

SessionHow to get oneCorrect answerField to read
CGNAT mobileYour phone on cellular data, Wi-Fi off. The carrier numbers its subscribers behind shared address space and one public pool (RFC 6598).Allow. Residential, not proxy, even though thousands share the address.network.residential: true, reasons: []
Consumer VPN exitNordVPN or Proton on the same phone.VPN flagged and the provider named when known; review, not block. A consumer VPN is not fraud on its own.network.vpn: true, network.service, decision: "review"
Residential proxy exitOne Bright Data session through a browser.Proxy flagged and the service named when known, on an address whose ASN says home broadband.network.proxy: true, network.service when known (the sandbox fixture returns "BRIGHT_DATA")
Tor exitTor Browser, or any address on the Tor Project's bulk exit list (1,430 addresses in the copy dated 29 August 2026; torbulkexitlist).Tor flagged, block.network.tor: true, reasons includes tor_exit_node
Headless ChromiumPlaywright chromium.launch() filling your own form, from your home line.Automation flagged on a clean network.device.automation: true, automation_detected
Antidetect profileA Kameleo or GoLogin trial profile at default settings, from your home line.Tampering flagged regardless of the network.device.antidetect: true, antidetect_browser

The first four separate the network products from each other. The last two separate the products with a device layer from the rest, because an IP-only API returns clean for both, and is right to: it never saw the browser. Run five and six from your own home line so the network block cannot carry the verdict. How residential proxies are detected and Tor exit detection go deeper on cases three and four.

Before you have any of the six, the public sandbox key returns deterministic fixtures for the five network classes, so the parsing and the routing can be written first:

bash
for t in test_clean test_vpn test_proxy test_datacenter test_tor; do
  curl -s -X POST https://maskbreak.com/v1/evaluate \
    -H "Authorization: Bearer sk_test_sandbox" \
    -H "Content-Type: application/json" \
    -d "{\"token\":\"$t\"}" \
  | jq -c "{token: \"$t\", decision, risk_score, reasons, service: .network.service}"
done
json
{"token":"test_clean","decision":"allow","risk_score":0,"reasons":[],"service":null}
{"token":"test_vpn","decision":"review","risk_score":65,"reasons":["vpn_detected","datacenter_asn"],"service":"PROTON_VPN"}
{"token":"test_proxy","decision":"block","risk_score":80,"reasons":["proxy_detected","datacenter_asn"],"service":"BRIGHT_DATA"}
{"token":"test_datacenter","decision":"allow","risk_score":15,"reasons":["datacenter_asn"],"service":"AWS"}
{"token":"test_tor","decision":"block","risk_score":15,"reasons":["tor_exit_node","anonymous_network"],"service":"TOR"}

Output of the loop, run on 29 August 2026. Each response also carries "test": true and evaluated_in_ms: 1; the 1 is the fixture answering, not a latency measurement. The test_vpn shape matches the suspicious example on the API reference, legacy details.proxied and details.dch mirror included. For latency, time the call at your enforcement point with a real key and take the wall-clock p95, not the vendor's own field.

The shadow-mode protocol

Then run the finalists on live traffic and act on nothing:

  1. Call each API on every signup, login or checkout for two weeks. Log decision, risk_score, reasons and the wall-clock time, keyed on your session id. Change no behavior.
  2. Join the log to outcomes you already record: chargebacks, disputes, bans, refunds, password resets, support tickets.
  3. Count per reason code, not per score band: sessions each code would have blocked, how many later produced an outcome you wanted stopped, and how many known-good customers landed in block.
  4. Read the wall-clock p95 at the enforcement point. If the flow cannot carry it, the vendor's own figure does not matter.
  5. Enforce block only on codes you reviewed in step three, route review to a step-up, and leave a consumer VPN on review. The fake-signups page shows the routing we run on our own forms.
  6. Repeat with the second vendor over the same window and sessions. Two shadow logs on different weeks compare weather, not vendors.
Shadow mode: call, log, join to outcomes, count per reason code, then enforce call the APIact on nothing log decision,reasons, wall ms join to outcomeschargebacks, bans count perreason code enforce block onreviewed codes only
Shadow mode: two weeks of verdicts joined to the outcomes you already keep, before a single block is switched on.

Pricing

The list-price column above is the whole of what nine of the ten publish as of 29 August 2026 (DataDome's page we could not read), each figure linked in its row; contracts differ, and the shapes differ more than the numbers — monthly plans with an overage rate, per-query with no minimum, a flat monthly fee, an annual contract priced by decision volume, and quote-only.

Our limit is hourly, not monthly: a launch that pushes one key past 1,000 requests in a single hour gets 429 for the rest of that hour (pricing), so the free-tier question is about your peak, not your month. Which rows belong on your shortlist depends on the loss; the fake-account software comparison and the free VPN detection API list narrow it for the two most common ones.


FAQ

Questions people ask

What is the best fraud detection API?
There is no single best one. Match the API to the loss: chargebacks after payment point at Forter, Sift or Kount; identity checks at SEON or IPQS; bots at the edge at DataDome or Arkose; residential proxies and antidetect browsers at a per-request verdict with a device layer, such as Maskbreak, Fingerprint or Castle. Test the shortlist with the same six sessions before choosing.
Is there a free fraud detection API?
Maskbreak is free during open beta: 1,000 visitor checks an hour per API key, no card, with at least 30 days’ notice before paid changes. In the pricing pages checked on 29 August 2026, Fingerprint listed 1,000 API calls a month free, IPQS 1,000 lookups a month and Castle 1,000 Risk API calls or 5,000 IP lookups a month. MaxMind and SEON offered trials on request. DataDome's pricing page blocked our fetch, so its status was unknown. Check current vendor terms before choosing.
What is the difference between a fraud detection API and bot protection?
Bot protection sits in front of the application and answers per request, usually with a challenge, before your code runs. A fraud detection API runs at the action, signup, login or checkout, and returns a verdict with reasons your code routes on. The first stops automation at the door; the second sees the network and the device behind one action.
How do I test a fraud detection API before buying?
Send the same six sessions to every candidate: a CGNAT mobile line, a consumer VPN, a residential proxy exit, a Tor exit, headless Chromium and an antidetect profile, the last two from a clean home line. Then shadow-run the finalists on two weeks of live traffic, join the log to outcomes you already record, and count per reason code.
Do fraud detection APIs detect antidetect browsers?
Only the ones with a device layer can, because an IP-only API never sees the browser. Fingerprint documents Browser Tamper Detection among its Smart Signals, and Maskbreak returns device.antidetect with the antidetect_browser reason. Read the boolean: in our 12 August 2026 lab run the flag moved on every spoofed profile while the tampering score did not.
Get started

Compare on your requests, not ours

A free key returns the decision, the network classification and the device fields for every visit, so two vendors can be judged on the same traffic. 1,000 requests an hour, no card. Or check any address now with the free <a href="/ip-lookup">IP lookup</a> and the <a href="/ip-reputation-api">IP reputation API</a>.

Get started freeRead the API docs