Product, brand and category data
Returns the core listing record: title, brand, category, images and the specification table. Use it to build or audit a catalogue, group results by brand and map Amazon listings to your own taxonomy.
Send an Amazon product URL or a search query to one REST endpoint and get structured JSON back — title, brand, price, rating, availability, seller and more. No proxies to rotate, no headless browsers to run and no HTML to parse. Use the data to feed pricing models, catalogue tools, dashboards and market research.
# Request (replace the key and URL with your own)
POST https://api.webfusiondata.com/v1/product
Authorization: Bearer $WFD_API_KEY
{ "url": "https://www.amazon.com/dp/EXAMPLE123",
"country": "US" }
# Response (sample data, not a live listing)
{
"asin": "EXAMPLE123",
"marketplace": "US",
"title": "Example Product",
"price": { "amount": 49.99, "currency": "USD" },
"availability": "Available",
"rating": 4.5,
"product_url": "https://www.amazon.com/"
}
Sample values for illustration only. Exact field names and nesting for your Amazon scope are confirmed in the API reference issued with your key.
An Amazon Product Data API lets your software request information about Amazon listings and receive it as structured data instead of a web page. You send a product URL or a search query plus a marketplace, and get JSON with named fields such as title, brand, price, rating, availability and seller. Every response follows the same schema, so it can go straight into a database, dashboard or pricing model.
Behind that request sits a collection process: our infrastructure loads the listing, handles proxies and CAPTCHAs, renders JavaScript, extracts fields with site-specific parsers and validates them before anything is returned. Larger jobs run asynchronously, with results sent to a webhook or storage bucket. You work with the API; we operate the collection layer.
Teams use the data for pricing analysis, competitor research, catalogue management and market intelligence. Our price monitoring and price intelligence services build on this kind of data.
Six steps from choosing a marketplace to using the data in your own systems.
Decide which Amazon marketplace you need and what you are looking up: a product page, a URL built from an ASIN, or a keyword search.
List the fields you need now, so the scope can be confirmed against what the marketplace exposes.
Build a JSON body with url (or site and query) and an optional country.
Pick the endpoint: /v1/product for one listing, /v1/search for result lists, /v1/monitor for
scheduled tracking, /v1/bulk for batches.
Pass your API key as a bearer token in the Authorization header.
Start in the sandbox, which returns sample responses, so you can test your integration before spending live request credits.
Our infrastructure fetches the listing, renders it, extracts the fields and validates them. Single lookups return synchronously.
Bulk jobs return a job ID you can check with /v1/status/:job_id or receive
through a webhook.
JSON is the default response format. Bulk export jobs can also be delivered as CSV or XLSX.
Each record carries a capture timestamp (crawled_at) so you always know
how fresh the values are.
Write results to a database, load them into a BI dashboard, trigger alerts from webhooks or schedule recurring checks with monitors.
See Integration and Data Delivery for a worked example.
What the Amazon Product Data API does in practice, and how much of it is already documented versus settled per project.
Returns the core listing record: title, brand, category, images and the specification table. Use it to build or audit a catalogue, group results by brand and map Amazon listings to your own taxonomy.
The ASIN appears in every Amazon product URL (/dp/ASIN), so a list of
ASINs can be turned into product URLs and submitted. The identifier is returned in the response
for matching.
Captures displayed price, currency and discount, and can register a listing for scheduled checks with a webhook when a value changes. Useful for repricing inputs and promotion tracking.
Returns the aggregate rating and review count for each listing, so you can compare quality signals across competing products and track movement over time.
Returns the seller and fulfilment method behind a listing where displayed. Helps identify who is selling a product and how it is fulfilled.
Returns the displayed stock status and, where exposed, a quantity signal. Supports out-of-stock alerts and availability reporting.
A country parameter localises the request, so prices, currency and
availability reflect the marketplace you target rather than a single default.
Fields are type-checked and normalised into a consistent schema, with automated checks that catch malformed responses before they reach you.
Schedule recurring monitors, receive webhook callbacks, or request bulk exports to cloud storage, so data arrives without manual pulls.
The fields the Amazon product data extraction returns, what each one means and what teams do with it. Field availability follows what the listing displays on the selected marketplace.
| Data Field | Description | Business Application | Availability |
|---|---|---|---|
asin |
Amazon Standard Identification Number, the 10-character ID used in product URLs | Product identification, de-duplication | Core |
title |
Name of the listed product | Catalogue management | Core |
brand / category |
Brand and category shown on the listing | Brand analysis, category benchmarking | Core |
price.amount / price.currency |
Displayed price and its currency | Price comparison, repricing inputs | Core |
discount |
Displayed discount and list price | Promotion analysis | Where displayed |
rating / review_count |
Star rating and number of reviews | Product research, sentiment analysis | Where displayed |
reviews (text) |
Individual review content | Sentiment and NLP pipelines | Confirm at onboarding |
seller / fulfillment_type |
Seller and fulfilment method on the listing | Seller research | Where available |
availability / stock_qty |
Displayed stock status and quantity signal where exposed | Availability monitoring | Core |
buy_box / offers |
Buy Box holder and competing offers | Offer comparison | Confirm at onboarding |
product_url / marketplace |
Listing URL and the marketplace it came from | Reference and validation | Core |
crawled_at |
Timestamp of data capture | Freshness checks, time series | Core |
Core = part of the standard field set on our ecommerce API. Where displayed / available / exposed = returned when the listing on that marketplace shows it, so it can be empty for some products. Confirm at onboarding = settled per project. Images and specification tables are also returned. Field names are illustrative; your API reference is the source of truth.
The Amazon Product Data API uses the same versioned endpoints as the Ecommerce Scraping API. Amazon-specific parameter names that are not yet published are marked as illustrative.
| Endpoint | Purpose | Parameters | Expected response |
|---|---|---|---|
POST /v1/product
Documented
|
Structured data for a single product URL: price, availability, rating and the full attribute set. | Required:
urlOptional: country; a dedicated
asin field is a confirm |
One JSON product record, returned synchronously. |
POST /v1/search
Documented
|
Keyword or category search on a target site, returned as a structured result list. | Required: site (e.g.
"amazon"), queryOptional: country |
JSON with query, result_count
and a results array. |
POST /v1/monitor
Documented
|
Registers a listing for scheduled price and stock monitoring with webhook notifications. | Required:
urlOptional: webhook URL and check frequency names: confirm |
A monitor ID you use to read tracked data later. |
GET /v1/monitor/:id
Documented
|
Latest tracked data and change history for one monitored product. | Required: id (path) |
JSON with the current values and recorded changes. |
POST /v1/bulk
Documented
|
Submits a batch of URLs for asynchronous processing; results go to storage or a webhook. | Required: list of
URLs Optional: delivery destination and format (JSON, CSV or XLSX) names: confirm |
A job ID, then results via webhook or storage export. |
GET /v1/status/:job_id
Documented
|
Status and progress of an asynchronous crawl or bulk export. | Required: job_id (path) |
JSON with job state and progress. |
| Situation | Typical HTTP status | How to fix it |
|---|---|---|
Missing or malformed url |
400 | Send a full product URL on an Amazon marketplace you have
scoped, including the https:// prefix. |
| Unsupported site or country value | 400 / 422 | Check site and country against the
marketplaces confirmed for your account. |
| Missing or invalid API key | 401 | Send Authorization: Bearer <key> and check
the key belongs to the right environment (sandbox or live). |
| Listing not found or no longer available | 404 or an empty record | Verify the ASIN and marketplace; the product may be removed or unavailable in that country. |
| Request limit exceeded | 429 | Wait, then retry with backoff. Response headers show your remaining quota for the window. |
| Temporary processing failure | 5xx | Retry with exponential backoff; for large volumes use
/v1/bulk instead of many synchronous calls. |
Status codes follow common REST conventions (429 is the one shown in our published dashboard example). The exact codes and error bodies are listed in the API reference supplied with your key.
Two common calls and what comes back. Illustrative sample data — not live product information.
curl -X POST https://api.webfusiondata.com/v1/product \
-H "Authorization: Bearer $WFD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.amazon.com/dp/EXAMPLE123",
"country": "US"
}'
curl -X POST https://api.webfusiondata.com/v1/search \
-H "Authorization: Bearer $WFD_API_KEY" \
-d '{"site": "amazon", "query": "wireless earbuds", "country": "US"}'
url or site + query select what to fetch; country selects the marketplace. The key stays in an environment variable
— never hard-code it or ship it in client-side code.{
"asin": "EXAMPLE123",
"marketplace": "US",
"title": "Example Product",
"brand": "Example Brand",
"price": { "amount": 49.99, "currency": "USD" },
"discount": { "percent": 17, "list_price": 59.99 },
"availability": "Available",
"rating": 4.5,
"review_count": 1280,
"seller": "Example Seller",
"product_url": "https://www.amazon.com/",
"crawled_at": "2026-01-15T09:30:00Z"
}
{
"query": "wireless earbuds",
"result_count": 48,
"results": [
{ "title": "Example Product", "price": 79.99,
"rating": 4.6, "in_stock": true }
]
}
The generic search sample on our Ecommerce Scraping API page uses a flat
price number and an in_stock flag, while the product example above nests price
under an object. The final Amazon schema is confirmed in your API reference.
Choose the marketplace with the country parameter. We do not claim
global coverage: the marketplaces available to you are confirmed during onboarding, and requests
outside that list are rejected rather than guessed.
| Marketplace | Amazon domain | Local currency | Status for the API |
|---|---|---|---|
| United States | amazon.com | USD | Used in our published Amazon search example |
| United Kingdom | amazon.co.uk | GBP | Confirm at onboarding |
| Germany | amazon.de | EUR | Confirm at onboarding |
| India | amazon.in | INR | Confirm at onboarding |
| United Arab Emirates | amazon.ae | AED | Confirm at onboarding |
| Canada | amazon.ca | CAD | Confirm at onboarding |
| Japan | amazon.co.jp | JPY | Confirm at onboarding |
This is a reference list of well-known Amazon marketplaces, not a coverage guarantee. Need another marketplace? Tell us and we will confirm feasibility.
Why it matters: the marketplace you choose sets the currency, which products are available, the language of titles and categories, and which optional fields (seller, fulfilment, discount) appear. Read each response per marketplace.
What is published today, and what we give you in writing before you go live. We do not publish numeric limits, latency or uptime figures on this page.
| Topic | How it works | Status |
|---|---|---|
| Authentication | Your API key is sent as a bearer token in the
Authorization header. Use the sandbox key while testing. |
Documented |
| Limits and concurrency | Per-minute limits and concurrent-request allowances scale with
your plan; response headers show your remaining quota. Use /v1/bulk for
very large volumes. |
DocumentedNumbers: your plan |
| Validation and errors | Malformed or missing parameters are rejected with a standard HTTP error (see Endpoints), and responses are schema-checked before delivery. | Exact codes: API reference |
| Timeouts and retries | Set a client timeout and retry reads on 429 and 5xx with
exponential backoff. Move long work to /v1/bulk and
/v1/status/:job_id, and avoid blind retries of
POST /v1/monitor or /v1/bulk. |
Recommended practice |
| Pagination | Search returns a result_count and result list.
Pagination for deeper results is scoped per project. |
Confirm at onboarding |
| Usage monitoring | An account dashboard shows request volume, latency, success rate and job status. | Documented |
Connect the API to ecommerce applications, internal databases, BI dashboards, reporting systems and analytics pipelines. The pattern is the same each time: a request layer, a place to store results and a schedule.
Agree marketplaces, fields and refresh frequency, then call the sandbox with a few sample products.
Put authentication, timeouts and retry backoff in one small client module your whole team reuses.
Upsert records by ASIN and marketplace, and keep every crawled_at
timestamp to build a time series.
Use monitors and bulk jobs, act on webhooks, and connect the table to your dashboards and reports.
import os, sqlite3, requests
API = "https://api.webfusiondata.com/v1/product"
HEADERS = {"Authorization": f"Bearer {os.environ['WFD_API_KEY']}"}
def fetch(asin):
body = {
"url": f"https://www.amazon.com/dp/{asin}",
"country": "US",
}
r = requests.post(API, json=body, headers=HEADERS, timeout=60)
r.raise_for_status()
return r.json()
db = sqlite3.connect("amazon_prices.db")
db.execute("CREATE TABLE IF NOT EXISTS prices "
"(asin TEXT, amount REAL, currency TEXT, at TEXT)")
for asin in ["EXAMPLE123"]:
item = fetch(asin)
db.execute("INSERT INTO prices VALUES (?, ?, ?, ?)", (
item["asin"],
item["price"]["amount"],
item["price"]["currency"],
item.get("crawled_at"),
))
db.commit()
Default response format for every endpoint.
Bulk export jobs delivered as CSV or XLSX to S3, GCS or your own bucket.
Callbacks when a job completes or a tracked value changes, plus recurring checks
through /v1/monitor.
Managed warehouse connectors, client libraries and no-code paths.
Listed on the Ecommerce Scraping API page; availability for your Amazon scope is confirmed during onboarding. See also the AI Parser and ecommerce datasets. Related: product availability and MAP monitoring.
It is a REST API from WebFusion Data that returns structured JSON for Amazon listings. You send a product URL, or a search query and a marketplace, and receive fields such as title, price, rating and availability. It runs on the same endpoints and infrastructure as our Ecommerce Scraping API, so you do not run proxies, browsers or parsers yourself.
Core fields include ASIN, title, brand, category, price and currency, availability, images, specifications, product URL, marketplace and a capture timestamp. Discount, rating, review count, seller, fulfilment type and a quantity signal are returned where the listing displays them. Review text, Buy Box ownership and full offer lists are confirmed per project. The data fields table shows each one.
Yes, through the product URL. The ASIN is part of every Amazon product link (/dp/ASIN), so you build the URL from your ASIN and submit it to /v1/product with the marketplace in country. The
ASIN is returned in the response so you can match records. Whether a dedicated ASIN-only
parameter is available is confirmed at onboarding.
Yes. POST /v1/monitor registers a listing for scheduled price and
stock monitoring with webhook notifications, and GET /v1/monitor/:id
returns the latest tracked data and change history. Frequency and volume are scoped to your
project. Change history is recorded from the time you register a product; earlier history is
not assumed, so ask if you need a backfill, or store each response with its crawled_at timestamp to build your own series.
Seller and fulfilment type are returned where the listing displays them. Buy Box ownership and competing offers depend on the marketplace and on your scope, and the Buy Box can change between checks, so we confirm availability and the right monitoring frequency with you before you build on it.
We do not claim global coverage. The country parameter selects the
marketplace; the US is used in our published Amazon search example, and the rest of your
list is confirmed during onboarding. Tell us which marketplaces you need and we will confirm
each one. See supported marketplaces.
Each request carries your API key as a bearer token in the Authorization header. Every account includes a sandbox for testing with
sample responses. Keep the key on your server, in an environment variable or secrets
manager, and never in client-side code.
JSON is the default for all endpoints. Bulk export jobs can also be delivered as CSV or XLSX, to S3, GCS or your own bucket. Webhooks, SDKs and database push options are described in Integration and Data Delivery.
Use the Request API Demo button or the form below and tell us the marketplaces, product volume, fields, refresh frequency and delivery format you need. We confirm the scope and set up access, including the sandbox. You can also email sales@webfusiondata.com or book a consultation.

At WebFusionData, we specialize in cutting-edge web scraping solutions to help you unlock valuable insights and drive business growth. Whether you need custom data extraction, real-time monitoring, or large-scale web scraping, our team is here to assist you.
Ready to get started? Contact us for a personalized quote.