Making Requests
Learn to make requests with Residential Proxies. Master the basic query structure and use parameters for location targeting, city selection, and sessions.
Basic query
Basic query only requires passing username and password. No other parameters are needed. Such a query will result in the request being made from a random IP address (proxy). Every new request will use a different proxy.
Code examples
In this example, a query to ip.oxylabs.io/location is performed from a random IP:
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME:PASSWORD" https://ip.oxylabs.io/location<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ip.oxylabs.io/location');
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://ip.oxylabs.io/location').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://ip.oxylabs.io/location").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://ip.oxylabs.io/location"));
}
crequire 'uri'
require 'net/http'
uri = URI.parse('https://ip.oxylabs.io/location')
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.bodyA single backconnect proxy (pr.oxylabs.io:7777)enables you to choose a specific country or city proxy via additional parameters in the username. This approach also supports session control. Here is a sample of credentials:
customer-USERNAME-cc-US-city-CITY-sessid-abcde12345:PASSWORD
customer-USERNAME-cc-US-city-CITY-sessid-abcde12345-sesstime-5:PASSWORD
Below is a breakdown of the structure:

Query parameters
customer
Username
cc
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. You can find more details on how to use country-specific proxies here.
city
Case insensitive city name in English. This parameter must be 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. 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. Click here for more information on state-level targeting.
sessid
Session ID to keep the same IP with upcoming queries. The session expires in 10 minutes. After that, a new IP address is assigned to that session ID. Random string, 0-9, and A-Z characters are supported.
sesstime
The session time parameter keeps the same IP for a certain period. The maximum session time is 30 minutes.
password
Password
- required parameter
Last updated
Was this helpful?

