100% free forever — no signup, no payments. The API is free too — no API key required.

API documentation

The same JSON API that powers this website — free for everyone, no API key, no signup. All endpoints live on the same origin as this site, e.g. GET /api/stats. Be reasonable with request rates.

AdvertisementYour ad could support this free service
GET/api/stats

Totals, per-protocol counts, how many proxies carry real test data, and when the list was last generated.

GET /api/stats

{
  "status": "success",
  "total": 5630,
  "tested": 392,
  "alive": 2140,
  "perProtocol": { "http": 3208, "socks4": 678, "socks5": 1744 },
  "generatedAt": "2026-10-02T19:17:00Z"
}
GET/api/proxies

Paginated, filterable proxy directory. Only proxies alive at the last check are returned.

ParameterValues
pagePage number, default 1
limit1–200, default 50
protocolall | http | socks4 | socks5
countryTwo-letter code, e.g. US, or all
searchMatch against IP or port
sortlatency | score | port | ip
orderasc | desc
GET /api/proxies?protocol=socks5&country=US&limit=2&sort=latency

{
  "status": "success",
  "page": 1,
  "limit": 2,
  "total": 481,
  "totalPages": 241,
  "proxies": [
    {
      "ip": "107.174.30.92",
      "port": 1080,
      "protocol": "socks5",
      "countryCode": "US",
      "country": "United States",
      "anonymity": "elite",
      "latencyMs": 123,
      "uptimePct": 99,
      "score": 98,
      "tested": 1
    },
    ...
  ]
}

tested is 1 only when the proxy matched a real speed-test record; otherwise latencyMs, uptimePct and score are null.

GET/api/countries

Countries present in the list, ordered by proxy count (largest first).

GET /api/countries

{
  "status": "success",
  "countries": [
    { "code": "US", "name": "United States", "count": 1234 },
    { "code": "DE", "name": "Germany", "count": 486 },
    ...
  ]
}
GET/api/mtproto

Free MTProto proxies for Telegram, including ready-to-use t.me connect links.

GET /api/mtproto

{
  "status": "success",
  "count": 333,
  "proxies": [
    {
      "server": "proxy.example.net",
      "port": 443,
      "secret": "ee1603010200010001fc03...",
      "countryCode": "US",
      "country": "US",
      "latencyMs": 41,
      "uptimePct": 87,
      "status": "reachable",
      "link": "https://t.me/proxy?server=proxy.example.net&port=443&secret=ee1603..."
    },
    ...
  ]
}
GET/api/verify

Runs a live connectivity check against one proxy and returns the real measured result — never a fabricated number. If the proxy is dead, alive is false.

GET /api/verify?target=107.174.30.92:1080

{
  "target": "107.174.30.92:1080",
  "protocol": "socks5",
  "alive": true,
  "latencyMs": 595
}
GET/api/export

Downloads the full filtered list as a file. Respects the protocol and country filters.

GET /api/export?format=txt&protocol=http&country=DE     # plain ip:port list
GET /api/export?format=csv&protocol=socks5                  # spreadsheet
GET /api/export?format=json&country=US                      # JSON
Fair use: the API is free and keyless, but please cache results and avoid hammering it — aggressive scraping hurts the service for everyone. Live /api/verify checks open real connections, so use them for single proxies, not bulk scanning.