A proxy detection API is a tool that allows websites and web applications to detect whether a user is using a proxy or VPN connection. Proxies allow users to mask their actual IP address, enabling them to bypass content access restrictions and hide from digital rights management (DRM) strategies. In addition, proxies can be used by criminals to commit fraud online by using stolen credentials and data. The API is useful for many scenarios such as reducing fraud on e-commerce sites, identifying fake accounts on social networks, preventing freemium abuse and more.
The API checks a number of different indicators that indicate the connection is through a proxy or VPN. The first indicator is a slow response time. This is caused by the extra layer of processing required to send and receive internet requests. Another indicator is a mismatch between the IP geolocation and the browser timezone. Finally, the API can also check for a DNS leak. This is a security flaw that can reveal information about a user’s ISP or their proxy provider.
Each API request returns a value between 0 and 1 (inclusive) indicating how likely the IP is to be a proxy, VPN or TOR exit node. The value can be combined with additional parameters such as a URL to filter out iCloud proxy servers, Google Cloud One VPN or other similar services. Additionally, the API can return a JSON format with additional detail including a detailed risk profile for the proxy/VPN.
Our proxy detection API uses a database of more than 26,000,000 worldwide proxies and provides unmatched accuracy to identify the likelihood that an IP is, or has been, connected via a proxy. Combined with additional factors such as user agent, device type and other reputation scoring the API is more accurate than competitors.
Using a proxy or VPN can result in higher latency, as the extra layers of processing are added to each HTTP request. This can be spotted with a simple ping test. A high ping response time or a large geographical delay can indicate that the user is connecting through a proxy.
Using a proxy can also affect the speed of WebRTC connections in Chrome. This is because it will not use the default ports 9050 or 9150, which are usually blocked by proxies. Alternatively, the user can manually configure WebRTC to not use a proxy. This can be spotted with our API by looking for the presence of a specific header in the HTTP request. If the request contains the line’socks5://localhost:1080′ it is almost always a proxy configuration.