The amazon
source is designed to retrieve the content from various Amazon URLs. Instead of sending multiple parameters, you can provide us with a direct URL to the required Amazon page. We do not strip any parameters or alter your URLs in any way.
This data source also supports parsed data (structured data in JSON format), as long as the URL submitted is for one of the page types we can parse. If we cannot confirm that we can parse the page you requested, you will receive a failure message.
To see the response example with retrieved data, download this sample output in HTML format.
Query parameters
Parameter Description Default Value Direct URL (link) to Amazon page
Device type and browser. The full list can be found here .
true
will return structured data, as long as the URL submitted is for one of the page types we can parse.
- required parameter
Code examples
In the code examples below, we make a request to retrieve the Amazon product page for ASIN B08Y6Z944Q
.
JSON cURL Python PHP C# Golang Java Node.js
Copy {
"source" : "amazon" ,
"url" : "https://www.amazon.co.uk/dp/B08Y6Z944Q/" ,
"parse" : true
}
Copy curl --user "USERNAME:PASSWORD" \
'https://realtime.oxylabs.io/v1/queries' \
-H "Content-Type: application/json" \
-d '{"source": "amazon", "url": "https://www.amazon.co.uk/dp/B08Y6Z944Q/", "parse": true}'
Copy import requests
from pprint import pprint
# Structure payload.
payload = {
'source' : 'amazon' ,
'url' : 'https://www.amazon.co.uk/dp/B08Y6Z944Q/' ,
'parse' : True
}
# Get response.
response = requests . request (
'POST' ,
'https://realtime.oxylabs.io/v1/queries' ,
auth = ( 'YOUR_USERNAME' , 'YOUR_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 <? php
$params = array (
'source' => 'amazon' ,
'url' => 'https://www.amazon.co.uk/dp/B08Y6Z944Q/' ,
'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 , "YOUR_USERNAME" . ":" . "YOUR_PASSWORD" ) ; //Your credentials go here
$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 . 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 = "YOUR_USERNAME" ;
const string Password = "YOUR_PASSWORD" ;
var parameters = new Dictionary < string , string >()
{
{ "source" , "amazon" } ,
{ "url" , "https://www.amazon.co.uk/dp/B08Y6Z944Q/" } ,
{ "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.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 main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main () {
const Username = "YOUR_USERNAME"
const Password = "YOUR_PASSWORD"
payload := map [ string ] string {
"source" : "amazon" ,
"url" : "https://www.amazon.co.uk/dp/B08Y6Z944Q/" ,
"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)
response, _ := client. Do (request)
responseText, _ := ioutil. ReadAll (response.Body)
fmt. Println ( string (responseText))
}
Copy package org . example ;
import okhttp3 . * ;
import org . json . JSONObject ;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization" ;
public static final String USERNAME = "YOUR_USERNAME" ;
public static final String PASSWORD = "YOUR_PASSWORD" ;
public void run () {
JSONObject jsonObject = new JSONObject() ;
jsonObject . put ( "source" , "amazon" );
jsonObject . put ( "url" , "https://www.amazon.co.uk/dp/B08Y6Z944Q/" );
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)
. 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 ()) {
assert response . body () != null ;
System . out . println ( response . body () . 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 import fetch from 'node-fetch' ;
const username = 'YOUR_USERNAME' ;
const password = 'YOUR_PASSWORD' ;
const body = {
'source' : 'amazon' ,
'url' : 'https://www.amazon.co.uk/dp/B08Y6Z944Q/' ,
'parse' : true
};
const response = await fetch ( 'https://realtime.oxylabs.io/v1/queries' , {
method : 'post' ,
body : JSON .stringify (body) ,
headers : {
'Content-Type' : 'application/json' ,
'Authorization' : 'Basic ' + Buffer .from ( ` ${ username } : ${ password } ` ) .toString ( 'base64' ) ,
}
});
console .log ( await response .json ());
The example above uses the Realtime integration method. If you would like to use some other integration method in your query (e.g. Push-Pull or Proxy Endpoint ), refer to the integration methods section.