ProxySpace

Free · no key · HTTPS

ProxySpace API

Proxy lists, IP ranges, a proxy judge and an IP geolocation API, without a key. Together they answered 1,104,250 requests in the last 24 hours.

Proxy list API

Plain text, one ip:port per line, rebuilt every 20 minutes from 21 sources. The fastest way to use them is to fetch the file directly; nothing to parse but lines.

GET https://proxyspace.pro/{protocol}.txt

Current list per protocol

{protocol} is http, https, socks4 or socks5. CORS is open, so browsers can fetch it too.

$curl -s https://proxyspace.pro/socks5.txt
203.0.113.7:1080
198.51.100.20:4145
…
GET https://proxyspace.pro/country/{cc}/{protocol}.txt

List per country

The same lists split by the country of the exit IP. {cc} is the two-letter code in lower case; all.txt combines the protocols. See proxies by country.

$curl -s https://proxyspace.pro/country/us/socks5.txt
GET https://proxyspace.pro/archive_{protocol}.txt

Archive

Every address that has ever been in the list. Large; download once. See the archive.

IP ranges API

IPv4 and IPv6 blocks per country from the five regional registries, refreshed daily, and the published ranges of cloud providers. Plain text, one prefix per line.

GET https://proxyspace.pro/Ranges/{CC}.txt

IPv4 ranges of a country

{CC} in capitals; {CC}_IPv6.txt for IPv6. Browse them on IP ranges by country; the pages also export firewall formats.

$curl -s https://proxyspace.pro/Ranges/NL.txt
2.16.0.0/13
2.56.56.0/22
…
GET https://proxyspace.pro/ip-ranges/{provider}.txt

Ranges of a cloud provider

For example aws, cloudflare, google-cloud, azure, googlebot, tor-exit. The full set is on the IP ranges page.

$curl -s https://proxyspace.pro/ip-ranges/cloudflare.txt

IP geolocation API

JSON over HTTPS with CORS, no key. Country, city, coordinates, time zone and network (ASN) for any IPv4 or IPv6 address, from the DB-IP databases (CC BY 4.0), refreshed monthly. postal_code is filled in only where known. Running since 2023.

GET https://geo.proxyspace.pro/ip

Your own IP

Location and network of the address making the request.

$curl -s https://geo.proxyspace.pro/ip
{
  "ip": "203.0.113.7",
  "country": "Netherlands",
  "country_code": "NL",
  "city": "Amsterdam",
  "latitude": 52.37,
  "longitude": 4.89,
  "time_zone": "Europe/Amsterdam",
  "postal_code": "1012",
  "asn_number": 1136,
  "asn_organization": "KPN B.V."
}
GET https://geo.proxyspace.pro/ip/{ip}

Any IP address

The same fields for the given address.

$curl -s https://geo.proxyspace.pro/ip/8.8.8.8
GET https://geo.proxyspace.pro/ipandport/{ip}:{port}

An ip:port pair

Accepts a proxy line as-is and returns the location of its IP; convenient when you loop over a proxy list.

$curl -s https://geo.proxyspace.pro/ipandport/203.0.113.7:1080
GET https://geo.proxyspace.pro/domain/{domain}

A domain

Resolves the domain’s first A record and returns its location.

$curl -s https://geo.proxyspace.pro/domain/example.com
GET https://geo.proxyspace.pro/ipheader

Your IP and request headers

Your location plus the headers your client sent (user agent, accept, encoding).

$curl -s https://geo.proxyspace.pro/ipheader

ASN and IP reputation API

JSON lookups behind the ASN lookup and the IP blacklist check.

GET https://proxyspace.pro/api/asn/?q={asn or ip}

ASN lookup

An AS number (AS1136 or 1136) or an IPv4/IPv6 address. Returns the owner, IPv4 and IPv6 prefixes, address count and countries. 60 lookups a minute.

$curl -s "https://proxyspace.pro/api/asn/?q=AS1136"
{
  "asn": 1136,
  "name": "KPN B.V.",
  "v4": { "prefixes": 382, "addresses": 7265792 },
  "countries": [{ "cc": "NL", "v4_addresses": 7253760 }, …],
  "v4_list": ["31.149.0.0/16", …]
}
GET https://proxyspace.pro/api/blacklist/?ip={ipv4}

IP reputation

Risk score 0–100 from 12 DNS blocklists and our own data (public proxy now or in the past, Tor exit, cloud network). ip=me checks the caller. Cached for 30 minutes; 10 new checks a minute.

$curl -s "https://proxyspace.pro/api/blacklist/?ip=203.0.113.7"
{
  "ip": "203.0.113.7",
  "score": 69,
  "level": "medium",
  "checks": [{ "id": "proxy_now", "name": "Public proxy right now", "status": "listed" }, …]
}

Proxy judge

Endpoints proxy checkers use to see what a proxy reveals. Details on the proxy judge page.

GET https://pool.proxyspace.pro/judge.php

Judge

Prints the visiting IP and every REMOTE_*, REQUEST_* and HTTP_* variable it received.

$curl -x http://203.0.113.7:8080 https://pool.proxyspace.pro/judge.php
GET http://pool.proxyspace.pro/

Exit IP only

The visiting IP as plain text, over plain HTTP, for HTTP-only proxies. Any path works.

$curl -s http://pool.proxyspace.pro/

Statistics

The numbers behind the live counters on the home page.

GET https://proxyspace.pro/live.json

Live traffic

Requests in the last 24 hours per service, the current rate, a per-minute series and the top countries. Updated every minute.

$curl -s https://proxyspace.pro/live.json

Python example

import requests

# SOCKS5 proxies located in Germany, with their network
proxies = requests.get("https://proxyspace.pro/country/de/socks5.txt", timeout=10).text.split()
for line in proxies[:5]:
    info = requests.get(f"https://geo.proxyspace.pro/ipandport/{line}", timeout=10).json()
    print(line, info.get("city"), info.get("asn_organization"))

API questions

Is the API free?

Yes. All endpoints are free and need no key or account. Please use them fairly: cache the lists instead of fetching them more often than every 20 minutes. For heavy or commercial use, get in touch.

Are there rate limits?

There are no hard limits on the files. Very high request rates from one address may be throttled to keep the service fast for everyone.

Does the geolocation API work from a browser?

Yes. It answers over HTTPS with CORS open to every origin, so a web page can call it directly with fetch().

How fresh is the data?

Proxy lists every 20 minutes, country IP ranges and provider ranges daily. The about page explains how the lists are built.

Can I get the lists in another format?

The files are plain text. The protocol and IP range pages convert them to JSON, CSV, URL format or firewall rules in your browser.