# 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
- **Stats:** 12 total users, 1 monthly users, 97.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# 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`). Use either `keyword` or `url`, not both |
| `url` | Yes\* | Full Amazon search URL with filters already applied |
| `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 [easyparser.gitbook.io](https://easyparser.gitbook.io/easyparser-documentation/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"
}
```

***

### 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://easyparser.gitbook.io/easyparser-documentation/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.

## `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",
  "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/3XdptfPgfL5abqrIL/openapi.json
