Run catalog research, build price monitoring, and hydrate your own marketplace datasets. Returns ASIN, title, brand, price + before/used price, rating, reviews, availability, Prime/Choice/Best Seller flags, description, full image and video galleries, feature bullets, specifications, and variants.
This scraper job is asynchronous. You’ll receive a jobId, and can fetch results via polling or webhook delivery.
Request Cost
Each row of data returned consumes 10 credits from your balance.
Credits are deducted only for successful rows.
Example Request
cURL
Node.js
Python
PHP
Java
C#
Ruby
Rust
Go
curl --request POST \
--url 'https://api.hasdata.com/scrapers/amazon-products/jobs' \
--header 'Content-Type: application/json' \
--header 'x-api-key: <your-api-key>' \
--data '{"asins":["B0CRJ13WM7","https://www.amazon.com/dp/B0CMZ86H9D"],"domain":"www.amazon.com"}'
const axios = require ( 'axios' ). default ;
const options = {
method: 'POST' ,
url: 'https://api.hasdata.com/scrapers/amazon-products/jobs' ,
headers: { 'Content-Type' : 'application/json' , 'x-api-key' : '<your-api-key>' },
data: {
asins: [ 'B0CRJ13WM7' , 'https://www.amazon.com/dp/B0CMZ86H9D' ],
domain: 'www.amazon.com'
}
};
try {
const { data } = await axios . request ( options );
console . log ( data );
} catch ( error ) {
console . error ( error );
}
import requests
url = "https://api.hasdata.com/scrapers/amazon-products/jobs"
payload = {
"asins" : [ "B0CRJ13WM7" , "https://www.amazon.com/dp/B0CMZ86H9D" ],
"domain" : "www.amazon.com"
}
headers = {
"Content-Type" : "application/json" ,
"x-api-key" : "<your-api-key>"
}
response = requests.post(url, json = payload, headers = headers)
print (response.json())
<? php
$payload = [
"asins" => [ "B0CRJ13WM7" , "https://www.amazon.com/dp/B0CMZ86H9D" ],
"domain" => "www.amazon.com" ,
];
$curl = curl_init ();
curl_setopt_array ( $curl , [
CURLOPT_URL => "https://api.hasdata.com/scrapers/amazon-products/jobs" ,
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_CUSTOMREQUEST => "POST" ,
CURLOPT_POSTFIELDS => json_encode ( $payload ),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json" ,
"x-api-key: <your-api-key>" ,
],
]);
$response = curl_exec ( $curl );
curl_close ( $curl );
echo $response ;
OkHttpClient client = new OkHttpClient ();
MediaType mediaType = MediaType . parse ( "application/json" );
String json = """
{
"asins": [
"B0CRJ13WM7",
"https://www.amazon.com/dp/B0CMZ86H9D"
],
"domain": "www.amazon.com"
}
""" ;
RequestBody requestBody = RequestBody . create (json, mediaType);
Request request = new Request. Builder ()
. url ( "https://api.hasdata.com/scrapers/amazon-products/jobs" )
. post (requestBody)
. addHeader ( "Content-Type" , "application/json" )
. addHeader ( "x-api-key" , "<your-api-key>" )
. build ();
Response response = client . newCall (request). execute ();
using System . Net . Http ;
using System . Text ;
var client = new HttpClient ();
var json = """
{
"asins": [
"B0CRJ13WM7",
"https://www.amazon.com/dp/B0CMZ86H9D"
],
"domain": "www.amazon.com"
}
""" ;
var content = new StringContent ( json , Encoding . UTF8 , "application/json" );
var request = new HttpRequestMessage ( new HttpMethod ( "POST" ), "https://api.hasdata.com/scrapers/amazon-products/jobs" )
{
Content = content ,
};
request . Headers . Add ( "x-api-key" , "<your-api-key>" );
using var response = await client . SendAsync ( request );
response . EnsureSuccessStatusCode ();
var body = await response . Content . ReadAsStringAsync ();
Console . WriteLine ( body );
require 'net/http'
require 'uri'
require 'json'
uri = URI ( "https://api.hasdata.com/scrapers/amazon-products/jobs" )
payload = {
"asins" => [ "B0CRJ13WM7" , "https://www.amazon.com/dp/B0CMZ86H9D" ],
"domain" => "www.amazon.com" ,
}
http = Net :: HTTP . new (uri. host , uri. port )
http. use_ssl = true
request = Net :: HTTP :: Post . new (uri)
request[ "Content-Type" ] = 'application/json'
request[ "x-api-key" ] = '<your-api-key>'
request. body = payload. to_json
response = http. request (request)
puts response. read_body
use reqwest :: blocking :: Client ;
use serde_json :: json;
fn main () -> Result <(), Box < dyn std :: error :: Error >> {
let client = Client :: new ();
let payload = json! ({
"asins" : [
"B0CRJ13WM7" ,
"https://www.amazon.com/dp/B0CMZ86H9D"
],
"domain" : "www.amazon.com"
});
let res = client
. post ( "https://api.hasdata.com/scrapers/amazon-products/jobs" )
. header ( "Content-Type" , "application/json" )
. header ( "x-api-key" , "<your-api-key>" )
. json ( & payload )
. send () ?
. text () ? ;
println! ( "{}" , res );
Ok (())
}
package main
import (
" bytes "
" fmt "
" io "
" net/http "
)
func main () {
payload := [] byte ( `{
"asins": [
"B0CRJ13WM7",
"https://www.amazon.com/dp/B0CMZ86H9D"
],
"domain": "www.amazon.com"
}` )
req , _ := http . NewRequest ( "POST" , "https://api.hasdata.com/scrapers/amazon-products/jobs" , bytes . NewBuffer ( payload ))
req . Header . Add ( "Content-Type" , "application/json" )
req . Header . Add ( "x-api-key" , "<your-api-key>" )
res , _ := http . DefaultClient . Do ( req )
defer res . Body . Close ()
responseBody , _ := io . ReadAll ( res . Body )
fmt . Println ( string ( responseBody ))
}
Job Parameters
Enter ASINs or URLs of products you want to scrape. Each ASIN or URL must be on a different line.
Supported Enrichments
Request any of the fields below via the enrichments array in your job payload.
ID Title Description Cost per Request emailEmail Address Amazon seller email address 5 credits websiteWebsite URL Amazon seller website URL 5 credits phonePhone Number Amazon seller phone number 5 credits linkedinUrlLinkedIn Profile Amazon seller LinkedIn page URL 5 credits facebookUrlFacebook Profile Amazon seller Facebook page URL 5 credits instagramUrlInstagram Profile Amazon seller Instagram profile URL 5 credits xUrlX (Twitter) Profile Amazon seller X profile URL 5 credits
Getting Results
Webhooks Receive real-time updates when your scraper job starts, completes, or collects data.
Results API Use the Results API to fetch your data using the jobId, with support for polling and pagination.
Stopping a Job Cancel an active scraper job early if it’s no longer needed or you want to save credits.