E-COMMERCE DATA

Amazon Scraping API with AI Extraction

Build an Amazon scraper without the upkeep: send an Amazon URL and the fields you want, and get back JSON shaped for your app. No fixed parser schema, no selectors that break when Amazon changes its layout, no proxy management.

2,000 free API credits · No credit card required

Amazon is built to stop scrapers

Aggressive anti-bot systems, CAPTCHA walls, IP rate limiting, and a DOM that changes without notice. DIY scrapers spend more time on infrastructure than on data — and fixed-schema parser APIs break silently when the layout shifts.

WebScraping.AI fetches the page through rotating residential proxies, renders it when needed, and extracts the fields you define with AI — so a layout change is Amazon's problem, not yours.

What's handled for you

  • Rotating residential proxies for Amazon's anti-bot systems, with 13-country geotargeting for local marketplaces
  • Headless Chromium rendering when a page needs JavaScript
  • AI field extraction — your field names, your schema, returned as JSON
  • Free failed requests — blocked attempts cost nothing

One endpoint, every Amazon page type

Dedicated-parser APIs sell a separate endpoint per page type. Here it's the same call — only your field list changes.

Product pages

Title, price, Buy Box seller, rating, review count, availability, images, variations, bullet points, BSR — any field visible on the page.

Search results

Ranked listings for a keyword: ASINs, titles, prices, ratings, sponsored flags — for rank tracking and market research.

Reviews

Review text, ratings, and dates for sentiment analysis and product research.

Offers & Buy Box

Other-seller offers, prices, and fulfillment (FBA/FBM) for Buy Box and MAP monitoring.

Best sellers & categories

Category rankings and movers for demand analysis and product selection.

Beyond Amazon

The same API scrapes Walmart, eBay, Shopify stores — multi-marketplace monitoring without a per-site parser subscription.

Define your schema in plain language

One request: the product URL plus the fields you want.

curl -G "https://api.webscraping.ai/ai/fields" \
  --data-urlencode "api_key=YOUR_API_KEY" \
  --data-urlencode "url=https://www.amazon.com/dp/B07ZPKBL9V" \
  --data-urlencode "fields[title]=Product title" \
  --data-urlencode "fields[price]=Current price with currency" \
  --data-urlencode "fields[rating]=Average star rating" \
  --data-urlencode "fields[reviews_count]=Number of ratings" \
  --data-urlencode "fields[availability]=In stock or out of stock" \
  --data-urlencode "fields[buy_box_seller]=Seller name in the Buy Box"
# Response:
# {
#   "title": "Razer Basilisk V2 Wired Gaming Mouse",
#   "price": "$34.99",
#   "rating": "4.6",
#   "reviews_count": "12,437",
#   "availability": "In Stock",
#   "buy_box_seller": "Amazon.com"
# }
# pip install webscraping_ai
# https://pypi.org/project/webscraping-ai/
from webscraping_ai import Client

client = Client(api_key="YOUR_API_KEY")
result = client.fields(
    "https://www.amazon.com/dp/B07ZPKBL9V",
    fields={
        "title": "Product title",
        "price": "Current price with currency",
        "rating": "Average star rating",
        "reviews_count": "Number of ratings",
        "availability": "In stock or out of stock",
        "buy_box_seller": "Seller name in the Buy Box",
    },
)
print(result)
# Response:
# {
#   "title": "Razer Basilisk V2 Wired Gaming Mouse",
#   "price": "$34.99",
#   "rating": "4.6",
#   "reviews_count": "12,437",
#   "availability": "In Stock",
#   "buy_box_seller": "Amazon.com"
# }
// npm install webscraping-ai
// https://www.npmjs.com/package/webscraping-ai
import { WebScrapingAI } from 'webscraping-ai';

const client = new WebScrapingAI({ apiKey: 'YOUR_API_KEY' });
const result = await client.fields({
  url: 'https://www.amazon.com/dp/B07ZPKBL9V',
  fields: {
    title: 'Product title',
    price: 'Current price with currency',
    rating: 'Average star rating',
    reviews_count: 'Number of ratings',
    availability: 'In stock or out of stock',
    buy_box_seller: 'Seller name in the Buy Box',
  },
});
console.log(result);
// Response:
// {
//   "title": "Razer Basilisk V2 Wired Gaming Mouse",
//   "price": "$34.99",
//   "rating": "4.6",
//   "reviews_count": "12,437",
//   "availability": "In Stock",
//   "buy_box_seller": "Amazon.com"
// }
<?php
// composer require webscraping-ai/webscraping-ai-php
// https://packagist.org/packages/webscraping-ai/webscraping-ai-php
require 'vendor/autoload.php';

use WebScrapingAI\Client;

$client = new Client('YOUR_API_KEY');
$result = $client->fields('https://www.amazon.com/dp/B07ZPKBL9V', [
    'title'          => 'Product title',
    'price'          => 'Current price with currency',
    'rating'         => 'Average star rating',
    'reviews_count'  => 'Number of ratings',
    'availability'   => 'In stock or out of stock',
    'buy_box_seller' => 'Seller name in the Buy Box',
]);
print_r($result);
// Response:
// {
//   "title": "Razer Basilisk V2 Wired Gaming Mouse",
//   "price": "$34.99",
//   "rating": "4.6",
//   "reviews_count": "12,437",
//   "availability": "In Stock",
//   "buy_box_seller": "Amazon.com"
// }
# gem install webscraping_ai
# https://rubygems.org/gems/webscraping_ai
require 'webscraping_ai'

client = WebScrapingAI::Client.new(api_key: 'YOUR_API_KEY')
result = client.fields(
  'https://www.amazon.com/dp/B07ZPKBL9V',
  fields: {
    title:           'Product title',
    price:           'Current price with currency',
    rating:          'Average star rating',
    reviews_count:   'Number of ratings',
    availability:    'In stock or out of stock',
    buy_box_seller:  'Seller name in the Buy Box',
  }
)
puts result.inspect
# Response:
# {
#   "title": "Razer Basilisk V2 Wired Gaming Mouse",
#   "price": "$34.99",
#   "rating": "4.6",
#   "reviews_count": "12,437",
#   "availability": "In Stock",
#   "buy_box_seller": "Amazon.com"
# }
// go get github.com/webscraping-ai/webscraping-ai-go/v4
// https://pkg.go.dev/github.com/webscraping-ai/webscraping-ai-go/v4
package main

import (
    "context"
    "fmt"

    webscrapingai "github.com/webscraping-ai/webscraping-ai-go/v4"
)

func main() {
    client, _ := webscrapingai.NewClient(&webscrapingai.Config{APIKey: "YOUR_API_KEY"})
    result, _ := client.Fields(context.Background(), &webscrapingai.FieldsOptions{
        URL: "https://www.amazon.com/dp/B07ZPKBL9V",
        Fields: map[string]string{
            "title": "Product title",
            "price": "Current price with currency",
            "rating": "Average star rating",
            "reviews_count": "Number of ratings",
            "availability": "In stock or out of stock",
            "buy_box_seller": "Seller name in the Buy Box",
        },
    })
    fmt.Println(result.Result)
}
// Response:
// {
//   "title": "Razer Basilisk V2 Wired Gaming Mouse",
//   "price": "$34.99",
//   "rating": "4.6",
//   "reviews_count": "12,437",
//   "availability": "In Stock",
//   "buy_box_seller": "Amazon.com"
// }
// Maven: ai.webscraping:webscraping-ai:4.0.0
// https://central.sonatype.com/artifact/ai.webscraping/webscraping-ai
import ai.webscraping.Client;
import ai.webscraping.Config;
import ai.webscraping.option.FieldsOptions;
import ai.webscraping.result.FieldsResult;

Client client = new Client(Config.builder().apiKey("YOUR_API_KEY").build());
FieldsResult result = client.fields(FieldsOptions.builder()
    .url("https://www.amazon.com/dp/B07ZPKBL9V")
    .addField("title", "Product title")
    .addField("price", "Current price with currency")
    .addField("rating", "Average star rating")
    .addField("reviews_count", "Number of ratings")
    .addField("availability", "In stock or out of stock")
    .addField("buy_box_seller", "Seller name in the Buy Box")
    .build());
System.out.println(result.getResult());
// Response:
// {
//   "title": "Razer Basilisk V2 Wired Gaming Mouse",
//   "price": "$34.99",
//   "rating": "4.6",
//   "reviews_count": "12,437",
//   "availability": "In Stock",
//   "buy_box_seller": "Amazon.com"
// }
// dotnet add package WebScrapingAI
// https://www.nuget.org/packages/WebScrapingAI
using WebScrapingAI;

var client = new WebScrapingAIClient(new WebScrapingAIClientOptions { ApiKey = "YOUR_API_KEY" });
var result = await client.FieldsAsync(new FieldsRequest {
    Url = "https://www.amazon.com/dp/B07ZPKBL9V",
    Fields = new Dictionary<string, string> {
        ["title"] = "Product title",
        ["price"] = "Current price with currency",
        ["rating"] = "Average star rating",
        ["reviews_count"] = "Number of ratings",
        ["availability"] = "In stock or out of stock",
        ["buy_box_seller"] = "Seller name in the Buy Box",
    },
});
Console.WriteLine(result.Result);
// Response:
// {
//   "title": "Razer Basilisk V2 Wired Gaming Mouse",
//   "price": "$34.99",
//   "rating": "4.6",
//   "reviews_count": "12,437",
//   "availability": "In Stock",
//   "buy_box_seller": "Amazon.com"
// }

No parser to break

Fixed Amazon parsers return their schema — often a hundred-plus fields you didn't ask for — and when Amazon changes its DOM, you wait for the vendor's parser update. Some even advertise "self-healing parsers" because breakage is that routine.

AI reads the rendered page on every request — layout changes don't require a parser release.
You get exactly the fields you named, shaped for your database, not a vendor's schema.
Need raw material instead? /html and /text return the full rendered page for your own pipeline.

Data points teams extract

Price Buy Box seller ASIN Rating Review count Availability FBA / FBM Best Sellers Rank Coupons & deals Variations Images Bullet points Prime eligibility Search position

Typical use cases

Amazon price scraping & MAP monitoring · Buy Box tracking · market & competitor research · review analysis · catalog enrichment · demand estimation

Transparent pricing, no Amazon surcharge

Many scraping APIs bill Amazon requests at a 5× multiplier or a premium per-record rate. Here Amazon is priced like any other site — by the request configuration you choose.

$29/mo

250,000 credits

$99/mo

1,000,000 credits

$249/mo

3,000,000 credits


Example: an Amazon product page via rotating residential proxies costs 10 credits, +5 with AI field extraction. Failed and blocked requests are always free. Full credit table.

Frequently asked questions

Is it legal to scrape Amazon?

Scraping publicly available product data (prices, titles, ratings) is generally considered lawful in the US, in line with cases like hiQ v. LinkedIn — while Amazon's terms of service prohibit automated access as a contractual matter. Scrape only public pages, don't collect personal data, and consult a lawyer for your specific situation. WebScraping.AI is not affiliated with or endorsed by Amazon.

Do I need a dedicated Amazon parser?

No. Instead of a fixed parser schema, you describe the fields you want in plain language and the AI extracts them from the rendered page. That means no waiting for parser updates when Amazon changes its layout, and no paying for a hundred fields you don't use.

Which Amazon marketplaces are supported?

Any public Amazon site — amazon.com, .co.uk, .de, .fr, .it, .es, .ca, .co.jp, .in and others. Use the country parameter to route through a local proxy (13 countries available) so you see local prices and availability.

How do you get past Amazon's anti-bot systems and CAPTCHAs?

Requests route through rotating residential proxies (10 credits, 25 with JS rendering) with browser fingerprinting handled by the API; stealth proxies (50 credits) are available for the hardest cases. If a request still fails, it isn't billed.

Does scraping Amazon require JavaScript rendering?

Product and search pages are mostly server-rendered, so many scrapes work without JS at lower credit cost. For content that loads dynamically (some offers, reviews widgets), enable js=true and use wait_for to wait for the element you need.

Can I monitor thousands of ASINs daily?

Yes — that's the standard price-monitoring setup: iterate your ASIN list against /ai/fields (or /html for your own parser), respecting your plan's concurrency. The $99/mo plan's 1M credits cover roughly 66,000 residential-proxy AI extractions per month; scale up from there.

Related

Start scraping Amazon in minutes

Get started with 2,000 free API credits. No credit card required.

Icon