Free Proxy List API
Returns filtered free proxy addresses from the current ProxyTitan free-proxy pool.
Authentication is performed only with the apiKey query parameter. JWT cookies and X-API-Key headers are not used by this endpoint.
Endpoint details
import json
import requests
url = "https://proxytitan.com/api/v1.0/free/proxies"
params = {
"apiKey": "xxx",
"output": "json",
"protocol": "socks5",
"timeout": 3000
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "application/json" in content_type:
print(json.dumps(response.json(), indent=2))
else:
print(response.text)Combine any supported optional filters in one request.
The backend applies every supplied filter, so a proxy must satisfy all of them to be returned.
Endpoint details
https://proxytitan.com/api/v1.0/free/proxies?apiKey=your_api_key&output=json&protocol=socks5&timeout=3000&ssl=true&anonymity=elite&countries=us%2CdeUse output=plain for one ip:port address per line or output=json for a structured response.
The default is plain when the output parameter is omitted. The older 'format' parameter is not accepted by this endpoint.
Endpoint details
import json
import requests
url = "https://proxytitan.com/api/v1.0/free/proxies"
params = {
"apiKey": "xxx",
"output": "json"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "application/json" in content_type:
print(json.dumps(response.json(), indent=2))
else:
print(response.text)Filters entries by the exact stored proxy protocol.
Supported values are HTTP, HTTPS, SOCKS4, and SOCKS5. Input is case-insensitive; omit the parameter to include all protocols.
Endpoint details
import json
import requests
url = "https://proxytitan.com/api/v1.0/free/proxies"
params = {
"apiKey": "xxx",
"output": "json",
"protocol": "socks5"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "application/json" in content_type:
print(json.dumps(response.json(), indent=2))
else:
print(response.text)Filters by the latency value stored for each proxy.
The value must be an integer from 1 through 10000 milliseconds. Proxies with latency less than or equal to the requested value are retained.
Endpoint details
import json
import requests
url = "https://proxytitan.com/api/v1.0/free/proxies"
params = {
"apiKey": "xxx",
"output": "json",
"timeout": 2000
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "application/json" in content_type:
print(json.dumps(response.json(), indent=2))
else:
print(response.text)Filters by the two-letter country code stored on each proxy entry.
Supply one or more comma-separated ISO-2 codes. Input is normalized to lowercase and duplicate codes are ignored.
Endpoint details
import json
import requests
url = "https://proxytitan.com/api/v1.0/free/proxies"
params = {
"apiKey": "xxx",
"output": "json",
"countries": "us,de,fr"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "application/json" in content_type:
print(json.dumps(response.json(), indent=2))
else:
print(response.text)Filters by the proxy entry's stored https field.
Only the strings 'true' and 'false' are accepted. Omit ssl to include both values.
Endpoint details
import json
import requests
url = "https://proxytitan.com/api/v1.0/free/proxies"
params = {
"apiKey": "xxx",
"output": "json",
"ssl": True
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "application/json" in content_type:
print(json.dumps(response.json(), indent=2))
else:
print(response.text)Filters by the anonymity value stored for each proxy.
Supported values are elite, anonymous, and transparent. Input is case-insensitive; omit it to include every anonymity level.
Endpoint details
import json
import requests
url = "https://proxytitan.com/api/v1.0/free/proxies"
params = {
"apiKey": "xxx",
"output": "json",
"anonymity": "elite"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "application/json" in content_type:
print(json.dumps(response.json(), indent=2))
else:
print(response.text)An empty filtered result is not treated as an HTTP error.
The endpoint returns HTTP 200 and a JSON body even when output=plain was requested.
Endpoint details
import json
import requests
url = "https://proxytitan.com/api/v1.0/free/proxies"
params = {
"apiKey": "xxx",
"output": "plain",
"protocol": "socks5",
"countries": "zz"
}
response = requests.get(url, params=params, timeout=30)
response.raise_for_status()
content_type = response.headers.get("content-type", "")
if "application/json" in content_type:
print(json.dumps(response.json(), indent=2))
else:
print(response.text)