API reference

IP intelligence

Full fraud intelligence for any IP: score, detection flags, network identity, geo, and threat tags.

GET/public/ip/{ip}no keyCheck one IP, no key
POST/v1/ip/checkkeyCheck one IP with a key (same response body)

Both endpoints return the same IpResponse. The public GET is the fastest way to try it; the authenticated POST is for programmatic use once you have a key.

#Request

curl https://api.ffraud.com/public/ip/80.82.77.33

#Response fields

Optional fields are omitted when we have no data. The core fields below are always present.

FieldTypeMeaning
fraud_scoreint 0-100Overall risk. 75+ is critical, 40-74 elevated.
riskstringnone / low / medium / high / critical
reasonstringPlain-English explanation of the score (omitted when clean).
proxy, vpn, tor, relayboolAnonymization detection.
hostingboolIP belongs to a datacenter / cloud range.
mobileboolMobile carrier IP.
is_abuserboolConfirmed in threat intelligence.
recent_abuseboolAbuse confirmed within the last 30 days.
connection_typestringResidential, Data Center, Mobile, Relay, etc.
is_residential_proxyboolSeen in a residential proxy pool (high-value e-commerce signal).
ISP, organization, ASNstring/intNetwork identity.
vpn_provider, cloud_providerstringNamed operator when known (NordVPN, Google Cloud, ...).
threat_tagsstring[]What it was caught doing: c2_server, ssh_brute_force, port_scan, ...
subnet_abuse_ratiofloat 0-1Fraction of the /24 flagged abusive (neighborhood signal).
confidencestringHow sure we are: high / medium / low.
data_completenessfloat 0-1Fraction of our data layers that had data for this IP.
geoobjectcountry, region, city, lat/lon, timezone.

Richer nested objects appear when available: residential_proxy (persistence and recency), carrier (MCC/MNC), company, and whois. See the OpenAPI spec for the exhaustive schema.

#How to use the score

  • Block at fraud_score >= 75 (or when risk is critical).
  • Challenge (CAPTCHA, step-up) in the 40-74 band.
  • Allow below 25.
  • Prefer threat_tags and reason over a raw boolean when you want to explain a decision to a user or an audit log.