# Amazon Search Scraper - Rankings, Prices & Sponsored (`automly/amazon-search-scraper`) Actor

Scrape Amazon search results for any keyword or search link: position, page, ASIN, title, price, rating, reviews, badges, sponsored flag and bought-in-past-month. Track keyword rankings in 20 Amazon stores. No login.

- **URL**: https://apify.com/automly/amazon-search-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** E-commerce, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 search results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Search Scraper - Results, Rankings & Prices

### What is Amazon Search Scraper?

**Amazon Search Scraper** saves **Amazon search results** for any keyword or search link, in the order Amazon shows them: position, page, ASIN, title, price, list price, star rating, number of ratings, badges like **Best Seller** and **Overall Pick**, the **sponsored** flag and Amazon's **bought in past month** figure. Use it to **track keyword rankings**, watch competitors, or collect product lists. Type a keyword, click **Start**, and download the results as Excel, CSV or JSON.

- 🔎 **Keywords or search links:** paste a search with any filters you set on Amazon
- 📈 **Rank tracking:** every result has its position across all pages and on its page
- 🌍 **20 Amazon stores**, each in its own language and currency
- ↕️ **Sort orders:** featured, price, average review, newest or best sellers
- 🔓 **No login:** no Amazon account needed

### What data do you get?

| | | |
|---|---|---|
| 🔢 Position and page | 🔖 ASIN | 📝 Title |
| 💲 Price and list price | ⭐ Star rating | 💬 Number of ratings |
| 🏅 Badge (Best Seller, Overall Pick, Amazon's Choice) | 📢 Sponsored flag | 🛒 Bought in past month |
| 🖼️ Image | 🔗 Product link | 🌍 Amazon store |

### How to scrape Amazon search results

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **Amazon Search Scraper**.
3. Enter keywords, or paste Amazon search links.
4. Pick the Amazon store, the sort order and how many results you want per keyword.
5. Click **Start**, then download the results as Excel, CSV, JSON or HTML.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **Keywords** | Search terms, like `garlic press` |
| **Search links** | Amazon search links with your filters (brand, price, rating, department) |
| **Marketplace** | The Amazon store for the keywords (default amazon.com) |
| **Max results per keyword** | How many results to save per keyword or link (default 50) |
| **Sort by** | Featured, price low to high or high to low, average review, newest, best sellers |

The first 100 results for two keywords:

```json
{
  "keywords": ["garlic press", "usb c cable"],
  "marketplace": "com",
  "maxResultsPerKeyword": 100
}
```

The cheapest results on amazon.co.uk:

```json
{
  "keywords": ["yoga mat"],
  "marketplace": "co.uk",
  "sort": "price-low-to-high"
}
```

### ⬆️ Output

One row per search result:

```json
{
  "searchTerm": "usb c cable",
  "page": 1,
  "position": 1,
  "positionOnPage": 1,
  "asin": "B088NRLMPV",
  "title": "Anker USB C to USB C Cable, 60W Fast Charging Cable (2-Pack, 6 ft, Black)",
  "url": "https://www.amazon.com/dp/B088NRLMPV",
  "price": "$9.99",
  "listPrice": null,
  "badge": "Overall Pick",
  "boughtInPastMonth": "10K+",
  "rating": 4.7,
  "reviewCount": 86294,
  "sponsored": false,
  "image": "https://m.media-amazon.com/images/I/71IE9dLBduL._AC_UY218_.jpg",
  "marketplace": "amazon.com",
  "scrapedAt": "2026-10-02T08:54:33Z"
}
```

The **Overview** tab shows the results as a table with images. The run report lists any search that could not be read.

### How can I use Amazon search data?

- **Keyword rank tracking:** where does your product show up for the terms that matter, and how does it move
- **Competitor research:** who ranks above you, at what price, with how many ratings
- **Advertising insights:** which results are sponsored for a keyword
- **Product discovery:** collect ASINs for a niche, then get full details with Amazon Products Scraper
- **Price monitoring:** schedule the same searches and compare prices over time

### ❓FAQ

#### How much does it cost?

You pay per result saved. See the **Pricing** tab for the current price. **Max results per keyword** keeps the cost of a run under control, and you can also set a maximum cost per run.

#### How many results can I get for a keyword?

As many as Amazon shows, usually 7 to 20 pages. Use more specific keywords, other sort orders or filtered search links to reach more products.

#### Can I get full product details?

Search results carry the list data. For Best Sellers Rank, monthly sales estimates, specs, variants and seller details, feed the ASINs to [Amazon Products Scraper](https://apify.com/automly/amazon-products-scraper---fast-efficient-with-sales-data); for customer reviews, use [Amazon Reviews Scraper](https://apify.com/automly/amazon-reviews-scraper).

#### Which Amazon stores work?

amazon.com, .co.uk, .de, .fr, .it, .es, .ca, .com.mx, .in, .com.br, .co.jp, .com.au, .ae, .sa, .nl, .se, .pl, .com.tr, .sg and .eg, each read as a local shopper sees it.

#### Can I call it as an API?

Yes. Run it through the Apify API from any language, or use its real-time endpoint `/search?keyword=...` that answers with the results directly.

#### Is it legal to scrape Amazon?

This scraper collects publicly available information. Make sure your use follows applicable laws and Amazon's terms. This tool is not affiliated with or endorsed by Amazon.

#### Something is not working, or I need another field

Open an issue in the **Issues** tab with your input and what you expected. We read every one and usually reply within a day. If the scraper saves you time, a short review on its Store page helps other people find it.

# Actor input Schema

## `keywords` (type: `array`):

Search terms, one per line, like garlic press.

## `searchUrls` (type: `array`):

Amazon search result links with any filters you set on Amazon (brand, price, rating, department), one per line.

## `marketplace` (type: `string`):

Which Amazon store to search with the keywords. Results are read as a shopper in that country sees them: local language, currency and delivery.

## `maxResultsPerKeyword` (type: `integer`):

How many results to save for each keyword or link. Amazon shows up to about 7-20 pages of results per search.

## `sort` (type: `string`):

Order of the results for keywords. Search links keep their own order.

## `proxyConfiguration` (type: `object`):

The default works for most runs. If results come back empty, try a different proxy option.

## Actor input object example

```json
{
  "keywords": [
    "garlic press"
  ],
  "marketplace": "com",
  "maxResultsPerKeyword": 50,
  "sort": "relevance",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `results` (type: `string`):

No description

## `report` (type: `string`):

No description

# 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 = {
    "keywords": [
        "garlic press"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/amazon-search-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 = {
    "keywords": ["garlic press"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/amazon-search-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 '{
  "keywords": [
    "garlic press"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/amazon-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/amazon-search-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/t1asbbVZy3EwTAXrw/builds/JzfNVo9KwqMq62lZu/openapi.json
