Questions & Answers
The amazon_questions
data source is designed to retrieve any particular product's Questions & Answers pages. To see the response example with retrieved data, download this sample output file in HTML format or check structured data output here.
Explore output data dictionary for Questions & Answers, 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 the Q&A page for ASIN B00004SU18
on amazon.nl
marketplace.
curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "amazon_questions",
"domain": "nl",
"query": "B00004SU18",
"parse": true
}'
import requests
from pprint import pprint
# Structure payload.
payload = {
'source': 'amazon_questions',
'domain': 'nl',
'query': 'B00004SU18',
'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_questions",
domain: "nl",
query: "B00004SU18",
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_questions&domain=nl&query=B00004SU18&parse=true&access_token=12345abcde
<?php
$params = array(
'source' => 'amazon_questions',
'domain' => 'nl',
'query' => 'B00004SU18',
'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_questions",
"domain": "nl",
"query": "B00004SU18",
"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_questions",
domain = "nl",
query = "B00004SU18",
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_questions");
jsonObject.put("domain", "nl");
jsonObject.put("query", "B00004SU18");
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_questions",
"domain": "nl",
"query": "B00004SU18",
"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.
Request parameter values
Generic
Basic setup and customization options for scraping Amazon product Q&A pages.
- 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.
Structured data
Below you can find a structured output example for amazon_questions
.
Amazon_questions
structured output
{
"results": [
{
"content": {
"url": "https://www.amazon.com/ask/questions/asin/B07VGRJDFY/1?isAnswered=all",
"asin": "B07VGRJDFY",
"page": 1,
"page_type": "Question",
"questions": [
{
"title": "Every where sold out the first days will they restock them this special edition.",
"votes": 138,
"answers": [
{
"author": "KIWIBEARSHARE",
"content": "Since it’s been months I’ll post an update for everyone trying to get one after X-mas & New Years. So, they will be “restocking” and selling PRE-ORDERS. But they sell out in 20 min or less (at least it was that long for me). I was lucky and was awake at 3am (PST) for the pre-order sale and bought mine. I bought from SHIP & SOLD BY AMAZON, not a 3rd party, bc there’s been problems and reports of them switching out the battery for older versions. And paying $350+ ain’t worth it no matter how desperate you are. No this is NOT limited, it’s SPECIAL edition. Meaning there will be restocks in the future! If your lucky like me, my purchase was pre-ordered & expected to come next month but it got changed to this week? A welcomed surprise nonetheless. This means there’s a chance for everyone to get their pre-ordered switch earlier than expected! Good luck on getting your switch!",
"timestamp": "January 6, 2021"
}
]
},
{
"title": "Is this the Switch that has the better battery life?",
"votes": 119,
"answers": [
{
"author": "Alex P.",
"content": "Animal Crossing: New Horizons is set to be released on Switch on March 20, 2020. ... This is the newer model of Switch console - the HAC-001(-01) - meaning it will come with a battery life range of 4.5 to 9 hours. The original Switch model released in 2017 has an expected battery life of 2.5 to 6.5 hours.",
"timestamp": "August 5, 2021"
}
]
},
{
"title": "Can you hack this switch?",
"votes": 65,
"answers": [
{
"author": "Daniel Loeb",
"content": "maybe some day, but current known RCM payload exploit is patched on all HAC-001-01 model switches. \"Fusée Gelée\" is patched.",
"timestamp": "October 14, 2020"
}
]
},
{
"title": "Will there be a restock ?",
"votes": 60,
"answers": [
{
"author": "Amazon Customer",
"content": "If you can catch it right when Amazon restocks, they sell at MSRP ($299.99) for about a minute or two, then the price skyrockets.",
"timestamp": "April 1, 2020"
}
]
},
{
"title": "Why so expensive now ?",
"votes": 36,
"answers": [
{
"author": "Donald Louie",
"content": "Because no one has seemed to have ever heard of supply and demand. If there's 0 retail stock I'd rather have the option to get one for $450 than not have one at all. That being said, Google \"Stock Informer\" and sign up for all the browser and/or Discord alerts. I ordered mine at MSRP from Amazon.com by being a bit patient. Also- Craiglist people are worse than the internet markets- Used Switches with 2 games and 2 controllers for ~$750!!!",
"timestamp": "August 9, 2020"
}
]
},
{
"title": "Is it necessary to buy a memory card?",
"votes": 31,
"answers": [
{
"author": "Elisabeth",
"content": "Eventually yes. With the onboard memory you will be able to download the updates (Wolfenstein 2 had upwards of a 13 gig update..\rEven Spyro requires a download to play the games not included on cartridge .) If you stick to physical only games and are vigilant with managing your data- ie deleting update data etc when done playing you can theoretically avoid buying a memory card. However there are so many good eshop games and a 64 gig card is like $10 and that should suffice for an individual who mostly buys physical games but still wants to download every once in awhile.",
"timestamp": "October 7, 2019"
}
]
},
{
"title": "Does this come with a digital download code for the game?",
"votes": 28,
"answers": [
{
"author": "Alicia S. Ingram",
"content": "No, it does not come with a game.",
"timestamp": "February 28, 2020"
}
]
},
{
"title": "Does this switch have the upgraded battery life?",
"votes": 15,
"answers": [
{
"author": "Dce",
"content": "Sounds like this is version 2, so yes.",
"timestamp": "February 5, 2020"
}
]
},
{
"title": "Why so much? $299 In stores. I can wait if its not in stock.",
"votes": 13,
"answers": [
{
"author": "Rita",
"content": "$299 is the best price that i have seen this console at.",
"timestamp": "January 3, 2021"
}
]
},
{
"title": "Does the charger for The Switch V2 support both 110v-220v?",
"votes": 12,
"answers": [
{
"author": "RDH",
"content": "Yes it will, just remember it’s got a 110 plug",
"timestamp": "September 13, 2019"
}
]
}
],
"asin_in_url": "B07VGRJDFY",
"questions_total": 1000,
"parse_status_code": 12000
},
"created_at": "2022-05-09 06:56:31",
"updated_at": "2022-05-09 06:56:34",
"page": 1,
"url": "https://www.amazon.com/ask/questions/asin/B07VGRJDFY/1?isAnswered=all",
"job_id": "6929323198081155073",
"status_code": 200,
"parser_type": ""
}
]
}s
Data dictionary
HTML sample
JSON structure
The amazon_questions
data provides detailed information about questions asked and answers provided by users regarding a specific product listed 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.
In the following sections, parsed JSON code snippets are shortened where more than one item for the result type is available.
Questions
questions
contains multiple questions asked by users about a specific product, along with their respective details such as title and votes. Each question may also include a list of answers provided by users, including the author, content, and timestamp of each answer.
...
"questions": [
{
"title": "I bought these and a couple of the filters the water goes through the filter very fast. Is this a defect in the filter? Is the water still filtering",
"votes": 32,
"answers": [
{
"author": "bbbb3",
"content": "Came here to report the same problem/.../I am hesitant to reorder these filters via Amazon again.",
"timestamp": "October 9, 2022"
}
]
},
]
...
Last updated