logo

Product Pages (PDP)

Extract structured product data from Amazon product detail pages

The Product Detail Page (PDP) endpoint extracts comprehensive product information from any Amazon product page. It returns structured JSON data including the product title, pricing, ratings, images, best seller rankings, and technical specifications (all parsed and ready to use without any HTML processing on your end).


Endpoint

GET https://api.scrape.do/plugin/amazon/pdp

Input Parameters

ParameterTypeRequiredDescription
tokenstringYour Scrape.do API authentication token
asinstringAmazon Standard Identification Number (10-character product ID)
geocodestringCountry code (e.g., us, gb, de, jp)
zipcodestringPostal code formatted according to country requirements
superbooleanEnable residential/mobile proxies (default: false)
languagestringLanguage code in ISO 639-1 format (e.g., EN, DE, FR)

Response Parameters

FieldTypeDescription
asinstringProduct ASIN number
is_sponsoredbooleanWhether the product is a sponsored listing
brandstringBrand name
namestringFull product title
urlstringCanonical product URL
thumbnailstringPrimary product image URL
ratingnumberAverage star rating (0-5)
total_ratingsnumberTotal number of customer ratings
pricenumberCurrent selling price
list_pricenumberOriginal list price (if discounted)
currencystringCurrency code (e.g., USD, EUR, GBP)
currency_symbolstringCurrency symbol (e.g., $, , £)
is_primebooleanWhether Prime shipping is available
shipping_infoarrayShipping and delivery information strings
more_buying_choicesobjectAlternative seller options with links
imagesarrayAll product images with URLs and dimensions
best_seller_rankingsarrayCategory rankings with rank numbers
technical_detailsobjectKey-value pairs of product specifications
statusstringRequest status (success or error)
errorMessagestringError message if request failed

Example Usage

Step 1: Find the Target Product

Navigate to any Amazon product page. For this example, we'll use an adjustable laptop stand:

Amazon Product Page

Step 2: Get the ASIN

The ASIN (Amazon Standard Identification Number) is the unique 10-character identifier for each product. You can find it in:

  • The product URL: amazon.com/dp/B0C7BKZ883 (the ASIN is B0C7BKZ883)
  • The product details section on the page

Step 3: Send the API Request

curl --location --request GET 'https://api.scrape.do/plugin/amazon/pdp?token=<SDO-token>&asin=B0C7BKZ883&geocode=US&zipcode=10001&super=true'
import requests
import json

token = "<SDO-token>"
asin = "B0C7BKZ883"
geocode = "US"
zipcode = "10001"

url = f"https://api.scrape.do/plugin/amazon/pdp?token={token}&asin={asin}&geocode={geocode}&zipcode={zipcode}&super=true"

response = requests.request("GET", url)

print(json.dumps(response.json(), indent=2))
const axios = require('axios');

const token = "<SDO-token>";
const asin = "B0C7BKZ883";
const geocode = "US";
const zipcode = "10001";

const url = `https://api.scrape.do/plugin/amazon/pdp?token=${token}&asin=${asin}&geocode=${geocode}&zipcode=${zipcode}&super=true`;

axios.get(url)
  .then(response => {
    console.log(JSON.stringify(response.data, null, 2));
  })
  .catch(error => {
    console.error(error);
  });
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    token := "<SDO-token>"
    asin := "B0C7BKZ883"
    geocode := "US"
    zipcode := "10001"

    url := fmt.Sprintf(
        "https://api.scrape.do/plugin/amazon/pdp?token=%s&asin=%s&geocode=%s&zipcode=%s&super=true",
        token, asin, geocode, zipcode,
    )

    resp, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
require 'net/http'
require 'json'

token = "<SDO-token>"
asin = "B0C7BKZ883"
geocode = "US"
zipcode = "10001"

url = URI("https://api.scrape.do/plugin/amazon/pdp?token=#{token}&asin=#{asin}&geocode=#{geocode}&zipcode=#{zipcode}&super=true")

response = Net::HTTP.get(url)

puts JSON.pretty_generate(JSON.parse(response))
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class AmazonPDP {
    public static void main(String[] args) throws Exception {
        String token = "<SDO-token>";
        String asin = "B0C7BKZ883";
        String geocode = "US";
        String zipcode = "10001";

        String url = String.format(
            "https://api.scrape.do/plugin/amazon/pdp?token=%s&asin=%s&geocode=%s&zipcode=%s&super=true",
            token, asin, geocode, zipcode
        );

        HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
        conn.setRequestMethod("GET");

        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        StringBuilder response = new StringBuilder();
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }
        reader.close();

        System.out.println(response.toString());
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        string token = "<SDO-token>";
        string asin = "B0C7BKZ883";
        string geocode = "US";
        string zipcode = "10001";

        string url = $"https://api.scrape.do/plugin/amazon/pdp?token={token}&asin={asin}&geocode={geocode}&zipcode={zipcode}&super=true";

        using HttpClient client = new HttpClient();
        string response = await client.GetStringAsync(url);

        Console.WriteLine(response);
    }
}
<?php
$token = "<SDO-token>";
$asin = "B0C7BKZ883";
$geocode = "US";
$zipcode = "10001";

$url = "https://api.scrape.do/plugin/amazon/pdp?token={$token}&asin={$asin}&geocode={$geocode}&zipcode={$zipcode}&super=true";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo json_encode(json_decode($response), JSON_PRETTY_PRINT);
?>

Step 4: Receive Structured Data

The API returns a complete JSON object with all product information:

{
  "asin": "B0C7BKZ883",
  "is_sponsored": false,
  "brand": "Gogoonike",
  "name": "Adjustable Laptop Stand for Desk, Metal Foldable Laptop Riser Holder...",
  "url": "https://www.amazon.com/dp/B0C7BKZ883",
  "thumbnail": "https://m.media-amazon.com/images/I/71Jz2L1pV6L._AC_SX679_.jpg",
  "rating": 4.6,
  "total_ratings": 2712,
  "price": 14.99,
  "list_price": 39.99,
  "currency": "USD",
  "currency_symbol": "$",
  "is_prime": true,
  "shipping_info": [
    "FREE delivery Monday, December 16",
    "Or fastest delivery Friday, December 13"
  ],
  "more_buying_choices": {
    "heading": "More Buying Choices",
    "offer_text": "New from $14.99",
    "offer_link": "https://www.amazon.com/gp/offer-listing/B0C7BKZ883"
  },
  "images": [
    {
      "url": "https://m.media-amazon.com/images/I/71Jz2L1pV6L._AC_SX679_.jpg",
      "width": 679,
      "height": 679
    }
  ],
  "best_seller_rankings": [
    { "category": "Office Products", "rank": 249 },
    { "category": "Laptop Stands", "rank": 2 }
  ],
  "technical_details": {
    "Brand": "Gogoonike",
    "Compatible Devices": "Laptop",
    "Material": "Aluminum",
    "Item Weight": "1.1 Pounds"
  },
  "status": "success",
  "errorMessage": null
}

Images are automatically converted to high-resolution URLs. The response is limited to a maximum of 8MB.