# Amazon Product Scraper API - Walmart, Target, Best Buy Prices (`nabeelbaghoor/amazon-walmart-product-price-scraper-api`) Actor

Amazon, Walmart, Target, Best Buy and Home Depot product data from ASINs, product ids or search keywords: title, price, list price, brand, availability, rating, review count, image and URL, one row per product or search result. Uses your own Nimble API key.

- **URL**: https://apify.com/nabeelbaghoor/amazon-walmart-product-price-scraper-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 product page record returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Amazon Product Scraper API - Walmart, Target, Best Buy Prices

Turn ASINs, product ids and search keywords into clean product rows from Amazon, Walmart, Target, Best Buy and Home Depot: title, current price, list price, brand, availability, rating, review count, image and URL, ready for price monitoring, catalog enrichment or an AI agent's tool call.

### What it collects

- **Product pages**: one row per ASIN or product id from the Amazon, Walmart, Target, Best Buy or Home Depot product page templates, with current price, list price, brand, stock, average rating, review count and main image.
- **Search results**: one row per product on an Amazon or Walmart search results page for each keyword, with its position, title, price, rating and URL, across as many result pages as you ask for.
- **Amazon category pages**: every product listed in a category, page by page.
- **Location-specific pricing**: pass a US ZIP code to read the price and availability shown to shoppers there, on templates that support localization.
- **Template catalog**: list every extraction template your account can run, with its target site, vertical and page type, including private templates of your own account.
- The provider's full parsed record for every product under `record`, so no field is lost.
- Read only, pay per result, bring your own key.

### Input

| Field | What it does |
| --- | --- |
| What to read | Template run (default) or template catalog. |
| Template | Amazon product page, Amazon search, Amazon category, Walmart product page, Walmart search, Target, Best Buy or Home Depot product page. |
| Other template name | Run any other template by name, such as one of your own. |
| Inputs | One per line: an ASIN, a keyword, or a JSON object of parameters such as `{"asin": "B0DLKFK6LR", "zip_code": "10001"}`. |
| ZIP code | Location-specific price and availability, on templates that support it. |
| Country / Locale | Where the site is read from, and the language of the results. |
| Pages per search | Result pages to read per keyword on search and category templates. |
| Catalog search / privacy / vertical | Filters for the template catalog. |
| Maximum results | Row cap for the run. |
| Requests per minute | Pacing for calls to the provider. |
| Nimble API key | Your own key, as a secret input. |

Before a run, the actor reads the chosen template's own parameter list, so a line missing a required parameter becomes a free row saying which one, instead of a wasted call.

### FAQ

#### What is this Amazon product scraper API used for?

Collecting live retail product data without maintaining scrapers. A pricing team tracks the Amazon and Walmart price of its own catalog every morning. A brand checks list price, sale price and stock for its ASINs by ZIP code. An analyst pulls the top results for a set of keywords to see who ranks and at what price. An AI agent looks up a product's current price and rating on demand.

#### Which data source does this actor read?

The Nimble Extract Templates API at sdk.nimbleway.com, through the read routes in its public OpenAPI document: `POST /v2/extract/templates/run` to run a pre-built template, `GET /v2/extract/templates/{name}` to read a template's parameters, and `GET /v2/extract/templates` to list the catalog. The templates are maintained by the provider and adapt when the retail sites change.

#### Do I need an API key?

Yes. This actor is bring-your-own-key and never ships one. Create a key on the API keys page of your Nimble account settings, then paste it into the input or set it once as the `DATA_API_KEY` environment secret. A missing key, a rejected key and an account with no budget left all end the run cleanly with a message saying which it was.

#### Which retailers and page types are supported?

Amazon product pages (by ASIN), Amazon search (by keyword), Amazon category pages, Walmart product pages, Walmart search (by keyword), and Target, Best Buy and Home Depot product pages. Any other template your account can run, public or private, works through the other template name field.

#### What do I put on each input line?

A plain value fills the template's one required parameter: an ASIN for Amazon product pages, a keyword for Amazon or Walmart search. When a template takes a different or additional parameter, give a JSON object per line. Run the template catalog mode or check the template in your account to see its parameter names.

#### Can this actor change anything in my account?

No. It never creates, edits, generates or deletes a template and never schedules a job. It runs existing templates and reads the catalog.

#### What happens when an input returns nothing?

It becomes its own row with `found: false` and a note: a line missing a required parameter, parameters the provider refused, or a run the provider ended as blocked or failed. Those rows are never charged.

#### How is it priced?

Pay per result. A product page record costs more than a search result record because it carries the full product detail. Catalog rows and rows for inputs that produced nothing are priced at the floor or free. Your Nimble plan applies separately.

### Example output

```json
{
  "mode": "products",
  "template": "amazon_pdp",
  "requested": "B08N5WRWNW",
  "params": { "asin": "B08N5WRWNW" },
  "page": null,
  "found": true,
  "recordKind": "product",
  "position": null,
  "title": "Apple AirPods Pro (2nd Generation)",
  "price": 249.0,
  "listPrice": 279.0,
  "brand": "Apple",
  "availability": true,
  "rating": 4.7,
  "reviewCount": 125432,
  "asin": "B08N5WRWNW",
  "imageUrl": null,
  "productUrl": null,
  "pageUrl": "https://www.amazon.com/dp/B08N5WRWNW",
  "websiteStatus": 200,
  "taskId": "b1fa7943-cba5-4ec2-a88c-4d2d6799c794",
  "retrievedAt": "2026-09-29T09:14:52.118Z",
  "record": {
    "asin": "B08N5WRWNW",
    "product_title": "Apple AirPods Pro (2nd Generation)",
    "brand": "Apple",
    "web_price": 249.0,
    "list_price": 279.0,
    "average_of_reviews": 4.7,
    "number_of_reviews": 125432,
    "availability": true
  },
  "note": null
}
```

Values are illustrative. Field names inside `record` differ per template; the lifted columns read the documented spellings of each (for example `web_price` or `price`).

### Pricing

| Event | Price |
| --- | --- |
| Product page record | $0.01 |
| Search or category result record | $0.005 |
| Template catalog record | $0.005 |

Rows for inputs that produced nothing are free.

### Keyword map

Amazon product scraper, Amazon price API, ASIN lookup API, Amazon search results scraper, Walmart product scraper, Walmart price API, Target product data, Best Buy price scraper, Home Depot product data, ecommerce price monitoring, product data API for AI agents, retail price tracking by ZIP code, Nimble API, Nimble extract templates.

# Actor input Schema

## `mode` (type: `string`):

Template run reads product pages or search results for each input line, using the template picked below. Template catalog lists the extraction templates your account can run, with their target site and page type, and needs no inputs.

## `template` (type: `string`):

The pre-built extraction template to run. Product page templates return one product per input; search and category templates return every product on the results page.

## `templateName` (type: `string`):

Optional. Run any other template by its name instead of the one picked above, such as a template of your own account. Use the template catalog mode to see the names available to you.

## `inputs` (type: `array`):

One input per line. A plain value fills the template's one required parameter: an ASIN such as B08N5WRWNW for Amazon product pages, a keyword such as wireless headphones for Amazon or Walmart search. For templates that take more than one parameter, give a JSON object per line, such as {"asin": "B0DLKFK6LR", "zip\_code": "10001"}. Each line is checked against the parameters the template documents before it is sent.

## `zipCode` (type: `string`):

Optional US ZIP code, such as 10001 or 90210, for location-specific price and availability. Sent with localization switched on, and only to templates that support localization.

## `country` (type: `string`):

Optional two-letter ISO 3166-1 code, such as US, GB or DE, for the country the site is read from. Leave blank to let the provider choose.

## `locale` (type: `string`):

Optional language preference for the results, such as en or en-US. Leave blank to let the provider choose.

## `maxPagesPerInput` (type: `integer`):

Search and category templates only. Read this many result pages per keyword, starting from the first. Paging stops early at an empty page or at a page that repeats earlier results. Product page templates always read one page.

## `catalogSearch` (type: `string`):

Template catalog only. Filter templates by keyword, such as amazon or walmart.

## `catalogPrivacy` (type: `string`):

Template catalog only. Public templates are maintained by the provider or its community; private templates are your own account's.

## `catalogVertical` (type: `string`):

Template catalog only. Keep only ecommerce templates, or list every vertical, such as search engines and social media.

## `maxResults` (type: `integer`):

Stop after this many rows. One search page can return dozens of products, so this is what bounds a run over many keywords and pages.

## `requestsPerMinute` (type: `integer`):

Pacing ceiling for calls to the provider. Its default limit is far higher; rate limited calls are retried with a pause rather than dropped.

## `apiKey` (type: `string`):

Your own Nimble API key, from the API keys page of your account settings. This actor is bring-your-own-key and never ships a key of its own. Leave blank to use the DATA\_API\_KEY environment secret instead.

## `baseUrl` (type: `string`):

Override the host the actor calls. Only useful for testing against a different environment.

## Actor input object example

```json
{
  "mode": "products",
  "template": "amazon_pdp",
  "inputs": [
    "B08N5WRWNW"
  ],
  "maxPagesPerInput": 1,
  "catalogPrivacy": "public",
  "catalogVertical": "Ecommerce",
  "maxResults": 100,
  "requestsPerMinute": 60
}
```

# Actor output Schema

## `records` (type: `string`):

One row per product, search result or template, alongside the input that produced it.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "inputs": [
        "B08N5WRWNW"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/amazon-walmart-product-price-scraper-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "inputs": ["B08N5WRWNW"] }

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/amazon-walmart-product-price-scraper-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "inputs": [
    "B08N5WRWNW"
  ]
}' |
apify call nabeelbaghoor/amazon-walmart-product-price-scraper-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nabeelbaghoor/amazon-walmart-product-price-scraper-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/7jrgLbaSiKcmSxFkw/builds/gmO1mQ5XDhGdph1FJ/openapi.json
