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

GET/compat/abuseipdb/v2/checkkeyAbuseIPDB v2 check, drop-in

The 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

GET/compat/ipqs/json/{key}/{ip}keyIPQS proxy-detection check, drop-in

IPQS 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

GET/compat/ipinfo/{ip}keyipinfo lookup, drop-in

ipinfo'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_TOKEN

When 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.