API Services - Proxy IPs
Returns a 0-5 score on whether the IP address provided is a commonly used proxy.


URL

https://api.proxstop.com/ip.format


Formats

json, xml


HTTP Methods

GET, POST


Request Data

Required Variable Example Info
Yes key 098f6bcd4621d373cade4e832627b4f6 Your unique API key
Yes ip 123.123.123.123 Fully qualified IP address
No ref A personal note / comment


Example Request

https://api.proxstop.com/ip.xml?key=098f6bcd4621d373cade4e832627b4f6&ip=123.123.123.123&ref=


Good Response Example

<?xml version="1.0" encoding="UTF-8"?>
<response>
	<score>5</score>
</response>		
{
	"version": "1.0",
	"encoding": "UTF-8",
	"response": {
		"score": 5
	}
}		


Bad Response Example

<?xml version="1.0" encoding="UTF-8"?>
<failed>
	<error_code>INVALID_IP</error_code>
	<error_msg>The IP address provided is not valid.</error_msg>
</failed>		
{
	"version": "1.0",
	"encoding": "UTF-8",
	"failed": {
		"error_code": "INVALID_IP",
		"error_msg": "The IP address provided is not valid."
	}
}		


Simple Programming Example

This uses our PHP5 class which can be downloaded by clicking here. The downloadable zip archive will also contain more detailed examples with forms.

// Load config & main class
require_once('config.ProxStop.php');

// Perform Lookup
$ip = '123.123.123.123'; // Fully qualified IP address
$ref = ''; // A personal note / comment
$result = $ProxStop->proxyLookup($ip,$ref);

// The lookup failed, print the error message.
if($result===false)
{
	echo 'The lookup failed with the error "'.$ProxStop->errors['code'].': '.$ProxStop->errors['msg'].'"';
}

// The IP is a proxy
else if((int)$result->score>1)
{
	echo 'The IP is a known proxy.';
}

// The IP is safe
else
{
	echo 'The IP is safe.';
}		
$apiUrl = 'https://api.proxstop.com/ip.xml';
$apiKey = '098f6bcd4621d373cade4e832627b4f6'; // Replace with your API key
$ip = '123.123.123.123'; // Fully qualified IP address
$ref = ''; // A personal note / comment

$result = file_get_contents($apiUrl.'?key='.$apiKey.'&ip='.$ip.'&ref='.$ref);
$result = simplexml_load_string($result);

if(isset($result->error_code))
{
	echo 'The lookup failed with the error "'.$result->error_code.': '.$result->error_msg.'"';
}
else if(!isset($result->score))
{
	echo 'The service seems to be temporarily unavailable.';
}
else if((string)$result->score>1)
{
	// Do what you need here
	echo 'The IP is a known proxy.';
}
else
{
	// Do what you need here
	echo 'The IP is safe.';
}		
string apiUrl = "https://api.proxstop.com/ip.xml";
string apiKey = "098f6bcd4621d373cade4e832627b4f6"; // Replace with your API key
string varIp = "123.123.123.123"; // Fully qualified IP address
string varRef = ""; // A personal note / comment

string results = new System.Net.WebClient().DownloadString(apiUrl+"?key="+apiKey+"&ip="+varIp+"&ref="+varRef);
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(results);

if(doc.SelectSingleNode("//failed/error_code")!=null)
{
	Response.Write("The lookup failed with the error \""+doc.SelectSingleNode("//failed/error_code/text()").Value+": "+doc.SelectSingleNode("//failed/error_msg/text()").Value+"\"");
}
else if(doc.SelectSingleNode("//response/score")==null)
{
	Response.Write("The service seems to be temporarily unavailable.");
}
else if(Convert.ToInt32(doc.SelectSingleNode("//response/score/text()").Value)>1)
{
	// Do what you need here
	Response.Write("The IP is a known proxy.");
}
else
{
	// Do what you need here
	Response.Write("The IP is safe.");
}		
require 'net/http'
require 'rexml/document'

apiUrl = 'https://api.proxstop.com/ip.xml'
apiKey = '098f6bcd4621d373cade4e832627b4f6' #Replace with your API key
ip = '123.123.123.123' #Fully qualified IP address
ref = '' #A personal note / comment

xml_data = Net::HTTP.get_response(URI.parse(apiUrl+'?key='+apiKey+'&ip='+ip+'&ref='+ref)).body
doc = REXML::Document.new(xml_data)

if doc.elements['failed/error_code']
	print 'The lookup failed with the error '+doc.elements['failed/error_code'].text+': '+doc.elements['failed/error_msg'].text

elsif !doc.elements['response/score']
	print 'The service seems to be temporarily unavailable.'

elsif doc.elements['response/score'].text.to_i>1
	#Do what you need here
	print 'The IP is a known proxy.'

else
	#Do what you need here
	print 'The IP is safe.'

end		
from urllib.request import urlopen
from xml.dom import minidom

apiUrl = 'https://api.proxstop.com/ip.xml'
apiKey = '098f6bcd4621d373cade4e832627b4f6' #Replace with your API key
ip = '123.123.123.123' #Fully qualified IP address
ref = '' #A personal note / comment

dom = minidom.parse(urlopen(apiUrl+'?key='+apiKey+'&ip='+ip+'&ref='+ref))

if (dom.getElementsByTagName('error_code')):
	print (dom.getElementsByTagName('error_code')[0].firstChild.data+': '+dom.getElementsByTagName('error_msg')[0].firstChild.data)

elif not (dom.getElementsByTagName('response')):
	print ('The service seems to be temporarily unavailable.')

elif (int(dom.getElementsByTagName('score')[0].firstChild.data)>1):
	#Do what you need here
	print ('The IP is a known proxy.')

else:
	#Do what you need here
	print ('The IP is safe.')		
const http = require('http');

var apiHost = 'api.proxstop.com';
var apiPath = '/ip.json';
var apiKey = '098f6bcd4621d373cade4e832627b4f6'; //Replace with your API key
var varIp = '123.123.123.123'; //Fully qualified IP address
var varRef = ''; //A personal note / comment

http.get({host:apiHost,port:80,path:apiPath+'?key='+apiKey+'&ip='+varIp+'&ref='+varRef,agent:false},function(res){
	res.setEncoding('utf8');
	res.on('data',function(chunk){
		var json = JSON.parse(chunk);
		if(json.failed!=undefined) {
			console.log(json.failed.error_code+': '+json.failed.error_msg);
		} else if(json.response==undefined) {
			console.log('The service seems to be temporarily unavailable.');
		} else if(json.response.score>1) {
			//Do what you need here
			console.log('The IP is a known proxy.');
		} else {
			//Do what you need here
			console.log('The IP is safe.');
		}
	});
});		
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import java.io.File;

public class ProxStop {
	public static void main(String[] args) {

		String apiUrl = "https://api.proxstop.com/ip.xml";
		String apiKey = "098f6bcd4621d373cade4e832627b4f6"; //Replace with your API key
		String varIp = "123.123.123.123"; //Fully qualified IP address
		String varRef = ""; //A personal note / comment

		try {
			DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
			Element docEle = dBuilder.parse(apiUrl+"?key="+apiKey+"&ip="+varIp+"&ref="+varRef).getDocumentElement();

			if (docEle.getNodeName()=="failed") {
				System.out.println(docEle.getElementsByTagName("error_code").item(0).getChildNodes().item(0).getNodeValue()+": "+docEle.getElementsByTagName("error_msg").item(0).getChildNodes().item(0).getNodeValue());
			} else if (docEle.getNodeName()!="response") {
				System.out.println("The service seems to be temporarily unavailable.");
			} else if(Integer.parseInt(docEle.getElementsByTagName("score").item(0).getChildNodes().item(0).getNodeValue())>1) {
				//Do what you need here
				System.out.println("The IP is a known proxy.");
			} else {
				//Do what you need here
				System.out.println("The IP is safe.");
			}
		} catch (SAXParseException err) {
		} catch (SAXException e) {
		} catch (Throwable t) {
		}
	}
}		


Price

1 Point per query