Proxy, VPN and IP Reputation SDK Documentation - Check IP Addresses


IPQualityScore's Mobile SDK allows your Android app to easily integrate our Proxy Detection API. Perform advanced IP Reputation checks from the leader in IP Intelligence to analyze the risk associated with an IP address.



SDK Setup

To use the IP Address Reputation portion of our SDK framework, please follow the Download, Gradle Setup and App Integration steps of the IPQS Mobile Device Fingerprinting SDK Documentation. Once the IPQS library is integrated into your build, you can begin making IP Reputation checks via our API.



Calling The IPQS IP Address Reputation API

Perform a lookup for any given IP address by calling upon Proxy.performFraudCheck(). This portion of the SDK does not require that you have set access to context, unless you need to display something to the user. Additional permissions are not required.



Request Methods

The ProxyRequest object has the following methods/functions.

Name Function Description Type
setUserAgent request.setUserAgent("useragent") The user agent from the web browser of this or any device. String
setUserLanguage request.setUserLanguage("en") The two character language this user prefers. String
setFast request.setFast(true) Should this request be optimized for speed. Makes results faster, but less accurate. Boolean, defaults to false
setMobile request.setMobile(true) Should this request presume the IP is for a mobile device? Boolean, defaults to false
setAllowPublicAccessPoints request.setAllowPublicAccessPoints(true) Some public access points like airports and coffee shops can be dangerous. This flag allows you to ignore those dangers when scoring. Useful if your userbase is frequently utilizing your app from coffee shops or airports. Boolean, defaults to false
setLighterPenalties request.setLighterPenalties(true) Tell our system to score issues with IP addresses more lightly. Keeps out the worst subset of users. Boolean, defaults to false
setIP request.setIP("8.8.8.8") Sets the IP address to lookup. This field is required to make the request successfully. String, IPv4 or IPv6
setTransactionStrictness request.setTransactionStrictness(1) Sets the transaction strictness for this request. If you are submitting order data this can be useful. Integer, 0 - 3
setCustom request.setCustom("custom", "value") Allows you to set custom variables to be passed to our API. For a full list of possible variables click here String, String


Result Methods

IPQS's Mobile SDK offers a wide range of result methods/functions to enhance your experience and help prevent fraudulent activity. The variable "result" below signifies an object of com.ipqualityscore.FraudEngine.Results.ProxyResult.

Name Function Description Type
getRaw result.getRaw() Get the raw json string response from our API. This can be useful for debugging purposes, providing feedback and long term storage. String
getMessage result.getMessage() Get the response message string for this request. This is generally 'Success', but can include administrator level information on why a request failed. (Out of credits, etc...) String
getSuccess result.getSuccess() A boolean containing the request's success or failure status. True on success, false on failure. Boolean
getRequestID result.getRequestID() The unique ID associated with this request. Helpful for debugging and postbacks. String
getFraudScore result.getFraudScore() Number 0 - 100 describing how likely this IP is to commit fraud. 0 being not at all, 100 being definitively fraud. We suggest blocking users greater than 85. Float
getCountryCode result.getCountryCode() A two character country code based on this user's IP address. String
getRegion result.getRegion() A string describing the region this user's IP is from. String
getCity result.getCity() A string describing the city this user's IP is from. String
getISP result.getISP() A string describing the ISP this user's IP belongs to. String
getOrganization result.getOrganization() A string describing the Organization this user's IP belongs to. String
getASN result.getASN() The ASN assigned to the ISP this user's IP belongs to. Integer
getLatitude result.getLatitude() The latitude this user's IP is at. Float
getLongitude result.getLongitude() The longitude this user's IP is at. Float
getIsCrawler result.getIsCrawler() Returns true if this user's IP is from a known search engine crawler. Boolean
getTimezone result.getTimezone() Returns the timezone this user's IP is from. String
getHost result.getHost() Returns the hostname of this user's IP address. String
getIsProxy result.getIsProxy() Returns true if this user's IP is a known proxy. Boolean
getIsVPN result.getIsVPN() Returns true if this user's IP is a known VPN. Boolean
getIsTOR result.getIsTOR() Returns true if this user's IP is a known or suspected TOR node. Boolean
getRecentAbuse result.getRecentAbuse() Returns true if this user's IP has been reported for being abusive recently or if this device has been seen preforming abusive actions. Boolean
getBotStatus result.getBotStatus() Returns true if this user's IP has been reported for botting or if this device has been seen preforming bot like actions. Boolean
getConnectionType result.getConnectionType() Classification of the IP address connection type as "Residential", "Corporate", "Education", "Mobile", or "Data Center". String
getMobile result.getMobile() Returns true if the IP in question is likely a mobile device. Boolean
getOperatingSystem result.getOperatingSystem() The suspected operating system of the device connected to this IP address. String
getBrowser result.getBrowser() The suspected web browser of the device connected to this IP address based on the user_agent if provided. String
getDeviceModel result.getDeviceModel() The suspected device model of the device connected to this IP address based on the user_agent if provided. String
getDeviceBrand result.getDeviceBrand() The suspected device brand of the device connected to this IP address based on the user_agent if provided. String