Proxy JSON API
For easy access to free proxy lists, our service provides JSON API.
With API users with "Pro Status" can get current lists of tested free proxies with the ability to filter on many parameters, such as response time, speed, geolocation, stability.
API Service Documentation
API endpoints
Current API version: 1.0
Main endpoint: https://proxy-tools.com/api/v1
Localized endpoints:
- CN:
https://cn.proxy-tools.com/api/v1
- DE:
https://de.proxy-tools.com/api/v1
- ES:
https://es.proxy-tools.com/api/v1
- FR:
https://fr.proxy-tools.com/api/v1
- JP:
https://jp.proxy-tools.com/api/v1
- PT:
https://pt.proxy-tools.com/api/v1
- RU:
https://ru.proxy-tools.com/api/v1
Authentication
Authentication method: Bearer Token
Generation of API keys (tokens) is available in account settings for all users with "Pro Status" accounts.
For authentication it is necessary to pass the API key in the request header for each request:
Authorization: Bearer <YOUR_API_KEY>
Methods
GET /proxies Get the current free proxies list
Request Parameters (all parameters are optional)
type (integer) - proxy type:
0
- all types (default)1
- SOCKS4 and SOCKS52
- SOCKS5 only3
- HTTPS only4
- HTTP and HTTPS
anonymity (integer) - proxy anonymity:
0
- transparent only1
- elite only2
- anonymous and elite3
- distorting
stability (integer) - minimum proxy stability in percentage of successful requests from 0 to 100
speed (integer) - minimum proxy speed:
0
- all1
- slow2
- medium3
- fast
response (numeric) - maximum proxy response time in seconds from 0 to 5.00
geo (string) - proxy geolocation, country code in ISO-3166 format
page (integer) - page number with the query results
limit (integer) - number of proxies per page in response, from 1 to 100 (default is 25)
Example requests
Get only SOCKS5 proxies with a response time of 1.5 seconds or less:
curl 'https://proxy-tools.com/api/v1/proxies?type=2&response=1.5' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <YOUR_API_KEY>'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://proxy-tools.com/api/v1/proxies?type=2&response=1.5');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Accept: application/json',
'Authorization: Bearer <YOUR_API_KEY>',
]);
$response = curl_exec($ch);
curl_close($ch);
import requests headers = { 'Accept': 'application/json', 'Authorization': 'Bearer <YOUR_API_KEY>', } params = { 'type': '2', 'response': '1.5', } response = requests.get('https://proxy-tools.com/api/v1/proxies', params=params, headers=headers)
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "https://proxy-tools.com/api/v1/proxies?type=2&response=1.5", nil)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "<YOUR_API_KEY>")
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
bodyText, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", bodyText)
}
Get 1 elite proxy US:
curl 'https://proxy-tools.com/api/v1/proxies?anonymity=1&geo=us&limit=1' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <YOUR_API_KEY>'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://proxy-tools.com/api/v1/proxies?anonymity=1&geo=us&limit=1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Accept: application/json',
'Authorization: Bearer <YOUR_API_KEY>',
]);
$response = curl_exec($ch);
curl_close($ch);
import requests headers = { 'Accept': 'application/json', 'Authorization': 'Bearer <YOUR_API_KEY>', } params = { 'anonymity': '1', 'geo': 'us', 'limit': '1', } response = requests.get('https://proxy-tools.com/api/v1/proxies', params=params, headers=headers)
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "https://proxy-tools.com/api/v1/proxies?anonymity=1&geo=us&limit=1", nil)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "<YOUR_API_KEY>")
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
bodyText, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", bodyText)
}
Limits
Total limit per account: a maximum 60 requests per minute.