This API provides access to a list of proxy servers with customizable filters. Working with the API requires a valid access key, which is verified for authenticity and compliance with usage limits. In response to a request, the user receives data depending on the get parameter in the form of text, JSON, or a downloadable file. The API is available at https://api.good-proxies.ru/api.
| Parameter | Description | Required | Example Value |
|---|---|---|---|
| key | Access key required for request authentication. | Yes | abc123 |
| type | Type of proxy servers (http, https, socks4, socks5). Multiple types can be specified separated by commas. | No | http,https |
| anon | Proxy anonymity level (transparent, anonymous, elite). | No | elite |
| ping | Maximum allowed proxy response time in milliseconds. | No | 500 |
| time | Maximum time (in seconds) since the last proxy check. Default: 600 (last 10 minutes). |
No | 600 |
| works | Percentage of successful proxy tests out of total attempts. Available values: from 0 to 100. Example usage: works=50 - this means that proxies with at least 50% successful checks out of the total number of tests will be returned. The value is displayed if the json format is selected. |
No | 50 |
| country | Proxy country code (ISO Alpha-2). Multiple codes can be specified separated by commas. | No | us,ca |
| city | Proxy city name. Multiple cities can be specified separated by commas. Names can be in Russian or English. | No | Paris,Moscow |
| count | Number of proxies requested. | No | 10 |
| lang | Language for city names in the response and when filtering by city. ru (default) - Russian city names. en - English city names. With lang=en the city parameter accepts English city names. |
No | ru, en |
| get | Data output format. By default, txt is used, which means output as text in the browser. For JSON format output use get=json. To download a file use get=txt.file or get=json.file. |
No | txt, json, txt.file, json.file |
| timecheck | Time of the last successful proxy functionality check. Displayed only if json format is selected. Time is indicated in GMT+2 timezone. |
No | Cannot be specified |
| ip_out | Outgoing resulting proxy IP address. May differ from the main proxy IP address. This parameter is displayed only in JSON format. | No | Cannot be specified |
The following parameter controls the line format for get=txt and get=txt.file.
| Parameter | Description | Required | Example Value |
|---|---|---|---|
| type_prefix | Adds the protocol prefix to each TXT output line: type://ip:port. Value 1 enables the mode. Example line: http://127.0.0.1:3128. |
No | 1 |
The following parameters control the response structure for get=json and get=json.file. They do not affect TXT output.
| Parameter | Description | Required | Example Value |
|---|---|---|---|
| ip | Proxy server address in ip:port format (e.g. 192.168.1.1:8080). To split into separate ip and port fields, use the split_ip=1 parameter. |
No | 192.168.1.1:8080 |
| fields | Comma-separated list of fields to include in the JSON response. Allowed: ip, port, ip_out, type, anon, ping, timecheck, country, city, works. By default all fields are returned. The port field only appears with split_ip=1. |
No | ip,type,country |
| split_ip | Splits the ip field in ip:port format into two separate fields: ip and port. Value 1 enables splitting. |
No | 1 |
| format | JSON response structure. array (default) - array of proxy objects. object - object where keys are proxy addresses (ip:port) and values are field objects. |
No | array, object |
| wrap | Wraps the response in a metadata envelope: {status, count, timestamp, filters, data}. Value 1 enables wrapping. |
No | 1 |
| pretty | JSON response formatting. 1 (default) - human-readable format with indentation. 0 - compact JSON without indentation (less traffic). |
No | 0, 1 |
GET https://api.good-proxies.ru/api?key=abc123&type=http&anon=elite&count=5&get=json
GET https://api.good-proxies.ru/api?key=abc123&type=https&ping=500&count=10&get=txt.file
GET https://api.good-proxies.ru/api?key=abc123&country=us,ca&count=2
GET https://api.good-proxies.ru/api?key=abc123&type=http&count=5&type_prefix=1
Output:
http://192.168.1.1:8080 http://192.168.1.2:3128 http://192.168.1.3:8118
GET https://api.good-proxies.ru/api?key=abc123&type=socks5&count=2&get=json&fields=ip,port,type,country&split_ip=1
Output:
[
{
"ip": "192.168.1.1",
"port": "1080",
"type": "socks5",
"country": "US"
},
{
"ip": "192.168.1.2",
"port": "1080",
"type": "socks5",
"country": "DE"
}
]
GET https://api.good-proxies.ru/api?key=abc123&type=http&count=2&get=json&wrap=1
Output:
{
"status": "ok",
"count": 2,
"timestamp": "2026-03-01T12:00:00+00:00",
"filters": {
"type": "http",
"time": 600
},
"data": [
{
"ip": "192.168.1.1:8080",
"type": "http",
...
}
]
}
GET https://api.good-proxies.ru/api?key=abc123&city=Paris,London&count=5&get=json&lang=en
The lang=en parameter allows specifying cities in English and receiving English city names in the response.
GET https://api.good-proxies.ru/api?key=abc123&type=http&count=10&get=json&pretty=0
Upon a successful request with the get=json parameter, the API returns a list of proxy servers in structured JSON format. Includes the timecheck parameter, which shows the time of the last successful check in GMT+2 timezone. The ip_out parameter indicates the resulting proxy IP address, which may differ from the main one.
[
{
"ip": "15.162.126.1:919",
"ip_out": "15.162.126.1:919",
"type": "http",
"anon": "transparent",
"ping": 5.07786,
"timecheck": "2024-11-25 20:09:25",
"country": "CO",
"city": "Медельин",
"works": "66"
}
]
If the parameter get=txt (default), data is returned as a plain text file displayed in the browser:
192.168.1.1:8080 192.168.1.2:8080 192.168.1.3:8080
If the parameter get=txt.file, data will be offered for download in text format:
192.168.1.1:8080 192.168.1.2:8080 192.168.1.3:8080
If the parameter get=json.file, data will be offered for download in JSON format:
[
{
"ip": "112.63.11.8:180",
"ip_out": "122.63.41.1:380",
"type": "http",
"anon": "elite",
"ping": 3.83659,
"timecheck": "2024-11-25 20:09:26",
"country": "SN",
"city": "",
"works": "100"
}
]
If the request fails, the API returns a text message describing the error.
Error: Access key not provided
key are optional.count parameter is not specified, the API returns the maximum number of available proxies.time parameter is not specified, the default value 600 is used (proxies checked within the last 10 minutes).get=txt.file or get=json.file, data will be offered for download as a file.timecheck field, returned in JSON format, is specified in GMT+2 timezone.fields, split_ip, format, wrap, pretty) only affect JSON responses and are ignored for TXT output.type_prefix parameter only affects TXT output (get=txt and get=txt.file) and is ignored for JSON output.lang=en parameter allows specifying city names in the city filter in English and returns them in English in the JSON response.
$key = 'abc123';
$type = 'http';
$anon = 'elite';
$count = 5;
$get = 'json';
$url = "https://api.good-proxies.ru/api?key=$key&type=$type&anon=$anon&count=$count&get=$get";
$response = file_get_contents($url);
if ($response) {
$proxies = json_decode($response, true);
print_r($proxies);
} else {
echo "Error retrieving proxies.";
}
The API provides a convenient tool for retrieving proxy servers with extensive filtering capabilities. Make sure you have a valid access key and observe the limits for uninterrupted service operation.