Raw HTML with Geo-Targeting
Get raw HTML from any Amazon page with ZIP code geo-targeting
The Raw HTML endpoint retrieves the complete HTML source from any Amazon URL while applying ZIP code-based geo-targeting. Unlike the structured endpoints (PDP, Offers, Search), this returns unprocessed HTML that you can parse yourself. This is ideal for scraping pages not covered by other endpoints, custom data extraction needs, or when you need the complete page structure.
Endpoint
GET https://api.scrape.do/plugin/amazon/Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | ✅ | Your Scrape.do API authentication token |
url | string | ✅ | Full Amazon URL to scrape (must be URL-encoded) |
geocode | string | ✅ | Country code (e.g., us, gb, de, jp) |
zipcode | string | ✅ | Postal code formatted according to country requirements |
output | string | ✅ | Output format (must be html) |
super | boolean | ❌ | Enable residential/mobile proxies (default: false) |
language | string | ❌ | Language code in ISO 639-1 format (e.g., EN, DE) |
timeout | integer | ❌ | Request timeout in milliseconds |
Example Usage
Step 1: Select a Target URL
Choose any Amazon page you want to scrape. This can be:
- Product pages:
https://www.amazon.com/dp/B0C7BKZ883 - Search results:
https://www.amazon.com/s?k=laptop+stand - Category pages:
https://www.amazon.com/b?node=172282 - Seller storefronts:
https://www.amazon.com/stores/page/... - Best seller lists:
https://www.amazon.com/Best-Sellers/zgbs/...
For this example, we'll scrape a product page to get its complete HTML source:

Copy the full URL and URL-encode it before passing it to the API.
Step 2: Send the API Request
curl --location --request GET 'https://api.scrape.do/plugin/amazon/?token=<SDO-token>&url=https://www.amazon.com/dp/B0C7BKZ883&geocode=US&zipcode=10001&output=html'import requests
token = "<SDO-token>"
url = "https://www.amazon.com/dp/B0C7BKZ883"
geocode = "US"
zipcode = "10001"
api_url = f"https://api.scrape.do/plugin/amazon/?token={token}&url={url}&geocode={geocode}&zipcode={zipcode}&output=html"
response = requests.request("GET", api_url)
print(response.text)const axios = require('axios');
const token = "<SDO-token>";
const targetUrl = encodeURIComponent("https://www.amazon.com/dp/B0C7BKZ883");
const geocode = "US";
const zipcode = "10001";
const url = `https://api.scrape.do/plugin/amazon/?token=${token}&url=${targetUrl}&geocode=${geocode}&zipcode=${zipcode}&output=html`;
axios.get(url)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
func main() {
token := "<SDO-token>"
targetUrl := url.QueryEscape("https://www.amazon.com/dp/B0C7BKZ883")
geocode := "US"
zipcode := "10001"
apiUrl := fmt.Sprintf(
"https://api.scrape.do/plugin/amazon/?token=%s&url=%s&geocode=%s&zipcode=%s&output=html",
token, targetUrl, geocode, zipcode,
)
resp, err := http.Get(apiUrl)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}require 'net/http'
require 'uri'
token = "<SDO-token>"
target_url = URI.encode_www_form_component("https://www.amazon.com/dp/B0C7BKZ883")
geocode = "US"
zipcode = "10001"
url = URI("https://api.scrape.do/plugin/amazon/?token=#{token}&url=#{target_url}&geocode=#{geocode}&zipcode=#{zipcode}&output=html")
response = Net::HTTP.get(url)
puts responseimport java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class AmazonRawHTML {
public static void main(String[] args) throws Exception {
String token = "<SDO-token>";
String targetUrl = URLEncoder.encode("https://www.amazon.com/dp/B0C7BKZ883", "UTF-8");
String geocode = "US";
String zipcode = "10001";
String url = String.format(
"https://api.scrape.do/plugin/amazon/?token=%s&url=%s&geocode=%s&zipcode=%s&output=html",
token, targetUrl, 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;
using System.Web;
class Program
{
static async Task Main()
{
string token = "<SDO-token>";
string targetUrl = HttpUtility.UrlEncode("https://www.amazon.com/dp/B0C7BKZ883");
string geocode = "US";
string zipcode = "10001";
string url = $"https://api.scrape.do/plugin/amazon/?token={token}&url={targetUrl}&geocode={geocode}&zipcode={zipcode}&output=html";
using HttpClient client = new HttpClient();
string response = await client.GetStringAsync(url);
Console.WriteLine(response);
}
}<?php
$token = "<SDO-token>";
$targetUrl = urlencode("https://www.amazon.com/dp/B0C7BKZ883");
$geocode = "US";
$zipcode = "10001";
$url = "https://api.scrape.do/plugin/amazon/?token={$token}&url={$targetUrl}&geocode={$geocode}&zipcode={$zipcode}&output=html";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>Step 3: Receive Raw HTML
The API returns the complete HTML source of the page with geo-targeting applied:
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<title>Adjustable Laptop Stand for Desk, Metal Foldable...</title>
<!-- ... meta tags, scripts, stylesheets ... -->
</head>
<body>
<div id="dp-container">
<div id="ppd">
<h1 id="title" class="a-size-large a-spacing-none">
<span id="productTitle" class="a-size-large product-title-word-break">
Adjustable Laptop Stand for Desk, Metal Foldable Laptop Riser Holder,
Portable Desktop Book Stand, Ergonomic Computer Stand...
</span>
</h1>
<div id="averageCustomerReviews">
<span class="a-icon-alt">4.6 out of 5 stars</span>
</div>
<span id="acrCustomerReviewText" class="a-size-base">
2,712 ratings
</span>
<div id="corePrice_feature_div">
<span class="a-price-whole">14</span>
<span class="a-price-fraction">99</span>
</div>
<div id="deliveryBlockMessage">
<span>FREE delivery Monday, December 16</span>
<span>Delivering to New York 10001</span>
</div>
<!-- ... complete page HTML ... -->
</div>
</div>
</body>
</html>The HTML reflects the location-specific content for your specified ZIP code. You'll see local pricing, shipping estimates, and stock availability as if browsing from that location.
When to Use Raw HTML
Use this endpoint when:
- Custom parsing needs: You need specific data not covered by structured endpoints
- Page types not supported: Seller pages, best seller lists, deals pages, etc.
- Complete page structure: You need access to JavaScript data, meta tags, or hidden fields
- A/B testing detection: Comparing full page content across regions
- Archive/backup: Storing complete page snapshots
For product details, seller offers, and search results, the structured endpoints (PDP, Offers, Search) are more efficient as they return parsed JSON data.
The url parameter must contain a valid Amazon domain and must be URL-encoded. Response is limited to a maximum of 4MB.

