Pricing
The amazon_pricing
data source is designed to retrieve Amazon product offer listings. To see what the parsed output looks like, download this JSON file.
Explore output data dictionary for Amazon Pricing, offering a brief description, screenshot, parsed JSON code snippet, and a table defining each parsed field. Navigate through the details using the right-side navigation or scrolling down the page.
Request samples
In the code examples below, we make a request to retrieve product offer listing page for ASIN B087TXHLVQ on amazon.nl
marketplace.
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "amazon_pricing",
"domain": "nl",
"query": "B087TXHLVQ",
"parse": true
}'
import requests
from pprint import pprint
# Structure payload.
payload = {
'source': 'amazon_pricing',
'domain': 'nl',
'query': 'B087TXHLVQ',
'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())
const https = require("https");
const username = "USERNAME";
const password = "PASSWORD";
const body = {
source: "amazon_pricing",
domain: "nl",
query: "B087TXHLVQ",
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();
https://realtime.oxylabs.io/v1/queries?source=amazon_pricing&domain=nl&query=B087TXHLVQ&parse=true&access_token=12345abcde
<?php
$params = array(
'source' => 'amazon_pricing',
'domain' => 'nl',
'query' => 'B087TXHLVQ',
'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);
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_pricing",
"domain": "nl",
"query": "B087TXHLVQ",
"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))
}
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 = "amazon_pricing",
domain = "nl",
query = "B087TXHLVQ",
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);
}
}
}
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_pricing");
jsonObject.put("domain", "nl");
jsonObject.put("query", "B087TXHLVQ");
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();
}
}
{
"source": "amazon_pricing",
"domain": "nl",
"query": "B087TXHLVQ",
"parse": true
}
We use Realtime integration method in our examples. If you would like to use some other integration method in your request (e.g. Push-Pull or Proxy Endpoint), refer to the integration methods section.
Request parameter values
Generic
Basic setup and customization options for scraping Amazon product offer listings.
- mandatory parameter
Localization
Adapt results to specific geographical locations, domains, and languages.
IMPORTANT: On most page types, Amazon tailors the returned results based on the delivery location of their customers. Therefore, we advise using the geo_location
parameter to set your preferred delivery location. You can read more about using geo_location
with Amazon here.
Pagination
Controls for managing the pagination and retrieval of search results.
Structured data
amazon_pricing
structured output
{
"results": [
{
"content": {
"url": "https://www.amazon.com/gp/aod/ajax/ref=dp_aod_unknown_mbc?asin=B07VGRJDFY&pageno=1",
"asin": "B07VGRJDFY",
"page": 1,
"title": "Nintendo Switch with Neon Blue and Neon Red Joy‑Con - HAC-001(-01)",
"pricing": [
{
"price": 237.99,
"seller": "Gamer Girlz Online",
"currency": "USD",
"delivery": "Ships from Gamer Girlz Online",
"condition": "Used - Acceptable",
"seller_id": "A151FB8X73UXPJ",
"seller_link": "/gp/aag/main?ie=UTF8&seller=A151FB8X73UXPJ&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_1",
"rating_count": 7857,
"price_shipping": 3.98,
"delivery_options": []
},
{
"price": 242,
"seller": "PROSALE (SN Recorded)",
"currency": "USD",
"delivery": "Ships from PROSALE (SN Recorded)",
"condition": "Used - Good",
"seller_id": "AWVDPEZSR45X1",
"seller_link": "/gp/aag/main?ie=UTF8&seller=AWVDPEZSR45X1&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_2",
"rating_count": 7202,
"price_shipping": 0,
"delivery_options": []
},
{
"price": 242,
"seller": "CellularStream",
"currency": "USD",
"delivery": "Ships from CellularStream",
"condition": "Used - Good",
"seller_id": "A3GMNP3CXMIPDP",
"seller_link": "/gp/aag/main?ie=UTF8&seller=A3GMNP3CXMIPDP&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_3",
"rating_count": 7256,
"price_shipping": 0,
"delivery_options": []
},
{
"price": 244.95,
"seller": "Re-Com",
"currency": "USD",
"delivery": "Ships from Re-Com",
"condition": "Used - Good",
"seller_id": "A37FI61TFZMV1Y",
"seller_link": "/gp/aag/main?ie=UTF8&seller=A37FI61TFZMV1Y&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_4",
"rating_count": 16179,
"price_shipping": 0,
"delivery_options": []
},
{
"price": 242,
"seller": "CirQle",
"currency": "USD",
"delivery": "Ships from CirQle",
"condition": "Used - Good",
"seller_id": "A3KFAI0ZG0Y40N",
"seller_link": "/gp/aag/main?ie=UTF8&seller=A3KFAI0ZG0Y40N&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_5",
"rating_count": 43,
"price_shipping": 3.99,
"delivery_options": []
},
{
"price": 251.99,
"seller": "Goldstar Tech",
"currency": "USD",
"delivery": "Ships from Goldstar Tech",
"condition": "Used - Good",
"seller_id": "ARJ9CR5IBXBH3",
"seller_link": "/gp/aag/main?ie=UTF8&seller=ARJ9CR5IBXBH3&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_6",
"rating_count": 56984,
"price_shipping": 0,
"delivery_options": []
},
{
"price": 254.9,
"seller": "VG1shop (Serial # Recorded)",
"currency": "USD",
"delivery": "Ships from VG1shop (Serial # Recorded)",
"condition": "Used - Good",
"seller_id": "AZZMAGMBAQU46",
"seller_link": "/gp/aag/main?ie=UTF8&seller=AZZMAGMBAQU46&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_7",
"rating_count": 147,
"price_shipping": 3.99,
"delivery_options": []
},
{
"price": 259.59,
"seller": "Amazon Warehouse",
"currency": "USD",
"delivery": "Ships from Amazon.com",
"condition": "Used - Good",
"seller_id": "",
"seller_link": "",
"rating_count": 0,
"price_shipping": 0,
"delivery_options": []
},
{
"price": 259.98,
"seller": "JMS Holdings",
"currency": "USD",
"delivery": "Ships from JMS Holdings",
"condition": "Used - Very Good",
"seller_id": "A23KD5S5NPGJB5",
"seller_link": "/gp/aag/main?ie=UTF8&seller=A23KD5S5NPGJB5&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_9",
"rating_count": 3877,
"price_shipping": 0,
"delivery_options": []
},
{
"price": 259.99,
"seller": "SKYTAC",
"currency": "USD",
"delivery": "Ships from SKYTAC",
"condition": "Used - Good",
"seller_id": "A2OPXXBQO51PIH",
"seller_link": "/gp/aag/main?ie=UTF8&seller=A2OPXXBQO51PIH&isAmazonFulfilled=0&asin=B07VGRJDFY&ref_=olp_merch_name_10",
"rating_count": 3,
"price_shipping": 3.99,
"delivery_options": []
}
],
"_warnings": [
"Could not parse pricing seller link.",
"Could not parse pricing seller link.",
"Could not parse rating count."
],
"asin_in_url": "B07VGRJDFY",
"review_count": 111672,
"parse_status_code": 12000
},
"created_at": "2022-05-09 06:55:44",
"updated_at": "2022-05-09 06:55:48",
"page": 1,
"url": "https://www.amazon.com/gp/aod/ajax/ref=dp_aod_unknown_mbc?asin=B07VGRJDFY&pageno=1",
"job_id": "6929323004996355073",
"status_code": 200,
"parser_type": ""
}
]
}
Output data dictionary
HTML example
The amazon_pricing
provides structured representation of pricing information for a specific product available on Amazon. The table below presents a detailed list of each field we parse, along with its description and data type. The table also includes some metadata.
JSON structure
In the following sections, parsed JSON code snippets are shortened where more than one item for the result type is available.
Pricing
pricing
includes details such as the price, seller, currency, delivery options, condition of the product, seller ID, and links to the seller's page. Additionally, the number of ratings received by the seller may be provided for further context.
...
"pricing": [
{
"price": 24,
"seller": "Amazon.com",
"currency": "USD",
"delivery": "Ships from Amazon.com",
"condition": "New",
"seller_id": "A2NDNAPHQ3UDKH",
"seller_link": "/gp/aag/main?ie=UTF8&seller=A2NDNAPHQ3UDKH&isAmazonFulfilled=0&asin=B07H9DVLBB&ref_=olp_merch_name_0",
"rating_count": 41715,
"price_shipping": 0,
"delivery_options": []
},
...
Last updated