# Free Amazon Search Results Scraper (`easyparser/amazon-search-results`) Actor

Retrieve ranked Amazon product listings for any keyword or search URL, including titles, prices, ratings, Prime status, sponsored flags, images, and available filters for any marketplace.

- **URL**: https://apify.com/easyparser/amazon-search-results.md
- **Developed by:** [Easyparser](https://apify.com/easyparser) (community)
- **Categories:** E-commerce
- **Features:** Limited permissions
- **Stats:** 19 total users, 5 monthly users, 99.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 easyparser credit (built-in key)s

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

## Free Amazon Search Results Scraper

Retrieve ranked Amazon product listings for any keyword or search URL in real-time, including titles, prices, ratings, Prime status, sponsored flags, images, and available sidebar filters. Powered by [Easyparser's](https://easyparser.com) real-time Search API.

> **No API key required to get started.** This actor includes a shared demo key so you can try it immediately. For higher limits and bulk processing, [sign up free at Easyparser](https://app.easyparser.com/signup).

***

### What This Actor Returns

Each run produces one dataset row per search result product, plus one final metadata row with refinements and related searches.

**Per product row:**

| Field | Description |
|-------|-------------|
| `search_keyword` | The keyword used for the search |
| `search_domain` | The Amazon marketplace queried |
| `source_page` | Page number this result came from |
| `position` | Ranking position on the search results page |
| `asin` | Amazon Standard Identification Number |
| `title` | Full product title |
| `brand` | Brand name (if available) |
| `link` | Full Amazon product page URL |
| `image_id` | Amazon image identifier for building image URLs |
| `product_type` | Amazon product type category (e.g. THERMOS) |
| `is_sponsored` | Whether the listing is a paid sponsored placement |
| `is_prime` | Whether the product is Prime eligible |
| `price`, `price_raw`, `price_currency` | Current listing price |
| `rrp`, `rrp_raw` | Recommended retail / list price (if available) |
| `rating`, `rating_text`, `ratings_total` | Average star rating and total review count |
| `bought_activity_raw`, `bought_activity_value`, `bought_activity_period` | Recent purchase activity (e.g. "4K+ bought in past month") |
| `color_options_count` | Number of color variations available |
| `more_buying_choices_count`, `more_buying_choices_price` | Alternative offer count and lowest price |
| `shipping_details` | Delivery estimate text |

**Metadata row** (`_type: "search_metadata"`):

- `total_results_returned`, `pages_fetched`
- `related_searches` - Amazon's suggested related search terms
- `refinements` - Full sidebar filter data (brands, price ranges, departments, ratings, conditions, delivery options, etc.)

***

### How to Use

#### Option A - Try It Now (No Sign-Up)

Fill in the `keyword` and `domain` fields and run. A shared Easyparser key is built in.

#### Option B - Use Your Own API Key (Recommended for Scale)

1. Sign up free at [app.easyparser.com/signup](https://app.easyparser.com/signup) - **100 free credits/month**, no credit card required
2. Copy your API key from the [Plan Page](https://app.easyparser.com/account/plan)
3. Paste it into the `api_key` field

***

### Input Fields

| Field | Required | Description |
|-------|----------|-------------|
| `keyword` | Yes\* | Search keyword (e.g. `vacuum bottle`). You can also use `url` or the list fields below |
| `url` | Yes\* | Full Amazon search URL with filters already applied |
| `keywords` | No | List of keywords, each searched separately in one run (bulk) |
| `urls` | No | List of Amazon search URLs to process in one run (bulk) |
| `domain` | Yes | Amazon marketplace (e.g. `.com`, `.co.uk`, `.de`) |
| `sort_by` | No | Sort order: `featured`, `price-asc-rank`, `price-desc-rank`, `review-rank`, `date-desc-rank`. Default: featured |
| `exclude_sponsored` | No | If enabled, removes sponsored listings from results. Default: false |
| `language` | No | Language code for the page (e.g. `en_US`, `de_DE`). Defaults to marketplace language |
| `currency` | No | Currency code for prices (e.g. `usd`, `eur`). Defaults to marketplace currency |
| `refinements` | No | Category or attribute filter string (e.g. `n:7141123011`). Use Amazon node IDs |
| `max_pages` | No | Pages to retrieve (1-5). Each page costs 1 credit and returns up to 60 products. Default: 1 |
| `api_key` | No | Your personal Easyparser API key (shared demo key used if empty) |

**Note:** Provide either `keyword` or `url`, not both. Using `keyword` is simpler and recommended for automation.

**Note on pagination:** Each page returns approximately 20-60 products and consumes 1 credit. For most keyword research tasks, 1 page is sufficient.

**Note on geographic location (address):** The Easyparser API supports simulating a specific zip code to localize search results and pricing via an `address_id` parameter. This feature is available when using the API directly through your Easyparser account. It is not exposed as an input field in this Actor. To use it, call the API directly at [docs.easyparser.com](https://docs.easyparser.com/real-time-integration/search/request).

***

### Example

**Input:**

```json
{
  "keyword": "vacuum bottle",
  "domain": ".com",
  "exclude_sponsored": true
}
```

**Output (one row per product):**

```json
{
  "search_keyword": "vacuum bottle",
  "search_domain": ".com",
  "source_page": 1,
  "position": 0,
  "asin": "B01DZQT3IU",
  "title": "THERMOS Stainless King Vacuum-Insulated Beverage Bottle, 40 Ounce, Matte Stainless Steel",
  "brand": null,
  "link": "https://www.amazon.com/Thermos-Stainless-Ounce-Beverage-Bottle/dp/B01DZQT3IU",
  "image_id": "61iAF0pBz2L",
  "product_type": "THERMOS",
  "is_sponsored": false,
  "is_prime": false,
  "price": 36.49,
  "price_raw": "$36.49",
  "price_currency": "USD",
  "rrp": 44.99,
  "rrp_raw": "$44.99",
  "rating": 4.7,
  "rating_text": "4.7 out of 5 stars",
  "ratings_total": 21508,
  "bought_activity_raw": "4K+ bought in past month",
  "bought_activity_value": 4000,
  "bought_activity_period": "past month",
  "color_options_count": 4,
  "more_buying_choices_count": 7,
  "more_buying_choices_price": "$29.92",
  "shipping_details": "FREE delivery Sun, Jan 11"
}
```

**Bulk input (many items in one run):**

```json
{
  "keywords": [
    "vacuum bottle",
    "logitech mouse"
  ],
  "domain": ".com"
}
```

\* Provide at least one value in the single field or the list fields. Items are processed 5 at a time and each one is saved to the dataset as soon as it finishes. If an item fails, the run continues with the others and the failed items are listed in the `FAILED_ITEMS` record of the run's key-value store. When the run reaches your maximum cost per run, the remaining items are skipped.

***

### Use Cases

- **Keyword Research for Amazon SEO**: Identify which products dominate Page 1 for high-intent keywords to guide listing optimization and targeting strategy
- **Competitor Monitoring by Keyword**: Track how often competitors appear in organic and sponsored positions and how their visibility changes over time
- **Rank Tracking**: Schedule regular runs to monitor how a product's position changes for specific keywords daily or weekly
- **Ad Visibility and PPC Auditing**: Separate sponsored from organic placements to analyze share of voice and optimize ad spend
- **Seasonal and Event Trend Tracking**: Capture SERP shifts during peak periods like Black Friday or Prime Day using hourly or daily runs
- **Market Gap and Opportunity Discovery**: Find high-potential niches where low-rated or out-of-stock products dominate search results
- **Price Parity and Competitive Intelligence**: Monitor real-time prices across entire categories without visiting individual product pages
- **Category Exploration with Refinements**: Use the `refinements` parameter to scope searches to specific departments, brands, or price ranges
- **Enterprise Data Infrastructure**: Replace fragile scraper scripts with a reliable API for dashboards, BI tools, and data pipelines

***

### Need More?

For **better pricing**, **higher limits**, and **dedicated throughput**:

- 🚀 [Sign Up Free](https://app.easyparser.com/signup) - 100 credits/month, no credit card
- 💰 [View Pricing Plans](https://easyparser.com/pricing)
- 🎮 [Try the API Playground](https://app.easyparser.com/playground)
- 📄 [Full Documentation](https://docs.easyparser.com/real-time-integration/search)

***

### Related Actors

- [Free Amazon Product Detail Scraper](https://apify.com/easyparser/amazon-product-detail): Full product data including title, price, ratings, images, specifications, and variants
- [Free Amazon Product Offers Scraper](https://apify.com/easyparser/amazon-product-offers): All seller offers with pricing, Buy Box winner, and fulfillment details
- [Free Amazon Package Dimensions and Shipping Weight](https://apify.com/easyparser/amazon-package-dimensions): Package dimensions, shipping weight, FBA fee category
- [Free Amazon Sales History & Analytics](https://apify.com/easyparser/amazon-sales-history): Weekly BSR, price, and traffic history up to 12 months

***

### About Easyparser

[Easyparser](https://easyparser.com) is a real-time Amazon scraping API built for developers and data teams. No IP blocks, no CAPTCHAs, fast response times.

# Actor input Schema

## `keyword` (type: `string`):

Search keyword to query on Amazon. Example: vacuum bottle. Use either keyword or url, not both.

## `url` (type: `string`):

Full Amazon search URL. Use instead of a keyword if you want to search with specific filters already applied. Example: https://www.amazon.com/s?k=vacuum+bottle. Do not use both keyword and url at the same time.

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

Optional list of search keywords to process in one run, one per line. Each keyword is searched separately. Can be combined with the single keyword field.

## `urls` (type: `array`):

Optional list of full Amazon search URLs to process in one run, one per line.

## `domain` (type: `string`):

The Amazon marketplace to query.

## `sort_by` (type: `string`):

Sort search results by a specific order. Leave empty for Amazon's default featured order.

## `exclude_sponsored` (type: `boolean`):

If enabled, sponsored (ad) products are removed from results and only organic listings are returned.

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

Language code to request the Amazon search page in. Leave empty for the default marketplace language.

## `currency` (type: `string`):

Currency code for displaying prices. Leave empty to use the default marketplace currency. Example: usd, eur, gbp.

## `refinements` (type: `string`):

Apply category or attribute filters using Amazon's refinement format. Example: n:7141123011,p_123:502215. Category IDs and filter values can be found in Amazon search URLs.

## `max_pages` (type: `integer`):

Number of search result pages to retrieve. Each page returns up to 20-60 products and consumes 1 credit. Maximum is 5 pages.

## `api_key` (type: `string`):

Your personal Easyparser API key for higher request limits. Leave empty to use the shared demo key. Get your own free key at https://app.easyparser.com/signup - 100 free credits/month, no credit card required.

## Actor input object example

```json
{
  "keyword": "vacuum bottle",
  "url": "https://www.amazon.com/s?k=vacuum+bottle",
  "keywords": [
    "vacuum bottle",
    "logitech mouse"
  ],
  "urls": [
    "https://www.amazon.com/s?k=vacuum+bottle"
  ],
  "domain": ".com",
  "sort_by": "",
  "exclude_sponsored": false,
  "language": "",
  "currency": "usd",
  "refinements": "n:7141123011",
  "max_pages": 1
}
```

# Actor output Schema

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

Dataset where each row is one product from the search results page, containing position, ASIN, title, price, rating, Prime status, sponsored flag, brand, image, and purchase activity.

# 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 = {
    "keyword": "logitech",
    "domain": ".com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("easyparser/amazon-search-results").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 = {
    "keyword": "logitech",
    "domain": ".com",
}

# Run the Actor and wait for it to finish
run = client.actor("easyparser/amazon-search-results").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 '{
  "keyword": "logitech",
  "domain": ".com"
}' |
apify call easyparser/amazon-search-results --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,easyparser/amazon-search-results"
        }
    }
}
```

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/fdnuWpC7b5fCpwvAy/builds/wXf3iunlehDsHT9EI/openapi.json
