Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Short answer: For an authorized Amazon seller application, use the Selling Partner API (SP-API) Catalog Items API. Send an ASIN plus a marketplace ID, choose the data sets you need with includedData, and parse the JSON response. This is a permissioned seller API—not an unrestricted storefront scraper. Use the Listings API for your own SKU listings and the separate Product Pricing API for prices and offers.

What “Amazon scraper API” can mean

Developers use “Amazon scraper API” to describe two different approaches:

  • Official, permissioned access: SP-API for sellers, vendors and their authorized applications.
  • Third-party extraction: a service that visits public pages and returns scraped records.

This guide covers the official route documented by Amazon. SP-API access is tied to a selling partner, application authorization and API roles. It should not be presented as general-purpose access to every Amazon storefront page.

Pick the API that matches the job

Need Use What it does
“How do I get product details by ASIN?” Catalog Items API, getCatalogItem Returns catalog attributes and related product data as JSON.
Manage your own seller SKUs Listings API Create or update offers and listing data; product-type schemas describe required fields.
“Can I get Amazon prices through an API?” Product Pricing API v2022-05-01 Seller-only price and offer workflows; Pricing role is required.

Access requirements and boundaries

Amazon states: “You must have a Professional selling account and be the primary account user to create an SP-API developer profile.” The seller page currently lists Professional at $39.99 per month plus selling fees; that commercial detail can change, so check Amazon’s current seller plan before purchasing.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Public applications obtain partner permission through OAuth 2.0 with Login with Amazon (LWA). A private application can be self-authorized in the developer console. Roles determine which resources and operations are available; request and qualify for the role required by your workflow. A valid LWA access token alone does not grant every SP-API operation.

How getCatalogItem turns an ASIN into JSON

The operation requires an ASIN in the path and one or more marketplaceIds in the query string. If you omit includedData, the documented default is summaries. Request only the datasets your application needs:

  • attributes — structured item attributes keyed by attribute name and conforming to product-type definitions.
  • classifications — browse-node classifications.
  • dimensions — catalog dimensions.
  • identifiers — identifiers such as UPC and EAN.
  • images — catalog images.
  • productTypes — associated product types.
  • salesRanks — sales-rank information when available.
  • summaries — summary information.
  • relationships — variation and other relationships.

Amazon describes attributes as “A JSON object containing structured item attribute data that is keyed by attribute name.” The response is still conditional: an item may not contain every group or every field. Code defensively for missing arrays, locale-specific values and products that have no applicable rank, image or relationship.

Request shape

GET https://sellingpartnerapi-na.amazon.com/catalog/2022-04-01/items/{ASIN}?marketplaceIds=ATVPDKIKX0DER&includedData=summaries,attributes,images,identifiers,relationships

Replace the regional endpoint and marketplace ID with the values for your selling account. SP-API requests also need the required AWS Signature Version 4 headers and an LWA access token; the exact signing implementation is normally handled by Amazon’s SDKs or your SP-API client library.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Python example: request and normalize a catalog record

The following example assumes your client has already produced a signed request. It shows the JSON shape handling rather than pretending that an unsigned HTTP call is sufficient.

import os
import requests

endpoint = os.environ.get(
    "SP_API_ENDPOINT", "https://sellingpartnerapi-na.amazon.com"
)
asin = "B000123456"
marketplace = "ATVPDKIKX0DER"
token = os.environ["LWA_ACCESS_TOKEN"]

url = f"{endpoint}/catalog/2022-04-01/items/{asin}"
params = {
    "marketplaceIds": marketplace,
    "includedData": "summaries,attributes,images,identifiers,relationships"
}
headers = {
    "x-amz-access-token": token,
    "accept": "application/json"
    # Add the AWS SigV4 Authorization, x-amz-date and host headers here.
}
response = requests.get(url, params=params, headers=headers, timeout=30)
response.raise_for_status()
item = response.json()

result = {
    "asin": item.get("asin", asin),
    "summaries": item.get("summaries", []),
    "attributes": item.get("attributes", {}),
    "images": item.get("images", []),
    "identifiers": item.get("identifiers", []),
    "relationships": item.get("relationships", [])
}
print(result)

For production, use an SP-API SDK or a well-tested SigV4 signer. Store credentials in a secret manager, not source control; rotate LWA and AWS credentials according to your security policy.

Equivalent cURL and Node.js patterns

cURL

curl -G "https://sellingpartnerapi-na.amazon.com/catalog/2022-04-01/items/B000123456" 
  -H "x-amz-access-token: $LWA_ACCESS_TOKEN" 
  -H "accept: application/json" 
  --data-urlencode "marketplaceIds=ATVPDKIKX0DER" 
  --data-urlencode "includedData=summaries,attributes,images,identifiers"

This command is illustrative: add a valid AWS SigV4 signature before sending it to Amazon.

Node.js

const asin = 'B000123456';
const qs = new URLSearchParams({
  marketplaceIds: 'ATVPDKIKX0DER',
  includedData: 'summaries,attributes,images,identifiers'
});
const url = `https://sellingpartnerapi-na.amazon.com/catalog/2022-04-01/items/${asin}?${qs}`;
const res = await fetch(url, {
  headers: {
    'x-amz-access-token': process.env.LWA_ACCESS_TOKEN,
    'accept': 'application/json'
    // Include AWS SigV4 Authorization and x-amz-date headers.
  }
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const catalogItem = await res.json();
console.log(JSON.stringify(catalogItem, null, 2));

Marketplace IDs, locales and missing fields

An ASIN is not globally complete by itself. Always send the marketplace in which you need the record. Titles, attributes, images, identifiers and classifications can vary by marketplace and locale. Treat each dataset as optional:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Use null-safe access when a product has no image, rank or relationship.
  • Do not assume one title or attribute value exists for every language.
  • Keep the ASIN, marketplace ID and retrieval timestamp with your normalized record.
  • Preserve the raw response when you need to audit a transformation.

Catalog discovery versus listing management

Catalog discovery tells you what Amazon’s catalog says about an item. It does not create your offer. For seller workflows, Product Type Definitions can provide the JSON schema requirements for a product type, while the Listings API creates or updates a seller SKU. Build this as a separate pipeline: discover the ASIN, obtain the product-type schema, validate listing attributes, then submit the listing operation.

Prices and offers: use the Pricing API

The Product Pricing API is separate from Catalog Items. The current documented version is v2022-05-01, marked Sellers only, and its listed operations require the Pricing role. Use it for price and offer retrieval and related notifications; do not substitute catalog summaries for live offer data. Eligibility, marketplace coverage and response fields depend on the operation and your account permissions.

Throughput, batching and cost planning

The getCatalogItem reference displays a default usage plan of 2 requests per second with a burst of 2. This is the documented default for that operation, not a universal account-wide quota. Amazon can assign higher throughput to some selling partners, and the current usage plan should be checked before capacity planning.

Implement exponential backoff for HTTP 429 responses, respect retry headers when returned, and queue work per marketplace. SP-API documentation describes batch operations of up to 20 similar requests in one call and bulk patterns such as feeds and reports, but not every catalog operation has a batch or bulk equivalent. Confirm support for the exact operation you intend to call.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

There is no separate per-call “scraping” price stated for Catalog Items in the cited documentation. Your costs can instead include the required seller account, development and infrastructure expenses, and any commercial terms attached to your application. Do not treat the Professional account fee as an API usage price.

Troubleshooting checklist

401 or 403 responses

Check that the LWA token is current, the request is signed for the correct region and host, the application is authorized for the selling partner, and the required role is approved. A token issued for one application cannot be assumed to work for another.

400 invalid marketplace or parameter

Verify that marketplaceIds is present, correctly spelled and appropriate for the endpoint region. Confirm that includedData contains supported values and that the ASIN is in the path, not the query string.

429 throttling

Reduce concurrency, honor the operation’s usage plan, retry with backoff and monitor response headers. Do not hard-code 2 requests per second as an entitlement for every account.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Empty or incomplete JSON

The requested data may not apply to that item or marketplace. Request the relevant dataset explicitly, inspect the raw response, and handle absent fields rather than filling them with guessed values.

Price does not match the catalog result

Catalog data and offer data come from different APIs. Use the seller-only Product Pricing API with the Pricing role for price and offer workflows.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your real task is capturing a rendered Amazon page for documentation, visual QA or an agent—not extracting authorized catalog records—ScreenshotNeo can return a screenshot or PDF with one request. It accepts cookie and consent banners before capture and removes more than 60 known consent platforms, newsletter popups and chat widgets; each step can be disabled. Bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server exposes take_screenshot, get_page_info and capture_pdf to Claude, Cursor and other MCP clients.

Every plan includes the same features: full-page and element capture, device and retina settings, custom CSS/JavaScript, waits, request blocking, headers, cookies, user agents, geolocation, caching, signed links, asynchronous webhooks and bulk capture.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for parameters. Python and Node.js equivalents are:

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

The Free plan includes 1,000 screenshots each month with no card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.

Frequently Asked Questions

Is SP-API a public Amazon storefront scraper?

No. Amazon documents SP-API for authorized selling-partner business applications, with OAuth authorization and role-based access.

Do I need an ASIN and marketplace ID?

Yes. Catalog lookups require both; the ASIN identifies the item and the marketplace ID identifies where to retrieve the catalog record.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can Catalog Items create my offer?

No. Use Product Type Definitions and the Listings API for seller SKU creation or maintenance.

Is Product Advertising API the same as SP-API?

No. Product Advertising API has separate eligibility and quota rules; its documented initial allowance is up to one request per second and 8,640 requests per day for the first 30-day period, subject to program terms and later adjustment.

The Bottom Line

For authorized seller applications, SP-API Catalog Items is the correct Amazon product-data API: provide an ASIN and marketplace ID, request only the datasets you need, and design for role checks, missing fields and throttling. Use Listings for your SKUs and Product Pricing for offers.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.