Quick Start
This is by far the fastest way to start using Residential Proxies. You will make a request to https://ipinfo.io
using a residential proxy from a random location through our Backconnect Entry. Don't forget to replace USERNAME
and PASSWORD
with your proxy user credentials.
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME:PASSWORD" https://ipinfo.io
Let's make a request using a proxy from France. All you need to do is add cc-FR
to your username string. Below is an example in cURL, and here you can find code samples in other languages.
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-FR:PASSWORD" https://ipinfo.io
Here is one more example of a request that goes through a proxy from London, United Kingdom. Adding cc-GB-city-london
to username string enables you to do just that. Click here to get more information on how to master city-level proxy targeting.
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-GB-city-london:PASSWORD" https://ipinfo.io
What if you want to keep the same proxy for more than one request? Session control enables that. Just add sessid-abc12345
to your username string, where abc12345
can be any random string, and as long as you keep sending requests with this string (session ID), we will try our best to give you the same proxy IP. Learn more here.
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-sessid-randomString123:PASSWORD" https://ipinfo.io
Check out our integration tutorials with the most popular 3rd party tools, such as Multilogin, ShadowRocket, or SwitchyOmega.
If you have any additional questions, please contact your account manager or our support team at support@oxylabs.io.
To find out your usage statistics, generated traffic, request count and more, please login to dashboard.oxylabs.io. You can also add proxy users (subusers) and track their statistics separately.
Backconnect Entry Node
The single backconnect proxy enables to choose a specific country or city proxy via additional parameters in the username. This approach also supports session control. Below is a sample credentials structure:
customer-USERNAME-cc-US-city-CITY-sessid-abcde12345:PASSWORD
Parameter | Description |
---|---|
|
Username |
cc |
Case insensitive country code in 2-letter 3166-1 alpha-2 format. For example, DE for Germany, GB for United Kingdom, TH for Thailand. More details on how to use country-specific proxies can be found here. |
city |
Case insensitive city name in English. This parameter has to accompanied by cc for better accuracy. For example, cc-GB-city-london for London, United Kingdom; cc-DE-city-berlin for Berlin, Germany. For a city with more than two words, replace space with _ , for example city-st_petersburg or city-rio_de_janeiro . We support every city in the world, but we do not guarantee we will have proxies there. Most popular cities are well covered, and will have many proxies to choose from. For reference, you can check this list of what cities you can expect to find. Click here for more information on city-level targeting. |
st |
Case insensitive US state name with us_ in the beginning, for example us_california , us_illinois . Full list of supported cities in TXT format can be downloaded here. |
sessid |
Session ID to keep the same IP with upcoming queries. Session expires after 10 minutes, after that a new IP is assigned to that ID. Random string; 0-9, A-z characters are supported. |
|
Password |
- required parameter
We also support targeting by ASN number. It enables to choose proxies from specific carriers. This feature is enabled upon request.
If you add more than one location parameter in the username, the system will ignore all but one. Therefore it's important to understand which parameters get prioritized. The hierarchy is as follows:
city
state
cc
For example, if your query has these parameters customer-username-cc-US-city-paris-st-us_california
, you will get a proxy from Paris, US.
Entry Node for China
For better connectivity from China, we have configured entry nodes in Hong Kong and Beijing regions. Note that it is an HTTPS proxy node. All username parameters are identical to the regular entry node.
Please note that some 3rd party tools currently do not work with Hong Kong and Beijing entry nodes. 3rd party tools that work with said entry nodes are:
We are currently working on fixing the rest of the integrations on which HTTPS protocol will be supported.
If you are connecting to our residential network from China and still have issues with provided entry nodes, please get in touch at support@oxylabs.io and we will figure out a solution together.
Basic Query
In this example a query to
ipinfo.io
is performed from a random IP:
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME:PASSWORD" https://ipinfo.io
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ipinfo.io');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
echo $output;
?>
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
entry = ('http://customer-%s:%s@pr.oxylabs.io:7777' %
(username, password))
query = urllib.request.ProxyHandler({
'http': entry,
'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ipinfo.io').read())
package example;
import org.apache.http.HttpHost;
import org.apache.http.client.fluent.*;
public class Example {
public static void main(String[] args) throws Exception {
HttpHost entry = new HttpHost("pr.oxylabs.io", 7777);
String query = Executor.newInstance()
.auth(entry, "customer-USERNAME", "PASS")
.execute(Request.Get("http://icanhazip.com").viaProxy(entry))
.returnContent().asString();
System.out.println(query);
}
}
using System;
using System.Net;
class Example
{
static void Main()
{
var client = new WebClient();
client.Proxy = new WebProxy("pr.oxylabs.io:7777");
client.Proxy.Credentials = new NetworkCredential("customer-USERNAME", "PASSWORD");
Console.WriteLine(client.DownloadString("https://ipinfo.io"));
}
}
require 'uri'
require 'net/http'
uri = URI.parse('https://ipinfo.io/')
proxy = Net::HTTP::Proxy('pr.oxylabs.io', 7777, 'customer-USERNAME', 'PASSWORD')
req = Net::HTTP::Get.new(uri.path)
result = proxy.start(uri.host,uri.port) do |http|
http.request(req)
end
puts result.body
Basic query only requires to pass username
and password
. No other parameters are needed. Such query will result in the request being made from a random IP address (proxy). Every new request will use a different proxy.
Select Country
In this example a query to
ipinfo.io
is performed from a random IP address from Germany:
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-DE:PASSWORD" https://ipinfo.io
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$country = 'DE';
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ipinfo.io');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username-cc-$country:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
echo $output;
?>
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
country = 'DE'
entry = ('http://customer-%s-cc-%s:%s@pr.oxylabs.io:7777' %
(username, country, password))
query = urllib.request.ProxyHandler({
'http': entry,
'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ipinfo.io').read())
package example;
import org.apache.http.HttpHost;
import org.apache.http.client.fluent.*;
public class Example {
public static void main(String[] args) throws Exception {
HttpHost entry = new HttpHost("pr.oxylabs.io", 7777);
String query = Executor.newInstance()
.auth(entry, "customer-USERNAME-cc-DE", "PASS")
.execute(Request.Get("http://icanhazip.com").viaProxy(entry))
.returnContent().asString();
System.out.println(query);
}
}
using System;
using System.Net;
class Example
{
static void Main()
{
var client = new WebClient();
client.Proxy = new WebProxy("pr.oxylabs.io:7777");
client.Proxy.Credentials = new NetworkCredential("customer-USERNAME-cc-DE", "PASSWORD");
Console.WriteLine(client.DownloadString("https://ipinfo.io"));
}
}
require 'uri'
require 'net/http'
uri = URI.parse('https://ipinfo.io/')
proxy = Net::HTTP::Proxy('pr.oxylabs.io', 7777, 'customer-USERNAME-cc-DE', 'PASSWORD')
req = Net::HTTP::Get.new(uri.path)
result = proxy.start(uri.host,uri.port) do |http|
http.request(req)
end
puts result.body
Residential
Mobile
Rotating ISP
Adding cc
flag to the authorization header enables to specify which country IP to use to process the request. The value of this parameter is a case insensitive country code in 2-letter 3166-1 alpha-2 format. For example, DE
for Germany, GB
for the United Kingdom, TH
for Thailand proxy. See examples for more details.
Select State
In this example a query to
ipinfo.io
is performed from a random IP address from California, USA:
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-st-us_california:PASSWORD" https://ipinfo.io
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$state = 'us_california';
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ipinfo.io');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username-st-$state:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
echo $output;
?>
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
state = 'us_california'
entry = ('http://customer-%s-st-%s:%s@pr.oxylabs.io:7777' %
(username, state, password))
query = urllib.request.ProxyHandler({
'http': entry,
'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ipinfo.io').read())
package example;
import org.apache.http.HttpHost;
import org.apache.http.client.fluent.*;
public class Example {
public static void main(String[] args) throws Exception {
HttpHost entry = new HttpHost("pr.oxylabs.io", 7777);
String query = Executor.newInstance()
.auth(entry, "customer-USERNAME-st-us_california", "PASS")
.execute(Request.Get("http://icanhazip.com").viaProxy(entry))
.returnContent().asString();
System.out.println(query);
}
}
using System;
using System.Net;
class Example
{
static void Main()
{
var client = new WebClient();
client.Proxy = new WebProxy("pr.oxylabs.io:7777");
client.Proxy.Credentials = new NetworkCredential("customer-USERNAME-st-us_california", "PASSWORD");
Console.WriteLine(client.DownloadString("https://ipinfo.io"));
}
}
require 'uri'
require 'net/http'
uri = URI.parse('https://ipinfo.io/')
proxy = Net::HTTP::Proxy('pr.oxylabs.io', 7777, 'customer-USERNAME-st-us_california', 'PASSWORD')
req = Net::HTTP::Get.new(uri.path)
result = proxy.start(uri.host,uri.port) do |http|
http.request(req)
end
puts result.body
Residential
Mobile
Rotating ISP
To get proxy from a specified US state, add st
flag to the authorization string. For example, us_california
, us_illinois
. Full list of supported cities in TXT format can be downloaded here. |
Select City
In this example a query to
ipinfo.io
is performed from a random IP address from Munich, Germany:
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-DE-city-munich:PASSWORD" https://ipinfo.io
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$country = 'DE';
$city = 'munich';
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ipinfo.io');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username-cc-$country-city-$city:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
echo $output;
?>
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
country = 'DE'
city = 'munich'
entry = ('http://customer-%s-cc-%s-city-%s:%s@pr.oxylabs.io:7777' %
(username, country, city, password))
query = urllib.request.ProxyHandler({
'http': entry,
'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ipinfo.io').read())
package example;
import org.apache.http.HttpHost;
import org.apache.http.client.fluent.*;
public class Example {
public static void main(String[] args) throws Exception {
HttpHost entry = new HttpHost("pr.oxylabs.io", 7777);
String query = Executor.newInstance()
.auth(entry, "customer-USERNAME-cc-DE-city-munich", "PASS")
.execute(Request.Get("http://icanhazip.com").viaProxy(entry))
.returnContent().asString();
System.out.println(query);
}
}
using System;
using System.Net;
class Example
{
static void Main()
{
var client = new WebClient();
client.Proxy = new WebProxy("pr.oxylabs.io:7777");
client.Proxy.Credentials = new NetworkCredential("customer-USERNAME-cc-DE-city-munich", "PASSWORD");
Console.WriteLine(client.DownloadString("https://ipinfo.io"));
}
}
require 'uri'
require 'net/http'
uri = URI.parse('https://ipinfo.io/')
proxy = Net::HTTP::Proxy('pr.oxylabs.io', 7777, 'customer-USERNAME-cc-DE-city-munich', 'PASSWORD')
req = Net::HTTP::Get.new(uri.path)
result = proxy.start(uri.host,uri.port) do |http|
http.request(req)
end
puts result.body
Residential
Mobile
Rotating ISP
To narrow down to a city-level targeting, a city
parameter needs to be added. For example, cc-DE-city-munich
means that a proxy from Munich, Germany, will handle the query. We support every city in the world, but we do not guarantee we will have proxies there. Most popular cities are well covered, and will have many proxies to choose from.
Here are a few examples of valid combinations of cc
and city
parameters:
cc-US-city-los_angeles
cc-IT-city-rome
cc-TH-city-bangkok
cc-JP-city-tokyo
cc-AU-city-sydney
cc-ES-city-barcelona
Session Control
German IP will be chosen for the first request, and then the same IP will be kept with new queries (session control):
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-DE-sessid-abcde12345:PASSWORD" https://ipinfo.io
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$country = 'DE';
$session = mt_rand();
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ipinfo.io');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username-cc-$country-sessid-$session:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
echo $output;
?>
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
country = 'DE'
city = 'munich'
session = random.random()
entry = ('http://customer-%s-cc-%s-city-%s-sessid-%s:%s@pr.oxylabs.io:7777' %
(username, country, city, session, password))
query = urllib.request.ProxyHandler({
'http': entry,
'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ipinfo.io').read())
package example;
import java.io.*;
import java.util.Random;
import org.apache.http.HttpHost;
import org.apache.http.auth.*;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
class Client {
public static final String username = "USERNAME";
public static final String password = "PASSWORD";
public String session_id = Integer.toString(new Random().nextInt(Integer.MAX_VALUE));
public CloseableHttpClient client;
public Client(String country) {
String login = "customer-"+username+(country!=null ? "-cc-"+country : "")
+"-sessid-" + session_id;
HttpHost entry_node = new HttpHost("pr.oxylabs.io:7777");
CredentialsProvider credentials_provider = new BasicCredentialsProvider();
credentials_provider.setCredentials(new AuthScope(entry_node),
new UsernamePasswordCredentials(login, password));
client = HttpClients.custom()
.setConnectionManager(new BasicHttpClientConnectionManager())
.setProxy(entry_node)
.setDefaultCredentialsProvider(credentials_provider)
.build();
}
public String request(String url) throws IOException {
HttpGet request = new HttpGet(url);
CloseableHttpResponse response = client.execute(request);
try {
return EntityUtils.toString(response.getEntity());
} finally { response.close(); }
}
public void close() throws IOException { client.close(); }
}
public class Example {
public static void main(String[] args) throws IOException {
Client client = new Client("de");
try {
System.out.println(client.request("https://ipinfo.io"));
} finally { client.close(); }
}
}
using System;
using System.Net;
class Client : WebClient
{
public static string username = "USERNAME";
public static string password = "PASSWORD";
public string session_id = new Random().Next().ToString();
public Client(string country_iso = null)
{
this.Proxy = new WebProxy("pr.oxylabs.io:7777");
var login = "customer-"+username+(country_iso != null ? "-cc-"+country_iso : "")
+"-sessid-"+session_id;
this.Proxy.Credentials = new NetworkCredential(login, password);
}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address) as HttpWebRequest;
request.ConnectionGroupName = session_id;
return request;
}
}
class Example
{
static void Main()
{
var client = new Client("de");
Console.WriteLine(client.DownloadString("https://ipinfo.io"));
}
}
require 'uri'
require 'net/http'
require 'net/https'
entry_node = 'pr.oxylabs.io'
entry_port = '7777'
username = 'USERNAME'
password = 'PASSWORD'
session_id = Random.rand(1000000)
uri = URI.parse("https://ipinfo.io/")
headers = {
'Accept-Encoding' => 'gzip'
}
proxy = Net::HTTP::Proxy(entry_node, entry_port, "#{username}-cc-DE-sessid-#{session_id}", password)
http = proxy.new(uri.host,uri.port)
if uri.scheme == 'https'
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end
req = Net::HTTP::Get.new(uri.path, headers)
result = http.start do |con|
con.request(req)
end
puts result.body
Residential
Mobile
Rotating ISP
Adding sessid
parameter with session ID string, for example sessid-abc12345
, enables session control. This means that the proxy will not change with the following requests. The example below shows how session control works:
The system keeps the same IP associated with a particular session ID as long as there is some activity (requests). After 60 seconds of inactivity, the IP is automatically changed to a different one.
For example:
* Your initial query with sessid-random123
got assigned proxy IP address 1.1.1.1
* As long as you keep sending new requests with the same session ID and that IP address is online and available, the system will route your queries through 1.1.1.1
* If you stop sending requests or the IP address is no longer online, the system will assign a new proxy IP after 60 seconds.
* This means that your next query with sessid-random123
will be routed through a different IP address.
Standard session time is 10 minutes, but it can be increased. Contact your account manager to learn more.
Country Specific Entry Nodes
Random Proxy Entry Nodes
In this example a query to
ipinfo.io
is performed from a random Turkey IP:
curl -x tr-pr.oxylabs.io:30000 -U "customer-USERNAME:PASSWORD" https://ipinfo.io
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'tr-pr.oxylabs.io:30000';
$query = curl_init('https://ipinfo.io');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
echo $output;
?>
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
entry = ('http://customer-%s:%s@tr-pr.oxylabs.io:30000' %
(username, password))
query = urllib.request.ProxyHandler({
'http': entry,
'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ipinfo.io').read())
package example;
import org.apache.http.HttpHost;
import org.apache.http.client.fluent.*;
public class Example {
public static void main(String[] args) throws Exception {
HttpHost entry = new HttpHost("tr-pr.oxylabs.io", 30000);
String query = Executor.newInstance()
.auth(entry, "customer-USERNAME", "PASS")
.execute(Request.Get("http://icanhazip.com").viaProxy(entry))
.returnContent().asString();
System.out.println(query);
}
}
using System;
using System.Net;
class Example
{
static void Main()
{
var client = new WebClient();
client.Proxy = new WebProxy("tr-pr.oxylabs.io:30000");
client.Proxy.Credentials = new NetworkCredential("customer-USERNAME", "PASSWORD");
Console.WriteLine(client.DownloadString("https://ipinfo.io"));
}
}
#!/usr/bin/ruby
require 'uri'
require 'net/http'
uri = URI.parse('https://ipinfo.io/')
proxy = Net::HTTP::Proxy('tr-pr.oxylabs.io', 30000, 'customer-USERNAME', 'PASSWORD')
req = Net::HTTP::Get.new(uri.path)
result = proxy.start(uri.host,uri.port) do |http|
http.request(req)
end
puts result.body
pr.oxylabs.io:7777
us-pr.oxylabs.io:10000
ca-pr.oxylabs.io:30000
gb-pr.oxylabs.io:20000
de-pr.oxylabs.io:30000
fr-pr.oxylabs.io:40000
es-pr.oxylabs.io:10000
it-pr.oxylabs.io:20000
se-pr.oxylabs.io:30000
gr-pr.oxylabs.io:40000
pt-pr.oxylabs.io:10000
nl-pr.oxylabs.io:20000
be-pr.oxylabs.io:30000
ru-pr.oxylabs.io:40000
ua-pr.oxylabs.io:10000
pl-pr.oxylabs.io:20000
il-pr.oxylabs.io:20000
tr-pr.oxylabs.io:30000
au-pr.oxylabs.io:40000
my-pr.oxylabs.io:10000
th-pr.oxylabs.io:20000
kr-pr.oxylabs.io:30000
jp-pr.oxylabs.io:40000
ph-pr.oxylabs.io:10000
sg-pr.oxylabs.io:20000
cn-pr.oxylabs.io:30000
hk-pr.oxylabs.io:40000
tw-pr.oxylabs.io:10000
in-pr.oxylabs.io:20000
pk-pr.oxylabs.io:30000
ir-pr.oxylabs.io:40000
id-pr.oxylabs.io:10000
az-pr.oxylabs.io:20000
kz-pr.oxylabs.io:30000
ae-pr.oxylabs.io:40000
mx-pr.oxylabs.io:10000
br-pr.oxylabs.io:20000
ar-pr.oxylabs.io:30000
cl-pr.oxylabs.io:40000
pe-pr.oxylabs.io:10000
ec-pr.oxylabs.io:20000
co-pr.oxylabs.io:30000
za-pr.oxylabs.io:40000
eg-pr.oxylabs.io:10000
sa-pr.oxylabs.io:44000
dk-pr.oxylabs.io:19000
ao-pr.oxylabs.io:40000
cm-pr.oxylabs.io:41000
cf-pr.oxylabs.io:42000
td-pr.oxylabs.io:43000
bj-pr.oxylabs.io:44000
et-pr.oxylabs.io:45000
dj-pr.oxylabs.io:46000
gm-pr.oxylabs.io:47000
gh-pr.oxylabs.io:48000
ci-pr.oxylabs.io:49000
ke-pr.oxylabs.io:10000
lr-pr.oxylabs.io:11000
mg-pr.oxylabs.io:12000
ml-pr.oxylabs.io:13000
mr-pr.oxylabs.io:14000
mu-pr.oxylabs.io:15000
ma-pr.oxylabs.io:16000
mz-pr.oxylabs.io:17000
ng-pr.oxylabs.io:18000
sn-pr.oxylabs.io:19000
sc-pr.oxylabs.io:20000
zw-pr.oxylabs.io:21000
ss-pr.oxylabs.io:22000
sd-pr.oxylabs.io:23000
tg-pr.oxylabs.io:24000
tn-pr.oxylabs.io:25000
ug-pr.oxylabs.io:26000
zm-pr.oxylabs.io:27000
af-pr.oxylabs.io:28000
bh-pr.oxylabs.io:29000
bd-pr.oxylabs.io:30000
am-pr.oxylabs.io:31000
bt-pr.oxylabs.io:32000
mm-pr.oxylabs.io:33000
kh-pr.oxylabs.io:34000
ge-pr.oxylabs.io:36000
iq-pr.oxylabs.io:37000
jo-pr.oxylabs.io:38000
lb-pr.oxylabs.io:39000
mv-pr.oxylabs.io:40000
mn-pr.oxylabs.io:41000
om-pr.oxylabs.io:42000
qa-pr.oxylabs.io:43000
sa-pr.oxylabs.io:44000
vn-pr.oxylabs.io:45000
tm-pr.oxylabs.io:46000
uz-pr.oxylabs.io:47000
ye-pr.oxylabs.io:48000
al-pr.oxylabs.io:49000
ad-pr.oxylabs.io:10000
at-pr.oxylabs.io:11000
ba-pr.oxylabs.io:13000
bg-pr.oxylabs.io:14000
by-pr.oxylabs.io:15000
hr-pr.oxylabs.io:16000
cy-pr.oxylabs.io:35000
cz-pr.oxylabs.io:18000
dk-pr.oxylabs.io:19000
ee-pr.oxylabs.io:20000
fi-pr.oxylabs.io:21000
hu-pr.oxylabs.io:23000
is-pr.oxylabs.io:24000
ie-pr.oxylabs.io:25000
lv-pr.oxylabs.io:26000
li-pr.oxylabs.io:27000
lt-pr.oxylabs.io:28000
lu-pr.oxylabs.io:29000
mt-pr.oxylabs.io:30000
mc-pr.oxylabs.io:31000
md-pr.oxylabs.io:32000
me-pr.oxylabs.io:33000
no-pr.oxylabs.io:34000
ro-pr.oxylabs.io:35000
rs-pr.oxylabs.io:36000
sk-pr.oxylabs.io:37000
si-pr.oxylabs.io:38000
ch-pr.oxylabs.io:39000
mk-pr.oxylabs.io:40000
bs-pr.oxylabs.io:41000
bz-pr.oxylabs.io:42000
vg-pr.oxylabs.io:43000
cr-pr.oxylabs.io:44000
cu-pr.oxylabs.io:45000
dm-pr.oxylabs.io:46000
ht-pr.oxylabs.io:47000
hn-pr.oxylabs.io:48000
jm-pr.oxylabs.io:49000
aw-pr.oxylabs.io:10000
pa-pr.oxylabs.io:11000
pr-pr.oxylabs.io:12000
tt-pr.oxylabs.io:13000
fj-pr.oxylabs.io:14000
nz-pr.oxylabs.io:15000
bo-pr.oxylabs.io:16000
py-pr.oxylabs.io:17000
uy-pr.oxylabs.io:18000
ve-pr.oxylabs.io:19000
Oxylabs residential network has coverage in almost every country in the world. Country-specific random proxy entry point will return new IP with every new request.
You do not need to pass any additional parameters, just customer-username:password
. If you have whitelisted IPs, you do not need to pass login credentials. Country-specific ports do not support city-level results.
Please see the dashboard for entry point information or download a full list of random entry points in XLS here.
Random
pr.oxylabs.io:7777
|
USA
us-pr.oxylabs.io:10000
|
Canada
ca-pr.oxylabs.io:30000
|
|||
GB
gb-pr.oxylabs.io:20000
|
Germany
de-pr.oxylabs.io:30000
|
France
fr-pr.oxylabs.io:40000
|
|||
Spain
es-pr.oxylabs.io:10000
|
Italy
it-pr.oxylabs.io:20000
|
Sweden
se-pr.oxylabs.io:30000
|
|||
Greece
gr-pr.oxylabs.io:40000
|
Portugal
pt-pr.oxylabs.io:10000
|
Netherlands
nl-pr.oxylabs.io:20000
|
|||
Belgium
be-pr.oxylabs.io:30000
|
Russia
ru-pr.oxylabs.io:40000
|
Ukraine
ua-pr.oxylabs.io:10000
|
|||
Poland
pl-pr.oxylabs.io:20000
|
Israel
il-pr.oxylabs.io:20000
|
Turkey
tr-pr.oxylabs.io:30000
|
|||
Australia
au-pr.oxylabs.io:40000
|
Malaysia
my-pr.oxylabs.io:10000
|
Thailand
th-pr.oxylabs.io:20000
|
|||
South Korea
kr-pr.oxylabs.io:30000
|
Japan
jp-pr.oxylabs.io:40000
|
Philippines
ph-pr.oxylabs.io:10000
|
|||
Singapore
sg-pr.oxylabs.io:20000
|
China
cn-pr.oxylabs.io:30000
|
Hong Kong
hk-pr.oxylabs.io:40000
|
|||
Taiwan
tw-pr.oxylabs.io:10000
|
India
in-pr.oxylabs.io:20000
|
Pakistan
pk-pr.oxylabs.io:30000
|
|||
Iran
ir-pr.oxylabs.io:40000
|
Indonesia
id-pr.oxylabs.io:10000
|
Azerbaijan
az-pr.oxylabs.io:20000
|
|||
Kazakhstan
kz-pr.oxylabs.io:30000
|
UAE
ae-pr.oxylabs.io:40000
|
Mexico
mx-pr.oxylabs.io:10000
|
|||
Brazil
br-pr.oxylabs.io:20000
|
Argentina
ar-pr.oxylabs.io:30000
|
Chile
cl-pr.oxylabs.io:40000
|
|||
Peru
pe-pr.oxylabs.io:10000
|
Ecuador
ec-pr.oxylabs.io:20000
|
Colombia
co-pr.oxylabs.io:30000
|
|||
South Africa
za-pr.oxylabs.io:40000
|
Egypt
eg-pr.oxylabs.io:10000
|
Angola
ao-pr.oxylabs.io:40000
|
|||
Cameroon
cm-pr.oxylabs.io:41000
|
Central African Republic
cf-pr.oxylabs.io:42000
|
Chad
td-pr.oxylabs.io:43000
|
|||
Benin
bj-pr.oxylabs.io:44000
|
Ethiopia
et-pr.oxylabs.io:45000
|
Djibouti
dj-pr.oxylabs.io:46000
|
|||
Gambia
gm-pr.oxylabs.io:47000
|
Ghana
gh-pr.oxylabs.io:48000
|
Côte d'Ivoire
ci-pr.oxylabs.io:49000
|
|||
Kenya
ke-pr.oxylabs.io:10000
|
Liberia
lr-pr.oxylabs.io:11000
|
Madagascar
mg-pr.oxylabs.io:12000
|
|||
Mali
ml-pr.oxylabs.io:13000
|
Mauritania
mr-pr.oxylabs.io:14000
|
Mauritius
mu-pr.oxylabs.io:15000
|
|||
Morocco
ma-pr.oxylabs.io:16000
|
Mozambique
mz-pr.oxylabs.io:17000
|
Nigeria
ng-pr.oxylabs.io:18000
|
|||
Senegal
sn-pr.oxylabs.io:19000
|
Seychelles
sc-pr.oxylabs.io:20000
|
Zimbabwe
zw-pr.oxylabs.io:21000
|
|||
South Sudan
ss-pr.oxylabs.io:22000
|
Sudan
sd-pr.oxylabs.io:23000
|
Togo
tg-pr.oxylabs.io:24000
|
|||
Tunisia
tn-pr.oxylabs.io:25000
|
Uganda
ug-pr.oxylabs.io:26000
|
Zambia
zm-pr.oxylabs.io:27000
|
|||
Afghanistan
af-pr.oxylabs.io:28000
|
Bahrain
bh-pr.oxylabs.io:29000
|
Bangladesh
bd-pr.oxylabs.io:30000
|
|||
Armenia
am-pr.oxylabs.io:31000
|
Bhutan
bt-pr.oxylabs.io:32000
|
Myanmar
mm-pr.oxylabs.io:33000
|
|||
Cambodia
kh-pr.oxylabs.io:34000
|
Georgia
ge-pr.oxylabs.io:36000
|
Iraq
iq-pr.oxylabs.io:37000
|
|||
Jordan
jo-pr.oxylabs.io:38000
|
Lebanon
lb-pr.oxylabs.io:39000
|
Maldives
mv-pr.oxylabs.io:40000
|
|||
Mongolia
mn-pr.oxylabs.io:41000
|
Oman
om-pr.oxylabs.io:42000
|
Qatar
qa-pr.oxylabs.io:43000
|
|||
Saudi Arabia
sa-pr.oxylabs.io:44000
|
Vietnam
vn-pr.oxylabs.io:45000
|
Turkmenistan
tm-pr.oxylabs.io:46000
|
|||
Uzbekistan
uz-pr.oxylabs.io:47000
|
Yemen
ye-pr.oxylabs.io:48000
|
Albania
al-pr.oxylabs.io:49000
|
|||
Andorra
ad-pr.oxylabs.io:10000
|
Austria
at-pr.oxylabs.io:11000
|
Bosnia and Herzegovina
ba-pr.oxylabs.io:13000
|
|||
Bulgaria
bg-pr.oxylabs.io:14000
|
Belarus
by-pr.oxylabs.io:15000
|
Croatia
hr-pr.oxylabs.io:16000
|
|||
Cyprus
cy-pr.oxylabs.io:35000
|
Czech Republic
cz-pr.oxylabs.io:18000
|
Denmark
dk-pr.oxylabs.io:19000
|
|||
Estonia
ee-pr.oxylabs.io:20000
|
Finland
fi-pr.oxylabs.io:21000
|
Hungary
hu-pr.oxylabs.io:23000
|
|||
Iceland
is-pr.oxylabs.io:24000
|
Ireland
ie-pr.oxylabs.io:25000
|
Latvia
lv-pr.oxylabs.io:26000
|
|||
Liechtenstein
li-pr.oxylabs.io:27000
|
Lithuania
lt-pr.oxylabs.io:28000
|
Luxembourg
lu-pr.oxylabs.io:29000
|
|||
Malta
mt-pr.oxylabs.io:30000
|
Monaco
mc-pr.oxylabs.io:31000
|
Moldova
md-pr.oxylabs.io:32000
|
|||
Montenegro
me-pr.oxylabs.io:33000
|
Norway
no-pr.oxylabs.io:34000
|
Romania
ro-pr.oxylabs.io:35000
|
|||
Serbia
rs-pr.oxylabs.io:36000
|
Slovakia
sk-pr.oxylabs.io:37000
|
Slovenia
si-pr.oxylabs.io:38000
|
|||
Switzerland
ch-pr.oxylabs.io:39000
|
Macedonia
mk-pr.oxylabs.io:40000
|
Bahamas
bs-pr.oxylabs.io:41000
|
|||
Belize
bz-pr.oxylabs.io:42000
|
British Virgin Islands
vg-pr.oxylabs.io:43000
|
Costa Rica
cr-pr.oxylabs.io:44000
|
|||
Cuba
cu-pr.oxylabs.io:45000
|
Dominica
dm-pr.oxylabs.io:46000
|
Haiti
ht-pr.oxylabs.io:47000
|
|||
Honduras
hn-pr.oxylabs.io:48000
|
Jamaica
jm-pr.oxylabs.io:49000
|
Aruba
aw-pr.oxylabs.io:10000
|
|||
Panama
pa-pr.oxylabs.io:11000
|
Puerto Rico
pr-pr.oxylabs.io:12000
|
Trinidad and Tobago
tt-pr.oxylabs.io:13000
|
|||
Fiji
fj-pr.oxylabs.io:14000
|
New Zealand
nz-pr.oxylabs.io:15000
|
Bolivia
bo-pr.oxylabs.io:16000
|
|||
Paraguay
py-pr.oxylabs.io:17000
|
Uruguay
uy-pr.oxylabs.io:18000
|
Venezuela
ve-pr.oxylabs.io:19000
|
Sticky Proxy Entry Nodes
In this example, a query to
ipinfo.io
is performed from Turkey IP, and the same IP will stay for up to 10 minutes with each request. We have chosen port 30001, however, Turkey sticky entry points cover ports from 30001 to 39999.
curl -x tr-pr.oxylabs.io:30001 -U "customer-USERNAME:PASSWORD" https://ipinfo.io
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'tr-pr.oxylabs.io:30001';
$query = curl_init('https://ipinfo.io');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
echo $output;
?>
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
entry = ('http://customer-%s:%s@tr-pr.oxylabs.io:30001' %
(username, password))
query = urllib.request.ProxyHandler({
'http': entry,
'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ipinfo.io').read())
package example;
import org.apache.http.HttpHost;
import org.apache.http.client.fluent.*;
public class Example {
public static void main(String[] args) throws Exception {
HttpHost entry = new HttpHost("tr-pr.oxylabs.io", 30001);
String query = Executor.newInstance()
.auth(entry, "customer-USERNAME", "PASS")
.execute(Request.Get("http://icanhazip.com").viaProxy(entry))
.returnContent().asString();
System.out.println(query);
}
}
using System;
using System;
using System.Net;
class Example
{
static void Main()
{
var client = new WebClient();
client.Proxy = new WebProxy("tr-pr.oxylabs.io:30001");
client.Proxy.Credentials = new NetworkCredential("customer-USERNAME", "PASSWORD");
Console.WriteLine(client.DownloadString("https://ipinfo.io"));
}
}
require 'uri'
require 'net/http'
uri = URI.parse('https://ipinfo.io/')
proxy = Net::HTTP::Proxy('tr-pr.oxylabs.io', 30001, 'customer-USERNAME', 'PASSWORD')
req = Net::HTTP::Get.new(uri.path)
result = proxy.start(uri.host,uri.port) do |http|
http.request(req)
end
puts result.body
pr.oxylabs.io:10000 - 49999
us-pr.oxylabs.io:10001 - 19999
ca-pr.oxylabs.io:30001 - 39999
gb-pr.oxylabs.io:20001 - 29999
de-pr.oxylabs.io:30001 - 39999
fr-pr.oxylabs.io:40001 - 49999
es-pr.oxylabs.io:10001 - 19999
it-pr.oxylabs.io:20001 - 29999
se-pr.oxylabs.io:30001 - 39999
gr-pr.oxylabs.io:40001 - 49999
pt-pr.oxylabs.io:10001 - 19999
nl-pr.oxylabs.io:20001 - 29999
be-pr.oxylabs.io:30001 - 39999
ru-pr.oxylabs.io:40001 - 49999
ua-pr.oxylabs.io:10001 - 19999
pl-pr.oxylabs.io:20001 - 29999
il-pr.oxylabs.io:20001 - 29999
tr-pr.oxylabs.io:30001 - 39999
au-pr.oxylabs.io:40001 - 49999
my-pr.oxylabs.io:10001 - 19999
th-pr.oxylabs.io:20001 - 29999
kr-pr.oxylabs.io:30001 - 39999
jp-pr.oxylabs.io:40001 - 49999
ph-pr.oxylabs.io:10001 - 19999
sg-pr.oxylabs.io:20001 - 29999
cn-pr.oxylabs.io:30001 - 39999
hk-pr.oxylabs.io:40001 - 49999
tw-pr.oxylabs.io:10001 - 19999
in-pr.oxylabs.io:20001 - 29999
pk-pr.oxylabs.io:30001 - 39999
ir-pr.oxylabs.io:40001 - 49999
id-pr.oxylabs.io:10001 - 19999
az-pr.oxylabs.io:20001 - 29999
kz-pr.oxylabs.io:30001 - 39999
ae-pr.oxylabs.io:40001 - 49999
mx-pr.oxylabs.io:10001 - 19999
br-pr.oxylabs.io:20001 - 29999
ar-pr.oxylabs.io:30001 - 39999
cl-pr.oxylabs.io:40001 - 49999
pe-pr.oxylabs.io:10001 - 19999
ec-pr.oxylabs.io:20001 - 29999
co-pr.oxylabs.io:30001 - 39999
za-pr.oxylabs.io:40001 - 49999
eg-pr.oxylabs.io:10001 - 19999
sa-pr.oxylabs.io:44001 - 44999
dk-pr.oxylabs.io:19001 - 19999
Country-specific sticky proxy entry point will return the same IP with every new request while you will use the same port. IP stickiness works for up to 10 minutes. After that, the IP is replaced with a new one.
You do not need to pass any additional parameters, just customer-username:password
. If you have whitelisted IPs, you do not need to pass login credentials. Country-specific ports do not support city-level results.
Please see the dashboard for entry point information or download a full list of sticky entry points in XLS here.
Random pr.oxylabs.io:10000 - 49999 |
USA us-pr.oxylabs.io:10001 - 19999 |
Canada ca-pr.oxylabs.io:30001 - 39999 |
|||
Great Britain gb-pr.oxylabs.io:20001 - 29999 |
Germany de-pr.oxylabs.io:30001 - 39999 |
France fr-pr.oxylabs.io:40001 - 49999 |
|||
Spain es-pr.oxylabs.io:10001 - 19999 |
Italy it-pr.oxylabs.io:20001 - 29999 |
Sweden se-pr.oxylabs.io:30001 - 39999 |
|||
Greece gr-pr.oxylabs.io:40001 - 49999 |
Portugal pt-pr.oxylabs.io:10001 - 19999 |
Netherlands nl-pr.oxylabs.io:20001 - 29999 |
|||
Belgium be-pr.oxylabs.io:30001 - 39999 |
Russia ru-pr.oxylabs.io:40001 - 49999 |
Ukraine ua-pr.oxylabs.io:10001 - 19999 |
|||
Poland pl-pr.oxylabs.io:20001 - 29999 |
Israel il-pr.oxylabs.io:20001 - 29999 |
Turkey tr-pr.oxylabs.io:30001 - 39999 |
|||
Australia au-pr.oxylabs.io:40001 - 49999 |
Malaysia my-pr.oxylabs.io:10001 - 19999 |
Thailand th-pr.oxylabs.io:20001 - 29999 |
|||
South Korea kr-pr.oxylabs.io:30001 - 39999 |
Japan jp-pr.oxylabs.io:40001 - 49999 |
Philippines ph-pr.oxylabs.io:10001 - 19999 |
|||
Singapore sg-pr.oxylabs.io:20001 - 29999 |
China cn-pr.oxylabs.io:30001 - 39999 |
Hong Kong hk-pr.oxylabs.io:40001 - 49999 |
|||
Taiwan tw-pr.oxylabs.io:10001 - 19999 |
India in-pr.oxylabs.io:20001 - 29999 |
Pakistan pk-pr.oxylabs.io:30001 - 39999 |
|||
Iran ir-pr.oxylabs.io:40001 - 49999 |
Indonesia id-pr.oxylabs.io:10001 - 19999 |
Azerbaijan az-pr.oxylabs.io:20001 - 29999 |
|||
Kazakhstan kz-pr.oxylabs.io:30001 - 39999 |
UAE ae-pr.oxylabs.io:40001 - 49999 |
Mexico mx-pr.oxylabs.io:10001 - 19999 |
|||
Brazil br-pr.oxylabs.io:20001 - 29999 |
Argentina ar-pr.oxylabs.io:30001 - 39999 |
Chile cl-pr.oxylabs.io:40001 - 49999 |
|||
Peru pe-pr.oxylabs.io:10001 - 19999 |
Ecuador ec-pr.oxylabs.io:20001 - 29999 |
Colombia co-pr.oxylabs.io:30001 - 39999 |
|||
South Africa za-pr.oxylabs.io:40001 - 49999 |
Egypt eg-pr.oxylabs.io:10001 - 19999 |
Saudi Arabia sa-pr.oxylabs.io:44001 - 44999 |
|||
Denmark dk-pr.oxylabs.io:19001 - 19999 |
Additional Information
Country, State, City Mapping
We use MaxMind GeoIP2 database to assign our exit nodes cc
, st
and city
values. This database is updated weekly.
Some other public IP databases may show different locations. In cases where location mismatch is crucial, we encourage to double-check if the location of the assigned proxy is the same on the IP database used by the target website.
Response Codes
These are the most common response codes that you can get while using our residential proxy pool. If you receive any other response code, get in touch with your dedicated account manager for more information.
Response | Description |
---|---|
400 Bad Request |
Proxy server can return this error code if the request did not contain a host to connect to or there was a generic error when parsing HTTP request. Make sure your request is correctly formed and make sure to include URL in the request then try again. |
407 Proxy Authentication Required |
Request lacks proxy authentication information or username or password is invalid. Include Proxy-Authorization header in your request and make sure your username and password are correctly formed and then try again. |
500 Internal Server Error |
Proxy server has encountered an internal error. Retry request at a later time. |
502 Bad Gateway |
Proxy server received an invalid response from the upstream server. Retry request. Response Code 502 signifies that the IP assigned to your session ID is no longer available. If you encounter this error, there are two ways to work around it. The first is to wait for one minute and the system will automatically assign a new IP address to your session ID. Another approach is to simply switch to a new session ID (i.e. change the sessid parameter) – this way you will receive a new IP address. |
522 Timeout |
Proxy server did not receive a response from the upstream server in time. Retry request. |
525 No Exit Found |
Custom HTTP status code - this means proxy was unable to find an exit node which satisfies the request. Change request filter parameters or try again at a later time. |
Backconnect Entry IPs
If you want to use your own backconnect entry node DNS name, you can do that by pointing your subdomain/domain to our entry node. To do that, you need to add a DNS CNAME
record that has pr.oxylabs.io
as the target. This is how such setup looks on Cloudflare DNS manager for entry
subdomain:
For more information, please contact support@oxylabs.io or your account manager.
Restricted URLs
To avoid abuse and unclear activities, some websites are restricted on our residential proxy network. The list includes, but is not limited to websites such as all Google domains including Play, linkedin.com, sonyentertainmentnetwork.com, all Apple domains, including iTunes, netflix.com and others. For more information please contact our support staff at support@oxylabs.io.
Public API
To manage proxy users via Public API, please refer to this documentation in OpenAPI format. The API allows to create, delete, and modify proxy users, set their limits and see current usage, disable and enable them.
3rd Party Integrations
Please note that you must use an HTTPS protocol when accessing China entry nodes for 3rd party tools to work correctly.
Chrome Proxy Extension
Chrome Proxy Extension is a free proxy manager for Chrome. It is not only free but also works with any proxy provider of your choice. Enable your proxy without having to jump through settings and menu options. The extension has an additional feature specifically designed to use with Oxylabs Residential Proxies, which enables to easily change Oxylabs Residential Proxy session without editing your username. Download the extension from Chrome Web Store here
Click the extension icon to open the application
If you haven't added any proxies yet, you will see
Add new proxy
button. Click it to continue.
- Add proxy profile. Provide a name for the profile under Enter name. Enter
pr.oxylabs.io
as Proxy server IP and7777
as Port. Fill in your Username and Password. Do not forget to addcustomer-
before your username. Finally, click Save changes.
You can also use country-specific entries. For example, if you put us-pr.oxylabs.io
under Proxy server IP and 10001
under Port, you will receive US exit node with sticky session.
If you have whitelisted your IP, you can skip this step.
- Open the extension and click Connect. That's it, you are now using proxies.
- Chrome is notorious for caching proxy credentials, and on many proxy management extensions sticky sessions via username string does not work. If you are using sessions with main entry node (
pr.oxylabs.io:7777
), we created a special feature that allows rotating session much more easily. First, enter your username withsessid
parameter, like this:
- Then, open the extenion window. Connect to the proxy and you will see a new button - Refresh session. Click it to change session ID and get a new proxy.
You can also check out our free Proxy Manager App for Android which allows you to easily add and manage your proxies as well as switch between multiple IPs with a simple one-click connection.
SwitchyOmega
SwitchyOmega is a powerful and reliable proxy manager that works with many popular browsers. First you need to get the plugin. For Chrome, click here, for Firefox click here. Once you have it installed, you should:
- Open Switchy Omega options.
- Click New profile....
- Give this new profile a name, choose Proxy Profile type and click Create
- Change Protocol to HTTP. Under Server enter our backconnect entry node
pr.oxylabs.io
. Under Port add7777
You can also use country-specific entries. For example, if you put
us-pr.oxylabs.io
under Server and10001
under Port, you will receive US exit node with sticky session.Next, click the lock button on the right. Fill in your Username and Password. Do not forget to add
customer-
before your given username. Finally, click Save changes.
If you have whitelisted your IP, please skip this step.
- Click Apply changes
- For the final step, click on SwitchyOmega icon and choose your newly configured proxy. You are now ready to go!
Shadowrocket
If you want to use our Residential Proxies with Shadowrocket, you can easily do that by following the instructions below.
Open Shadowrocket app.
Click Add Server.
- In the following window click on Type.
- Choose HTTPS and go back to the previous screen.
- Enter proxy and authentication information. Under Host type in
pr.oxylabs.io
. Port is7777
to use our backconnect entry. Do not forget your crendentials under User and Password. Do not forget to addcustomer-
before your given username. Once you are done, go back to the previous screen by pressing Back arrow.
You can also use country-specific entries. For example, if you put us-pr.oxylabs.io
under Host and 10001
under Port, you will receive US exit node with a sticky session.
- You need to turn proxy on. Do that by activating a toggle under Not Connected
- If that is your first time using Shadowrocket, you will get an iOS prompt to add Shadowrocket to VPN configurations. Click Add. You will need to enter your iPhone passcode to confirm.
- That is it. A toggle at the top of the app should now be activated.
- You can test if the proxy is working by visiting icanhazip.com.
Proxifier
If you want to use our Residential Proxies with Proxfier, you can easily do that by following the instructions below.
Open Proxifier app.
Add proxies. Click on Proxies (1). Click Add(2).
In the following window enter required information. Address(1), which is
pr.oxylabs.io
, Port(2) which is7777
, select HTTPS(3) protocol. In authentication box click Enable(4) and enter provided Username(5) and Password(6). Do not forget to addcustomer-
at the beginning of the username. If you have whitelisted your devices, do not click on Enable, your authenticiation will be done without username/password. If you wish, you can enable Appear as Web Browser option. Click OK.You can also use country-specific entries. For example, if you put us-pr.oxylabs.io under Address(1)* and **10001 under Port(2), you will receive US exit node with sticky session.
You will be prompted with a window asking if you want Proxifier to use this proxy by default? This means that this setup will be user for all of your browsers. It is up to you to decide. If you select Yes, you are done setting up. If you wish to use proxies on a particular browser, follow the next steps.
Click on Rules(1) and then click Add...(2).
- Click +(1) button to add applications that you want to use proxy settings. Select the browser with which you want to use these proxy settings and click on it. Finally, you have to change Action(2). Click on it and select your created proxy.
- This is it, all of your requests, while using browser which you defined in your rules of Proxifier, will be done from proxies.
Multilogin
Our proxies also work with Multilogin app. Setting up is easy, just follow the instructions below.
Open Multilogin app.
Add proxies. Click on Create new under Browser profile.
- In the following window enter Browser profile name (for example Oxylabs). Next, click Edit proxy settings.
Choose HTTP proxy as Connection type. Now fill in the required details: under New address and Port insert
pr.oxylabs.io
and7777
. Under Login enter your username, and Password. Do not forget to addcustomer-
at the beginning of the username. If you have whitelisted your devices, you do not need to provide the login credentials.You can also use country-specific entries. For example, if you put us-pr.oxylabs.io under New address and 10001 under Port, you will receive US exit node with a sticky session.
Click Check proxy. If everything is fine, you should get a response indicating External IP.
Confirm changes by clicking Create profile.
- This is it, you are good to go.
Postern
Postern is a very popular proxy/VPN management application on Android. You can get it on Google Play Store. Here is a step-by-step guide how to configure our Residential Proxies on Postern:
Open the app.
Click Add Proxy.
- In the following window enter required proxy information. Server Name is Oxylabs, Server Address is pr.oxylabs.io. Under Server Port enter 7777. Click Server Type and choose HTTPS/HTTP CONNECT. Next, enter your login credentials under Username and Password. For this to work, you must type customer- before you type in your username, e.g., customer-username.Finally, click Save.
You can also use country-specific entries. For example, if you put us-pr.oxylabs.io under Server Address and 10001 under Server Port, you will receive the US exit node with sticky session.
- Now, open the app menu and go to Rules.
- Click Add Rule
- Under Match Method select Match All. Choose Proxy/Tunnel as the Rule. Proxy/Proxy Group should automatically fill up with Oxylabs - pr.oxylabs.io:7777". Click Save.
- Now you need to turn on the VPN. Open the app menu and click on VPN Off to activate the connection. That is it, you are now using proxies.
GoLogin
GoLogin is a multi-login browser management application for Windows, Linux and Mac OS. Get it on its official website here. Here is a step-by-step guide how to configure our Residential Proxies on GoLogin for Windows:
Open the app.
Click Create Your First Profile.
- In the following window enter the required proxy information. Under Profile Name write Oxylabs. Next, choose Connection Type as HTTP Proxy. Under Proxy Host and Port enter pr.oxylabs.io and 7777. Next, enter your login credentials under Username and Password. Finally, click Create Profile.
You can also use country-specific entries. For example, if you put us-pr.oxylabs.io and 10001 under Proxy Host and Port, you will receive the US exit node with a sticky session. To fully utilize all available Residential Proxies features such as sessions and country, state, city geolocation parameters, please reffer to the corresponding sections in the documentation.
- All set, now simply click Run and wait for the browser to load.
- If everything is fine, a website http://myip.gologin.app will open and show the IP information.
Kameleo
Kameleo is a multi-login browser management application for Windows and Android. Get it on its official website here. Here is a step-by-step guide how to configure our Residential Proxies on Kameleo for Windows:
Open the app.
Click APPLICATION SETTINGS.
- In the following window enter the required proxy information under Global proxy settings. For Upstream Proxy Type choose Http. Next, fill in Proxy IP or hostname with pr.oxylabs.io. Under Proxy Port enter 7777. Finally, enter your login credentials under Username and Password. Close the window to save settings.
You can also use country-specific entries. For example, if you put us-pr.oxylabs.io under Proxy IP or hostname and 10001 under Proxy Port, you will receive the US exit node with a sticky session.
- That is it, you are ready to go. Either create a NEW PROFILE or click QUICK PROFILE to launch the browser which now has proxy enabled.
ClonBrowser
ClonBrowser is another multi-login browser management application for Windows and Mac. Get it on its official website here. Here is a step-by-step guide how to configure our Residential Proxies on ClonBrowser for Windows:
Open the app.
Click Create a New browser profile.
- Click Setting next to Proxy settings.
- In the following window choose Http as the Connection type. Under IP or host enter pr.oxylabs.io. Fill in 7777 for Port. Finally, enter your login credentials under Username in customer-username format and Password.
You can also use country-specific entries. For example, if you put us-pr.oxylabs.io under Proxy IP or hostname and 10001 under Proxy Port, you will receive the US exit node with a sticky session.
You can check if the proxy works by clicking Connection test. If everything is fine, click Create profile.
- That is all, you can now launch the browser by clicking Start under Option.
AdsPower
AdsPower is a multi-login browser management application for Windows and Mac. You get it on its official website here. Here is the step-by-step guide how to configure our Residential Proxies on AdsPower for Windows:
Open the app.
Click Upload..
- Under Proxy Type choose http. Now fill in the form bellow. Enter pr.oxylabs.io for Proxy Host and 7777 for Proxy Port. Enter your login credentials customer-username under Proxy User and your password for Password.
You can also use country specific entries. For example, if you put us-pr.oxylabs.io under Proxy Host and 10001 under *Proxy Port, you will receive US exit node with sticky session.
You can check if the proxy works by clicking Check Proxy. If everything is fine, click Create profile.
- That's all, you can now launch the browser by clicking Open under Account Management.
VMLogin
Virtual Multi Login, or VMLogin, is a tool for creating virtual browser profiles that help control browser fingerprinting, setup business workflows, and develop web automation, among other things. To use VMLogin with Oxylabs Residential Proxies, download the latest version of VMLogin here.
Launch VMLogin and create a new browser profile. You can either click Get random profile (1), or select your settings.
Click on Setting proxy server (2)
- Create a new Residential Proxy user.
- Click on Setting proxy server and choose HTTP Proxy as the Connection type. Under IP or host enter pr.oxylabs.io. Fill in 7777 for Port. Finally, enter your login credentials under Username (in customer-username format) and Password. You can check if the proxy works by clicking Test Proxy. If everything is fine, save profile and launch the browser.
- You can also use country specific entries. For example, if you put us-pr.oxylabs.io under Proxy IP address and 10001 under Proxy Port, you will receive a US exit node with a sticky session.
- This is all, you are ready to use Residential Proxies with VMLogin.
Undetectable
Firstly, you will need to get Undetectable. To do that, simply go to undetectable.io, sign up, and download the browser.
Then, open the application and click "+" to create a new profile.
In the following window, under New Profile, enter the new profile name. Choose the settings (OS, browser, configurations, and screen) of how you want your browser to be recognized by websites.
Also, you can select the main and additional languages, while geo-location will be determined by your proxy.
Go to the Proxy tab and select the "New proxy" option in the box.
You can choose either SOCKS5 or HTTP (select HTTP proxy as a connection type). Now fill in proxy and authentication details: type pr.oxylabs.io for your Host and use 7777 for Port. Enter your credentials in the Login and Password spaces. Do not forget to add customer- at the beginning of your username. If you have whitelisted your devices, you do not need to provide login credentials.
You can also use country-specific entries. For example, if you put us- pr.oxylabs.io under Host and 10001 under Port, you will receive US exit node with a sticky session. Please check out our complete list of country-secific entry nodes.
Click the Check button. If everything is fine, you should get a response indicating External IP. Press the Save Proxy button to confirm the changes.
Now save the profile by pressing the Save button, and you will see it appear on the left side menu. Edit your profiles easily by simply clicking on them.
That's it! You have successfully set up your proxies with Undetectable.io.
Puppeteer
Before getting started with Puppeteer, you’ll need to install some basic tools: Node.js and a code editor of your choice. After that, create a Node.js project and install the required packages. You may find a detailed guide on how to install and run Puppeteer on our blog post.
Once everything is set up, we can move on to the next part – Oxylabs Residential Proxies integration with Puppeteer.
- Within Puppeteer, fill in the value, for example:
pr.oxylabs.io:7777
- Under ‘page.authenticate’ input your Oxylabs proxy sub-user username in the ‘username’ value and your password.
- The example of a code looks like this (see on the right):
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false,
args: ['--proxy-server=pr.oxylabs.io:7777]
});
const page = await browser.newPage();
await page.authenticate({
username: 'USERNAME',
password: 'PASSWORD'
});
await page.goto('https://ip.oxylabs.io');
await page.screenshot({path: 'example.png'});
await browser.close();
})();
You can also use country-specific entries. For example, if you put us-pr.oxylabs.io
under ‘host’ and 10001
under ‘port’, you will receive a US exit node with a sticky session. Please check out our documentation for a complete list of country-specific entry nodes.
And that’s it! You’ve successfully integrated Oxylabs Residential proxies with Puppeteer.
ParseHub
Settings configuration in ParseHub is a pretty straightforward process. Before getting started, visit Oxylabs dashboard and add your IP address to the whitelist under Residential Proxies > Whitelist. If you haven't created your user yet, do that in the Residential Proxies > Users section as well. You may need your user credentials for authentication in ParseHub later on. Then, follow the steps below:
- Download ParseHub and install it on your computer.
- Launch ParseHub.
- Create a new project from your home screen by clicking on the “+ New Project” button.
- Insert a URL from which you would like to scrape public data from. In this example, we'll use oxylabs.io. Then, press “Start project on this URL”.
- Wait for the project to be ready and switch to the “Browse” mode.
- Once the “Browse” slider is green, open the drop-down list on the top-right side and click on “Preferences”.
*Select “Advanced”, click on the “Network” tab, and choose “Settings”.
- Select “Manual proxy configuration”, insert pr.oxylabs.io in the “HTTP Proxy” field and “7777” in the “Port” field. Click “OK” to save the settings.
That's it! You've successfully integrated Oxylabs Residential Proxies with ParseHub. To make sure it's working properly, check your IP address on a database such as whatismyipaddress.com.
Helium Scraper
Helium Scraper is a straightforward data extraction tool. It allows you to scrape public data employing proxies to avoid various restrictions such as CAPTCHA and an IP getting blocked. The tool lets you focus on the desired data, not on how to get it. Helium's infrastructure offers unlimited scalability, extraction, custom scenarios, and supports multiple export formats.
To integrate Oxylabs Proxies with Helium Scraper, follow the steps below:
- To begin, download and install the Helium Scraper via heliumscraper.com.
- Launch Helium Scraper and select File > Proxy List.
- Fill in the required credentials. Under Address, enter pr.oxylabs.io and under Port type in 7777. You can also use country-specific entries. For example, if you fill in us-pr.oxylabs.io under Address and 10001 under Port, you'll acquire a US exit node with a sticky session (for a complete list of country-specific entry notes, please refer to our this section. Enter your Oxylabs sub-user's Username and Password. Press OK.
To enable Proxies for Helium Scraper, follow the septs below:
- Open the Helium Scraper project you are working on and navigate to Project > Settings. This and the following step should be replicated every time you start a new project.
- Change Enable Proxies to True and click OK.
Finally, to verify the proxy integration with Helium Scraper, visit a website that shows IP addresses using Helium's main browser. Confirm that the IP address has indeed changed. That's all! You've successfully integrated your Residential Proxies with Helium.
WebHarvy
WebHarvy is an intuitive visual scraper that easily scrapes text, HTML, images, URLs, and emails from websites. The Inbuilt browser allows you to click on specific content for scraping. The cursor detects data patterns that occur on a webpage. If the data repeats, the tool scrapes automatically without any additional user input. The entire lists on multiple pages are extracted in just a few clicks. Lastly, WebHarvy saves scraped data in Excel, XML, CSV, JSON, and TSV formats.
To integrate Oxylabs Proxies with WebHarvy, follow the steps below:
- Firstly, download and install the WebHarvy app via webharvy.com.
- Once set up, navigate to Settings.
- Click on Proxy Settings. Select to mark Enable network connection via Proxy Server and choose HTTP as your Type.
Fill in the required credentials. Under Address, enter pr.oxylabs.io and under Port type in 7777. You can also use country-specific entries. For example, if you fill in us-pr.oxylabs.io under Address and 10001 under Port, you'll acquire a US exit node with a sticky session (for a complete list of country-specific entry notes, please refer to our documentation).
Click to mark Requires authentication to enter your Oxylabs sub-user's Username and Password. Click on the + button to add your newly input proxy to the list. Lastly, press Apply to finish your WebHarvy proxy integration.
That's all. Now you can browse the internet and mark the specific rows to scrape. By clicking Start you can begin selecting your target data.
Ghost Browser
Ghost Browser is an open-source browser built on Chromium. It enables multi-session browsing identities and workspaces for users to get the most out of browsing while being malware and tracking-free. One of the features Ghost Browser carries so-called 'cookie jars' that are isolated from one another, in this way allowing users to log in to multiple accounts within one website at once.
To set up proxies in Ghost Browser, follow the steps below:
Open Ghost Browser.
Click on 'Browser Settings' at the bottom-left of the browser.
- Once opened, scroll down and press 'Advanced'.
- Find the 'System' section in the bottom, click on 'Open your computer's proxy settings'.
- Choose 'LAN settings' in the 'Connections' tab of the 'Internet properties' window.
- Under 'Proxy', select 'Use a proxy server for your LAN'. Insert the Oxylabs proxy URL and port in the 'Address' and 'Port' fields.
- Open a new tab in the Ghost Browser. Enter your username and password. Choose the location at the end of your username.
That's it! You've successfully integrated our Residential Proxies with Ghost Browser. Don't forget to check your IP address before surfing the web.
Playwright
const playwright = require('playwright');
(async () => {
for (const browserType of ['chromium', 'firefox', 'webkit']) {
const browser = await playwright[browserType].launch({
headless: false,
proxy: {
server: 'http://pr.oxylabs.io:7777',
username: 'USERNAME',
password: 'PASSWORD'
},
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://ip.oxylabs.io');
await page.screenshot({ path: `${browserType}.png` });
await browser.close();
}
})();
Playwright is a convenient framework for automation and testing purposes. It can work with web browser interactions, e.g., navigate to URLs, enter text, click buttons, extract text, and more.
Before getting started with Playwright, you'll need to install a few basic tools: Node.js and a code editor of your choice. After that, create a Node.js project and install the required packages. You may find a detailed guide on how to install and run Playwright on our blog post.
Once everything is set up, we can move on to the next part – Oxylabs' Residential Proxies integration with Playwright.
Within Playwright, fill in the 'Proxy IP:Port' in the 'server' value, for example:
http://pr.oxylabs.io:7777
Under 'proxy' value, input your Oxylabs' proxy sub-user username in the 'username' value and your password.
The example of a code looks like this (see on the right):
You can also use country-specific entries. For example, if you put us-pr.oxylabs.io
under 'host' and 10001
under 'port', you'll receive a US exit node with a sticky session. Please, check out our documentation for a complete list of country-specific entry nodes.
And that's it! You've successfully integrated Oxylabs' Residential Proxies with Playwright.
Octoparse
Octoparse is a simple-to-use data extraction tool. It allows you to scrape public data without coding and bypass most anti-scraping mechanisms by enabling automatic IP rotation and extended session time. Amplified by the advanced machine learning algorithms, Octoparse quickly locates the data when you click on it. It handles complex websites and captures all kinds of data, including text, link, image URL, and HTML code.
To integrate Octoparse with Oxylabs Residential Proxies, follow the simple steps below:
- To start the Octoparse proxy integration, download, install, and open Octoparse, following the instructions.
- Create a task by clicking the +New button in the top-left corner, and choose the Advanced Mode.
- Type the URL of the webpage you intend to extract data from in the Website field. We will use ip.oxylabs.io as an example. Click the Save button.
- To set up our proxies, select the settings icon on the upper bar in your Task tab.
Scroll down to the Anti-blocking Settings.
Put a checkmark in the Use IP Proxies box. After this step, you will see the Octoparse proxy Settings button.
- When you click on the Octoparse proxy Settings button, a pop-up window will appear. Copy and paste the Oxylabs' proxies IP addresses into the field. Octoparse only works with IP:PORT-based format. For example, if you want to use our Rotating Residential Proxies, you can use
188.40.239.128:7777
.
- Depending on whether you use a rotating or sticky session type, set up the Switch interval.
Save changes by clicking the Confirm button.
To ensure the Octoparse integration was successful, check if there is a checkmark next to the Settings in the Anti-blocking settings section.
- Click the Save button.
That's it – you are all set up and ready to focus on your web scraping tasks with Octoparse.
Incogniton
Incogniton is a tool that enables multiple easy-to-use profile management solutions. It is useful for overseeing numerous online identities while keeping uncompromised privacy. Each profile sets up a unique instance of an anonymous web browser. Incogniton provides a complete functional infrastructure. The only element you need to outsource personally is a proxy.
To integrate Incogniton with Oxylabs proxies, follow the steps below.
Firstly, download and install the Incogniton app via Incogniton.com.
Register your account and sign in.
Once logged in, navigate to Profile Management and click on New profile.
- Click on Proxy in the menu on the left side. Fill in the required details. Choose HTTP proxy as your connection type. Under Proxy: (ip:port) enter pr.oxylabs.io:7777. You can also use country-specific entries. For example, if you fill in us-pr.oxylabs.io:10001, you'll acquire a US exit node with a sticky session (for a complete list of country-specific entry notes, please refer to our documentation). Type in your Oxylabs sub-user credentials under Proxy username and Proxy password. Finally, click to mark Rotating proxy for increased flexibility.
Click Check proxy to ensure functionality. You should receive an external IP with additional details, such as an exact geographic location, timezone, etc.
Lastly, fill in the remaining details (Overview, Timezone, etc.) according to your preferences and click Create profile.
And that's it. You have successfully integrated your proxies with Incogniton. By clicking Start on your freshly set up profile, you'll see a pop-up of an incognito browser window. Now you can begin your web operations enhanced by anonymous flexibility.
Selenium
Checking if proxy is working:
try:
driver.get("https://ip.oxylabs.io/")
return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
finally:
driver.quit()
Full code for Oxylabs' Residential Proxies integration with Selenium:
from selenium.webdriver.common.by import By
from seleniumwire import webdriver
# A package to have a chromedriver always up-to-date.
from webdriver_manager.chrome import ChromeDriverManager
USERNAME = "your_username"
PASSWORD = "your_password"
ENDPOINT = "pr.oxylabs.io:7777"
def chrome_proxy(user: str, password: str, endpoint: str) -> dict:
wire_options = {
"proxy": {
"http": f"http://{user}:{password}@{endpoint}",
"https": f"http://{user}:{password}@{endpoint}",
}
}
return wire_options
def execute_driver():
options = webdriver.ChromeOptions()
options.headless = True
proxies = chrome_proxy(USERNAME, PASSWORD, ENDPOINT)
driver = webdriver.Chrome(
ChromeDriverManager().install(), options=options, seleniumwire_options=proxies
)
try:
driver.get("https://ip.oxylabs.io/")
return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
finally:
driver.quit()
if __name__ == "__main__":
print(execute_driver())
Selenium is a tool that helps automate web browser interactions for website testing and more. It's useful when you need to interact with a browser to perform a number of tasks, such as clicking on buttons, scrolling, etc. Even if primarily Selenium is used for website testing, it can also be used for web scraping because it helps locate the required public data on a website.
To integrate Selenium with Oxylabs proxies, follow the instructions below:
Firstly, you'll need to install Selenium Wire to extend Selenium's Python bindings because using the default Selenium module for implementing proxies that require authentication makes the whole process complicated. You can do it using the
pip
command:pip install selenium-wire
Another recommended package for this integration is
webdriver-manager
. It's a package that simplifies the management of binary drivers for different browsers. In this case, there's no need to manually download a new version of a web driver after each update.You can install the
webdriver-manager
using thepip
command as well:pip install webdriver-manager
Proxy authentication
Once everything is set up, you can move on to the next part – proxy authentication. For proxies to work, you'll be prompted to specify your account credentials.
USERNAME = "your_username"
PASSWORD = "your_password"
ENDPOINT = "pr.oxylabs.io:7777"
You'll need to adjust your_username
and your_password
fields with the username and password of your proxy user.
Testing proxy server connection
If you need to check if the proxy is working, you should visit ip.oxylabs.io. If everything is working correctly, it will return an IP address of a proxy that you're using.