# Amazon Deals Products Scraper (`powerai/amazon-deals-products-scraper`) Actor

Browse and export Amazon deal listings—titles, ASINs, prices, savings, URLs, and timing—row by row with a collection timestamp.

- **URL**: https://apify.com/powerai/amazon-deals-products-scraper.md
- **Developed by:** [PowerAI](https://apify.com/powerai) (community)
- **Categories:** E-commerce, Social media, Other
- **Features:** Limited permissions
- **Stats:** 105 total users, 25 monthly users, 99.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $4.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Deals Products Scraper

Discover and export promotional listings from Amazon’s deals experience: product ASIN, titles, prices, savings, deal type, and links—saved as one row per deal, with a timestamp on each row.

### Key Features

- Collect up to your chosen **maximum** number of deals; continues with **offset** paging until that limit or until there are no more results
- Identifiers and links: **deal_id**, **product_asin**, **deal_url**, **canonical_deal_url** (deal hub link), **deal_photo**
- Classification: **deal_type** (e.g. best-deal style), **type** (e.g. single-item vs multi-item), **deal_state** (e.g. availability)
- Copy and pricing: **deal_title**; **deal_price** / **list_price** as `{ amount, currency }`; **savings_percentage**, **savings_amount**, **deal_badge** (short label like “26% off”)
- Timing: **deal_starts_at**, **deal_ends_at** (ISO 8601 when present; may be null on some listings)
- Filters: **marketplace** (country), optional **categories**, **star / price / discount** bands, **brands**, and toggles for **Prime Early Access**, **Prime Exclusive**, and **Lightning**-style deals
- Optional **language** and **fields** projection
- Each record includes **scrapedAt** (ISO 8601) when the row was written

### Why Use It?

- **Practical**: Snapshot what is on promotion for a marketplace and filters you care about
- **Structured**: JSON rows suitable for sheets, alerts, or catalog tools
- **Steady**: Stops at your cap or when the API returns no further deals

### Great For

- Deal monitoring and competitive pricing snapshots
- Building “today’s deals” feeds for a region
- Research on discount depth and deal types

### Input Parameters

| Parameter | Required | Description |
|-----------|----------|-------------|
| `maxResults` | No | Maximum number of deal rows to collect (default: 48). |
| `geo` | No | Which country’s Amazon site to use (default: `US`). Pick **UK** for the United Kingdom marketplace. |
| `categories` | No | Optional category IDs, comma-separated. |
| `min_product_star_rating` | No | Minimum product rating band (`ALL` or `1`–`4`). |
| `price_range` | No | Preset price band (`ALL` or `1`–`5`). |
| `discount_range` | No | Preset discount band (`ALL` or `1`–`5`). |
| `brands` | No | Optional brand filter when supported. |
| `prime_early_access` | No | Restrict to Prime Early Access deals. |
| `prime_exclusive` | No | Restrict to Prime Exclusive deals. |
| `lightning_deals` | No | Restrict to Lightning Deals. |
| `language` | No | Preferred language when supported (e.g. `en_US`). |
| `fields` | No | Comma-separated attributes if you want a narrower payload. |

### Output

Each dataset row is one deal. The actor appends **scrapedAt** (ISO 8601). Nested money objects use string **amount** and **currency** codes.

| Field | Type | Description |
|-------|------|-------------|
| `deal_id` | string | null | Short deal identifier used in the marketplace. |
| `deal_type` | string | Deal program or bucket (e.g. `BEST_DEAL`). |
| `deal_title` | string | Product or offer title. |
| `deal_photo` | string | Image URL for the offer. |
| `deal_state` | string | Availability-style state (e.g. `AVAILABLE`). |
| `deal_url` | string | Product or offer page URL. |
| `canonical_deal_url` | string | Deal landing URL (often `/deal/{id}`). |
| `deal_starts_at` | string | null | Offer start time (ISO 8601). |
| `deal_ends_at` | string | null | Offer end time (ISO 8601). |
| `deal_price` | object | null | Current deal price: `{ amount, currency }`. |
| `list_price` | object | null | Reference list price: `{ amount, currency }`. |
| `savings_percentage` | number | Percent off when provided. |
| `savings_amount` | object | null | Absolute savings: `{ amount, currency }`. |
| `deal_badge` | string | null | Short badge text (e.g. discount label). |
| `type` | string | Row shape (e.g. `SINGLE_ITEM`). |
| `product_asin` | string | Product ASIN for the item in the deal. |
| `scrapedAt` | string | When this row was collected (ISO 8601). |

#### Sample record

```json
{
  "deal_id": "c396e712",
  "deal_type": "BEST_DEAL",
  "deal_title": "TurboTax Home & Business Desktop Edition 2025, Federal & State Tax Return [Win11/Mac14 Download]",
  "deal_photo": "https://m.media-amazon.com/images/I/71-jbdrZxVL.jpg",
  "deal_state": "AVAILABLE",
  "deal_url": "https://www.amazon.com/TurboTax-Business-Desktop-Federal-Download/dp/B0FWV2NJV5",
  "canonical_deal_url": "https://www.amazon.com/deal/c396e712",
  "deal_starts_at": "2026-03-10T07:00:00.000Z",
  "deal_ends_at": "2026-04-08T06:59:59.000Z",
  "deal_price": {
    "amount": "95.99",
    "currency": "USD"
  },
  "list_price": {
    "amount": "129.99",
    "currency": "USD"
  },
  "savings_percentage": 26,
  "savings_amount": {
    "amount": "34.0",
    "currency": "USD"
  },
  "deal_badge": "26% off",
  "type": "SINGLE_ITEM",
  "product_asin": "B0FWV2NJV5",
  "scrapedAt": "2026-03-24T03:28:26.438Z"
}
```

### Notes

- Available deals and filters depend on the marketplace and season.
- Respect Amazon’s terms and applicable laws when using scraped data.

# Actor input Schema

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

Maximum number of deal rows to collect across offset pages.

## `geo` (type: `string`):

Which Amazon country site to use. Choose UK for the United Kingdom marketplace.

## `categories` (type: `string`):

Optional category IDs, comma-separated, to narrow deals.

## `min_product_star_rating` (type: `string`):

Filter by minimum star rating band.

## `price_range` (type: `string`):

Preset price band filter.

## `discount_range` (type: `string`):

Preset discount band filter.

## `brands` (type: `string`):

Optional brand filter as returned by the marketplace (format depends on site).

## `prime_early_access` (type: `boolean`):

Only include Prime Early Access deals.

## `prime_exclusive` (type: `boolean`):

Only include Prime Exclusive deals.

## `lightning_deals` (type: `boolean`):

Only include Lightning Deals.

## `language` (type: `string`):

Optional result language (e.g. en_US) when supported.

## `fields` (type: `string`):

Optional comma-separated list to limit which attributes appear in each row.

## Actor input object example

```json
{
  "maxResults": 30,
  "geo": "US",
  "min_product_star_rating": "ALL",
  "price_range": "ALL",
  "discount_range": "ALL",
  "prime_early_access": false,
  "prime_exclusive": false,
  "lightning_deals": false,
  "language": "en_US"
}
```

# 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 = {
    "maxResults": 30,
    "geo": "US",
    "min_product_star_rating": "ALL",
    "price_range": "ALL",
    "discount_range": "ALL",
    "language": "en_US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("powerai/amazon-deals-products-scraper").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 = {
    "maxResults": 30,
    "geo": "US",
    "min_product_star_rating": "ALL",
    "price_range": "ALL",
    "discount_range": "ALL",
    "language": "en_US",
}

# Run the Actor and wait for it to finish
run = client.actor("powerai/amazon-deals-products-scraper").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 '{
  "maxResults": 30,
  "geo": "US",
  "min_product_star_rating": "ALL",
  "price_range": "ALL",
  "discount_range": "ALL",
  "language": "en_US"
}' |
apify call powerai/amazon-deals-products-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,powerai/amazon-deals-products-scraper"
        }
    }
}
```

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/hJNp8X1wuz14Wc5wU/builds/H8dSKMQAQOYg3fbNT/openapi.json
