Read detailed guides on how to get started and make requests using Web Scraper API for different websites.
Search Engines
Getting started
Select the search engine you want to scrape: Google , Bing , Other Search Engines .
Request sample
cURL Python Node.js PHP C# Golang HTTP Java JSON
Copy curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "google_search",
"query": "adidas"
}'
Copy import requests
from pprint import pprint
# Structure payload.
payload = {
'source' : 'google_search' ,
'query' : 'adidas' ,
}
# Get response.
response = requests . request (
'POST' ,
'https://realtime.oxylabs.io/v1/queries' ,
auth = ( 'USERNAME' , 'PASSWORD' ),
json = payload,
)
# Print prettified response to stdout.
pprint (response. json ())
Copy const https = require ( "https" );
const username = "USERNAME" ;
const password = "PASSWORD" ;
const body = {
source : "google_search" ,
query : "adidas" ,
};
const options = {
hostname : "realtime.oxylabs.io" ,
path : "/v1/queries" ,
method : "POST" ,
headers : {
"Content-Type" : "application/json" ,
Authorization :
"Basic " + Buffer .from ( ` ${ username } : ${ password } ` ) .toString ( "base64" ) ,
} ,
};
const request = https .request (options , (response) => {
let data = "" ;
response .on ( "data" , (chunk) => {
data += chunk;
});
response .on ( "end" , () => {
const responseData = JSON .parse (data);
console .log ( JSON .stringify (responseData , null , 2 ));
});
});
request .on ( "error" , (error) => {
console .error ( "Error:" , error);
});
request .write ( JSON .stringify (body));
request .end ();
Copy <? php
$params = array (
'source' => 'google_search' ,
'query' => 'adidas' ,
);
$ch = curl_init () ;
curl_setopt ( $ch , CURLOPT_URL , "https://realtime.oxylabs.io/v1/queries" ) ;
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 ) ;
curl_setopt ( $ch , CURLOPT_POSTFIELDS , json_encode ( $params )) ;
curl_setopt ( $ch , CURLOPT_POST , 1 ) ;
curl_setopt ( $ch , CURLOPT_USERPWD , "USERNAME" . ":" . "PASSWORD" ) ;
$headers = array ();
$headers[] = "Content-Type: application/json" ;
curl_setopt ( $ch , CURLOPT_HTTPHEADER , $headers ) ;
$result = curl_exec ( $ch ) ;
echo $result;
if ( curl_errno ( $ch ) ) {
echo 'Error:' . curl_error ( $ch ) ;
}
curl_close ( $ch ) ;
Copy using System ;
using System . Net . Http ;
using System . Net . Http . Json ;
using System . Threading . Tasks ;
namespace OxyApi
{
class Program
{
static async Task Main ()
{
const string Username = "USERNAME" ;
const string Password = "PASSWORD" ;
var parameters = new {
source = "google_search" ,
query = "adidas" ,
};
var client = new HttpClient ();
Uri baseUri = new Uri ( "https://realtime.oxylabs.io" );
client . BaseAddress = baseUri;
var requestMessage = new HttpRequestMessage ( HttpMethod . Post , "/v1/queries" );
requestMessage . Content = JsonContent . Create (parameters);
var authenticationString = $"{Username}:{Password}" ;
var base64EncodedAuthenticationString = Convert . ToBase64String ( System . Text . Encoding . ASCII . GetBytes (authenticationString));
requestMessage . Headers . Add ( "Authorization" , "Basic " + base64EncodedAuthenticationString);
var response = await client . SendAsync (requestMessage);
var contents = await response . Content . ReadAsStringAsync ();
Console . WriteLine (contents);
}
}
}
Copy package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main () {
const Username = "USERNAME"
const Password = "PASSWORD"
payload := map [ string ] interface {}{
"source" : "google_search" ,
"query" : "adidas" ,
}
jsonValue, _ := json. Marshal (payload)
client := & http . Client {}
request, _ := http. NewRequest ( "POST" ,
"https://realtime.oxylabs.io/v1/queries" ,
bytes. NewBuffer (jsonValue),
)
request. SetBasicAuth (Username, Password)
request.Header. Set ( "Content-Type" , "application/json" )
response, _ := client. Do (request)
responseText, _ := ioutil. ReadAll (response.Body)
fmt. Println ( string (responseText))
}
Copy https://realtime.oxylabs.io/v1/queries?source=google_search& query = adidas & access_token =12345 abcde
Copy package org . example ;
import okhttp3 . * ;
import org . json . JSONObject ;
import java . util . concurrent . TimeUnit ;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization" ;
public static final String USERNAME = "USERNAME" ;
public static final String PASSWORD = "PASSWORD" ;
public void run () {
JSONObject jsonObject = new JSONObject() ;
jsonObject . put ( "source" , "google_search" );
jsonObject . put ( "query" , "adidas" );
Authenticator authenticator = (route , response) -> {
String credential = Credentials . basic (USERNAME , PASSWORD);
return response
. request ()
. newBuilder ()
. header (AUTHORIZATION_HEADER , credential)
. build ();
};
var client = new OkHttpClient . Builder ()
. authenticator (authenticator)
. readTimeout ( 180 , TimeUnit . SECONDS )
. build ();
var mediaType = MediaType . parse ( "application/json; charset=utf-8" );
var body = RequestBody . create ( jsonObject . toString () , mediaType);
var request = new Request . Builder ()
. url ( "https://realtime.oxylabs.io/v1/queries" )
. post (body)
. build ();
try ( var response = client . newCall (request) . execute ()) {
if ( response . body () != null ) {
try ( var responseBody = response . body ()) {
System . out . println ( responseBody . string ());
}
}
} catch ( Exception exception) {
System . out . println ( "Error: " + exception . getMessage ());
}
System . exit ( 0 );
}
public static void main ( String [] args) {
new Thread( new Main()) . start ();
}
}
Copy {
"source" : "google_search" ,
"query" : "adidas"
}
We use synchronous Realtime integration method in our examples. If you would like to use Proxy Endpoint or asynchronous Push-Pull integration, refer to the integration methods section.
Forming a request
When forming a request, include the following elements:
Realtime Proxy Endpoint Push-Pull
Copy POST https://realtime.oxylabs.io/v1/queries
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Content-type . When submitting jobs, always add this header:
Copy Content-Type: application/json
Payload:
source
- This parameter sets the scraper that will be used to process your request.
URL
or query
- Provide the URL
or query
for the type of page you want to scrape. Refer to the table below and the corresponding target sub-pages for detailed guidance on when to use each parameter.
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, parse
, render
and more to customize your scraping request.
Copy {
"source" : "google_search" ,
"query" : "adidas" ,
"geo_location" : "California,United States" ,
"parse" : true
}
Copy GET realtime.oxylabs.io:60000
Ignore certificates. In cURL
, it's -k
or --insecure
.
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Payload:
URL
- Provide the URL
for the page you want to scrape.
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, parse
, and send them as headers.
Copy curl -k -x realtime.oxylabs.io:60000 \
-U "USERNAME:PASSWORD" \
'https://www.google.com/search?q=adidas' \
-H "x-oxylabs-geo-location: California,United States" \
-H "x-oxylabs-parse: 1"
Copy POST https://data.oxylabs.io/v1/queries
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Content-type . When submitting jobs, always add this header:
Copy Content-Type: application/json
Payload:
source
- This parameter sets the scraper that will be used to process your request.
URL
or query
- Provide the URL
or query
for the type of page you want to scrape. Refer to the table below and the corresponding target sub-pages for detailed guidance on when to use each parameter.
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, parse
, and more to customize your scraping request.
Copy {
"source" : "google_search" ,
"query" : "adidas" ,
"geo_location" : "California,United States" ,
"parse" : true
}
Upon submitting a request, you will promptly receive a JSON response containing all job details, including job parameters, job ID, and URLs for downloading job results:
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=raw
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=parsed
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=png
Target
Source (Scraping URL)
Source (Using Query)
google_search
,
google_ads
,
google_images
,
google_lens
,
google_maps
,
google_travel_hotels
,
google_suggest
,
google_trends_explore
Using query
parameter is not supported
Marketplaces
Getting started
Select the online marketplace you want to scrape: Amazon , Google Shopping , Walmart , Best Buy , Etsy , Target , Other Websites .
Request sample
cURL Python Node.js PHP C# Golang HTTP Java JSON
Copy curl 'https://realtime.oxylabs.io/v1/queries' \
--user "USERNAME:PASSWORD" \
-H "Content-Type: application/json" \
-d '{
"source": "amazon_product",
"query": "B07FZ8S74R",
"geo_location": "90210",
"parse": true
}'
Copy import requests
from pprint import pprint
# Structure payload.
payload = {
'source' : 'amazon_product' ,
'query' : 'B07FZ8S74R' ,
'geo_location' : '90210' ,
'parse' : True
}
# Get response.
response = requests . request (
'POST' ,
'https://realtime.oxylabs.io/v1/queries' ,
auth = ( 'USERNAME' , 'PASSWORD' ),
json = payload,
)
# Print prettified response to stdout.
pprint (response. json ())
Copy const https = require ( "https" );
const username = "USERNAME" ;
const password = "PASSWORD" ;
const body = {
source : "amazon_product" ,
query : "B07FZ8S74R" ,
geo_location : "90210" ,
parse : true ,
};
const options = {
hostname : "realtime.oxylabs.io" ,
path : "/v1/queries" ,
method : "POST" ,
headers : {
"Content-Type" : "application/json" ,
Authorization :
"Basic " + Buffer .from ( ` ${ username } : ${ password } ` ) .toString ( "base64" ) ,
} ,
};
const request = https .request (options , (response) => {
let data = "" ;
response .on ( "data" , (chunk) => {
data += chunk;
});
response .on ( "end" , () => {
const responseData = JSON .parse (data);
console .log ( JSON .stringify (responseData , null , 2 ));
});
});
request .on ( "error" , (error) => {
console .error ( "Error:" , error);
});
request .write ( JSON .stringify (body));
request .end ();
Copy <? php
$params = array (
'source' => 'amazon_product' ,
'query' => 'B07FZ8S74R' ,
'geo_location' => '90210' ,
'parse' => true ,
);
$ch = curl_init () ;
curl_setopt ( $ch , CURLOPT_URL , "https://realtime.oxylabs.io/v1/queries" ) ;
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 ) ;
curl_setopt ( $ch , CURLOPT_POSTFIELDS , json_encode ( $params )) ;
curl_setopt ( $ch , CURLOPT_POST , 1 ) ;
curl_setopt ( $ch , CURLOPT_USERPWD , "USERNAME" . ":" . "PASSWORD" ) ;
$headers = array ();
$headers[] = "Content-Type: application/json" ;
curl_setopt ( $ch , CURLOPT_HTTPHEADER , $headers ) ;
$result = curl_exec ( $ch ) ;
echo $result;
if ( curl_errno ( $ch ) ) {
echo 'Error:' . curl_error ( $ch ) ;
}
curl_close ( $ch ) ;
?>
Copy using System ;
using System . Net . Http ;
using System . Net . Http . Json ;
using System . Threading . Tasks ;
namespace OxyApi
{
class Program
{
static async Task Main ()
{
const string Username = "USERNAME" ;
const string Password = "PASSWORD" ;
var parameters = new {
source = "amazon_product" ,
query = "B07FZ8S74R" ,
geo_location = "90210" ,
parse = true
};
var client = new HttpClient ();
Uri baseUri = new Uri ( "https://realtime.oxylabs.io" );
client . BaseAddress = baseUri;
var requestMessage = new HttpRequestMessage ( HttpMethod . Post , "/v1/queries" );
requestMessage . Content = JsonContent . Create (parameters);
var authenticationString = $"{Username}:{Password}" ;
var base64EncodedAuthenticationString = Convert . ToBase64String ( System . Text . Encoding . ASCII . GetBytes (authenticationString));
requestMessage . Headers . Add ( "Authorization" , "Basic " + base64EncodedAuthenticationString);
var response = await client . SendAsync (requestMessage);
var contents = await response . Content . ReadAsStringAsync ();
Console . WriteLine (contents);
}
}
}
Copy package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main () {
const Username = "USERNAME"
const Password = "PASSWORD"
payload := map [ string ] interface {}{
"source" : "amazon_product" ,
"query" : "B07FZ8S74R" ,
"geo_location" : "90210" ,
"parse" : true ,
}
jsonValue, _ := json. Marshal (payload)
client := & http . Client {}
request, _ := http. NewRequest ( "POST" ,
"https://realtime.oxylabs.io/v1/queries" ,
bytes. NewBuffer (jsonValue),
)
request. SetBasicAuth (Username, Password)
request.Header. Set ( "Content-Type" , "application/json" )
response, _ := client. Do (request)
responseText, _ := ioutil. ReadAll (response.Body)
fmt. Println ( string (responseText))
}
Copy https://realtime.oxylabs.io/v1/queries?source=amazon_product& query = B07FZ8S74R & geo_location =90210& parse = true & access_token =12345 abcde
Copy package org . example ;
import okhttp3 . * ;
import org . json . JSONObject ;
import java . util . concurrent . TimeUnit ;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization" ;
public static final String USERNAME = "USERNAME" ;
public static final String PASSWORD = "PASSWORD" ;
public void run () {
JSONObject jsonObject = new JSONObject() ;
jsonObject . put ( "source" , "amazon_product" );
jsonObject . put ( "query" , "B07FZ8S74R" );
jsonObject . put ( "geo_location" , "90210" );
jsonObject . put ( "parse" , true );
Authenticator authenticator = (route , response) -> {
String credential = Credentials . basic (USERNAME , PASSWORD);
return response
. request ()
. newBuilder ()
. header (AUTHORIZATION_HEADER , credential)
. build ();
};
var client = new OkHttpClient . Builder ()
. authenticator (authenticator)
. readTimeout ( 180 , TimeUnit . SECONDS )
. build ();
var mediaType = MediaType . parse ( "application/json; charset=utf-8" );
var body = RequestBody . create ( jsonObject . toString () , mediaType);
var request = new Request . Builder ()
. url ( "https://realtime.oxylabs.io/v1/queries" )
. post (body)
. build ();
try ( var response = client . newCall (request) . execute ()) {
if ( response . body () != null ) {
try ( var responseBody = response . body ()) {
System . out . println ( responseBody . string ());
}
}
} catch ( Exception exception) {
System . out . println ( "Error: " + exception . getMessage ());
}
System . exit ( 0 );
}
public static void main ( String [] args) {
new Thread( new Main()) . start ();
}
}
Copy {
"source" : "amazon_product" ,
"query" : "B07FZ8S74R" ,
"geo_location" : "90210" ,
"parse" : true
}
We use synchronous Realtime integration method in our examples. If you would like to use Proxy Endpoint or asynchronous Push-Pull integration, refer to the integration methods section.
Forming a request
When forming a request, include the following elements:
Realtime Proxy Endpoint Push-Pull
Copy POST https://realtime.oxylabs.io/v1/queries
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Content-type . When submitting jobs, always add this header:
Copy Content-Type: application/json
Payload:
source
- This parameter sets the scraper that will be used to process your request.
URL
or query
- Provide the URL
or query
for the type of page you want to scrape. Refer to the table below and the corresponding target sub-pages for detailed guidance on when to use each parameter.
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, parse
, render
and more to customize your scraping request.
Copy {
"source" : "amazon_product" ,
"query" : "B07FZ8S74R" ,
"geo_location" : "90210" ,
"parse" : true
}
Copy GET realtime.oxylabs.io:60000
Ignore certificates. In cURL
, it's -k
or --insecure
.
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Payload:
URL
- Provide the URL
for the page you want to scrape.
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, parse
, and send them as headers.
Copy curl -k -x realtime.oxylabs.io:60000 \
-U "USERNAME:PASSWORD" \
'https://www.amazon.com/dp/b07fz8s74r' \
-H "x-oxylabs-geo-location: 90210" \
-H "x-oxylabs-parse: 1"
Copy POST https://data.oxylabs.io/v1/queries
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Content-type . When submitting jobs, always add this header:
Copy Content-Type: application/json
Payload:
source
- This parameter sets the scraper that will be used to process your request.
URL
or query
- Provide the URL
or query
for the type of page you want to scrape. Refer to the table below and the corresponding target sub-pages for detailed guidance on when to use each parameter.
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, parse
, and more to customize your scraping request.
Copy {
"source" : "amazon_product" ,
"query" : "B07FZ8S74R" ,
"geo_location" : "90210" ,
"parse" : true
}
Upon submitting a request, you will promptly receive a JSON response containing all job details, including job parameters, job ID, and URLs for downloading job results:
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=raw
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=parsed
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=pn
Target
Source (Scraping URL)
Source (Using Query)
amazon_product,
amazon_search
,
amazon_pricing
,
amazon_sellers,
amazon_bestsellers,
amazon_reviews
,
amazon_questions
google_shopping_product
,
google_shopping_search
,
google_shopping_pricing
Using query
parameter is not supported
Other websites
Getting started
Scrape any URL with our universal
source. You can also add additional parameters .
Request sample
cURL Python Node.js HTTP PHP Golang C# Java JSON
Copy curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "universal",
"url": "https://sandbox.oxylabs.io/"
}'
Copy import requests
from pprint import pprint
# Structure payload.
payload = {
'source' : 'universal' ,
'url' : 'https://sandbox.oxylabs.io/' ,
# 'render': 'html', # If page type requires
}
# Get response.
response = requests . request (
'POST' ,
'https://realtime.oxylabs.io/v1/queries' ,
auth = ( 'USERNAME' , 'PASSWORD' ), # Your credentials go here
json = payload,
)
# Instead of response with job status and results url, this will return the
# JSON response with results.
pprint (response. json ())
Copy const https = require ( "https" );
const username = "USERNAME" ;
const password = "PASSWORD" ;
const body = {
source : "universal" ,
url : "https://sandbox.oxylabs.io/" ,
// 'render': 'html' // If page type requires
};
const options = {
hostname : "realtime.oxylabs.io" ,
path : "/v1/queries" ,
method : "POST" ,
headers : {
"Content-Type" : "application/json" ,
Authorization : "Basic " + Buffer .from ( ` ${ username } : ${ password } ` ) .toString ( "base64" ) ,
} ,
};
const request = https .request (options , (response) => {
let data = "" ;
response .on ( "data" , (chunk) => {
data += chunk;
});
response .on ( "end" , () => {
const responseData = JSON .parse (data);
console .log ( JSON .stringify (responseData , null , 2 ));
});
});
request .on ( "error" , (error) => {
console .error ( "Error:" , error);
});
request .write ( JSON .stringify (body));
request .end ();
Copy # The whole string you submit has to be URL-encoded.
https://realtime.oxylabs.io/v1/queries?source=universal&url=https%3A%2F%2Fsandbox.oxylabs.io%2F&access_token=12345abcde
Copy <? php
$params = array (
'source' => 'universal' ,
'url' => 'https://sandbox.oxylabs.io/' ,
// 'render' => 'html' // If page type requires
);
$ch = curl_init () ;
curl_setopt ( $ch , CURLOPT_URL , "https://realtime.oxylabs.io/v1/queries" ) ;
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 ) ;
curl_setopt ( $ch , CURLOPT_POSTFIELDS , json_encode ( $params )) ;
curl_setopt ( $ch , CURLOPT_POST , 1 ) ;
curl_setopt ( $ch , CURLOPT_USERPWD , "USERNAME" . ":" . "PASSWORD" ) ;
$headers = array ();
$headers[] = "Content-Type: application/json" ;
curl_setopt ( $ch , CURLOPT_HTTPHEADER , $headers ) ;
$result = curl_exec ( $ch ) ;
echo $result;
if ( curl_errno ( $ch ) ) {
echo 'Error:' . curl_error ( $ch ) ;
}
curl_close ( $ch ) ;
Copy package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main () {
const Username = "USERNAME"
const Password = "PASSWORD"
payload := map [ string ] interface {}{
"source" : "universal" ,
"url" : "https://sandbox.oxylabs.io/" ,
// "render": "html" // If page type requires
}
jsonValue, _ := json. Marshal (payload)
client := & http . Client {}
request, _ := http. NewRequest ( "POST" ,
"https://realtime.oxylabs.io/v1/queries" ,
bytes. NewBuffer (jsonValue),
)
request. SetBasicAuth (Username, Password)
response, _ := client. Do (request)
responseText, _ := ioutil. ReadAll (response.Body)
fmt. Println ( string (responseText))
}
Copy using System ;
using System . Collections . Generic ;
using System . Net . Http ;
using System . Net . Http . Json ;
using System . Threading . Tasks ;
namespace OxyApi
{
class Program
{
static async Task Main ()
{
const string Username = "USERNAME" ;
const string Password = "PASSWORD" ;
var parameters = new {
source = "universal" ,
url = "https://sandbox.oxylabs.io/" ,
// render = "html", // If page type requires
};
var client = new HttpClient ();
Uri baseUri = new Uri ( "https://realtime.oxylabs.io" );
client . BaseAddress = baseUri;
var requestMessage = new HttpRequestMessage ( HttpMethod . Post , "/v1/queries" );
requestMessage . Content = JsonContent . Create (parameters);
var authenticationString = $"{Username}:{Password}" ;
var base64EncodedAuthenticationString = Convert . ToBase64String ( System . Text . ASCIIEncoding . UTF8 . GetBytes (authenticationString));
requestMessage . Headers . Add ( "Authorization" , "Basic " + base64EncodedAuthenticationString);
var response = await client . SendAsync (requestMessage);
var contents = await response . Content . ReadAsStringAsync ();
Console . WriteLine (contents);
}
}
}
Copy package org . example ;
import okhttp3 . * ;
import org . json . JSONObject ;
import java . util . concurrent . TimeUnit ;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization" ;
public static final String USERNAME = "USERNAME" ;
public static final String PASSWORD = "PASSWORD" ;
public void run () {
JSONObject jsonObject = new JSONObject() ;
jsonObject . put ( "source" , "universal" );
jsonObject . put ( "url" , "https://sandbox.oxylabs.io/" );
Authenticator authenticator = (route , response) -> {
String credential = Credentials . basic (USERNAME , PASSWORD);
return response
. request ()
. newBuilder ()
. header (AUTHORIZATION_HEADER , credential)
. build ();
};
var client = new OkHttpClient . Builder ()
. authenticator (authenticator)
. readTimeout ( 180 , TimeUnit . SECONDS )
. build ();
var mediaType = MediaType . parse ( "application/json; charset=utf-8" );
var body = RequestBody . create ( jsonObject . toString () , mediaType);
var request = new Request . Builder ()
. url ( "https://realtime.oxylabs.io/v1/queries" )
. post (body)
. build ();
try ( var response = client . newCall (request) . execute ()) {
if ( response . body () != null ) {
try ( var responseBody = response . body ()) {
System . out . println ( responseBody . string ());
}
}
} catch ( Exception exception) {
System . out . println ( "Error: " + exception . getMessage ());
}
System . exit ( 0 );
}
public static void main ( String [] args) {
new Thread( new Main()) . start ();
}
}
Copy {
"source" : "universal" ,
"url" : "https://sandbox.oxylabs.io/"
}
We use synchronous Realtime integration method in our examples. If you would like to use Proxy Endpoint or asynchronous Push-Pull integration, refer to the integration methods section.
Forming a request
When forming a request, include the following elements:
Realtime Proxy Endpoint Push-Pull
Copy POST https://realtime.oxylabs.io/v1/queries
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Content-type . When submitting jobs, always add this header:
Copy Content-Type: application/json
Payload .
source
- This parameter sets the scraper that will be used to process your request.
URL
- Provide the URL
of the target you want to scrape, for example:
Real Estate : Idealista, Redfin, Zillow, Zoopla
Travel : Airbnb, Agoda, Booking, TripAdvisor
Automotive : Crunchbase, ZoomInfo, AngelList, Product Hunt
Company data : Netflix, SoundCloud, YouTube, IMDb
Entertainment : AutoEurope, Autotrader, RockAuto, Halfords
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, and more to customize your scraping request.
Copy {
"source" : "universal" ,
"url" : "https://www.zillow.com/homedetails/10066-Cielo-Dr-Beverly-Hills-CA-90210/243990393_zpid/"
}
Copy GET realtime.oxylabs.io:60000
Ignore certificates. In cURL
, it's -k
or --insecure
.
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Payload:
URL
- Provide the URL
for the page you want to scrape, for example:
Real Estate : Idealista, Redfin, Zillow, Zoopla
Travel : Airbnb, Agoda, Booking, TripAdvisor
Automotive : Crunchbase, ZoomInfo, AngelList, Product Hunt
Company data : Netflix, SoundCloud, YouTube, IMDb
Entertainment : AutoEurope, Autotrader, RockAuto, Halfords
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, and send them as headers.
Copy curl -k -x realtime.oxylabs.io:60000 \
-U "USERNAME:PASSWORD" \
'https://www.zillow.com/homedetails/10066-Cielo-Dr-Beverly-Hills-CA-90210/243990393_zpid/'
Copy POST https://data.oxylabs.io/v1/queries
If you need more than one API user for your account, please contact our customer support or message our 24/7 live chat support.
Content-type . When submitting jobs, always add this header:
Copy Content-Type: application/json
Payload .
source
- This parameter sets the scraper that will be used to process your request.
URL
- Provide the URL
of the target you want to scrape, for example:
Real Estate : Idealista, Redfin, Zillow, Zoopla
Travel : Airbnb, Agoda, Booking, TripAdvisor
Automotive : Crunchbase, ZoomInfo, AngelList, Product Hunt
Company data : Netflix, SoundCloud, YouTube, IMDb
Entertainment : AutoEurope, Autotrader, RockAuto, Halfords
Additional parameters : Optionally, you can include additional parameters such as geo_location
, user_agent_type
, and more to customize your scraping request.
Copy {
"source" : "universal" ,
"url" : "https://www.zillow.com/homedetails/10066-Cielo-Dr-Beverly-Hills-CA-90210/243990393_zpid/"
}
Upon submitting a request, you will promptly receive a JSON response containing all job details, including job parameters, job ID, and URLs for downloading job results:
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=raw
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=parsed
Copy GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=pn
If you need any assistance in making your first request, feel free to contact us via the 24/7 available live chat.
All information herein is provided on an “as is” basis and for informational purposes only. We make no representation and disclaim all liability with respect to your use of any information contained on this page. Before engaging in scraping activities of any kind you should consult your legal advisors and carefully read the particular website’s terms of service or receive a scraping license.
Last updated 2 months ago