API reference
Migrate in one line
Drop-in replacement endpoints for AbuseIPDB, IPQualityScore, and ipinfo. Change one URL, keep your code.
Paying a competitor? FFraud speaks their JSON. Point your existing client at our compatibility endpoint, use your free FFraud key, and the response comes back in the shape your code already expects, plus an ffraud_extras object with our richer signals. No rewrite, no caps, no bill.
#AbuseIPDB
/compat/abuseipdb/v2/checkkeyAbuseIPDB v2 check, drop-inThe same data envelope AbuseIPDB returns (abuseConfidenceScore, countryCode, usageType, isTor, ...). Send your FFraud key in the Key header, exactly like AbuseIPDB.
curl -G https://api.abuseipdb.com/api/v2/check \
--data-urlencode "ipAddress=80.82.77.33" \
-H "Key: YOUR_ABUSEIPDB_KEY" \
-H "Accept: application/json"Run fail2ban? Point its AbuseIPDB action at /compat/abuseipdb/v2/report and every ban you make feeds the open database. Same request format fail2ban already sends.
#IPQualityScore
/compat/ipqs/json/{key}/{ip}keyIPQS proxy-detection check, drop-inIPQS puts the key in the URL path, so we do too. You get fraud_score, proxy, vpn, tor, recent_abuse, connection_type, abuse_velocity, and the rest of the IPQS field set.
curl https://ipqualityscore.com/api/json/YOUR_KEY/80.82.77.33#ipinfo
/compat/ipinfo/{ip}keyipinfo lookup, drop-inipinfo's flat format with the nested privacy object (vpn, proxy, tor, relay, hosting). Pass your key as ?token= or Authorization: Bearer.
curl https://ipinfo.io/8.8.8.8?token=YOUR_TOKENWhen you are ready to use our native shape (cleaner fields, threat_tags, reason, subnet reputation), switch to `/v1/ip/check`. The compat endpoints are a bridge, not a ceiling.