# Newegg Scraper 🛒 (prices, stock, ratings, reviews) (`tagadanar/newegg-scraper`) Actor

Scrape Newegg product listings by keyword or URL: title, price, shipping, stock, rating, review count, brand, item number and image. Fast HTTP, no browser, no start fee. $3.50 per 1,000 products, listing data only (not full product pages). US residential proxy, you pay usage.

- **URL**: https://apify.com/tagadanar/newegg-scraper.md
- **Developed by:** [Tagada Data](https://apify.com/tagadanar) (community)
- **Categories:** E-commerce, Automation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.45 / 1,000 product scrapeds

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/platform/actors/running/actors-in-store#pay-per-event

## 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

## Newegg Scraper: Product Prices, Stock, Ratings & Item Numbers

Pull structured product data from Newegg for price monitoring and repricing. Give it a keyword or a Newegg URL and you get back a clean list of products: title, product URL, item number, price, shipping, stock, rating, review count, brand and image.

It reads Newegg's own listing tiles over plain HTTP and follows the search-to-category redirect, so it is fast and returns complete records without driving a browser. Newegg is a US storefront, so the actor runs through Apify Residential pinned to the US by default; that proxy usage is billed to your run at Apify cost, with nothing hidden.

### What you get per product

| Field | Description |
| --- | --- |
| `title` | Product title as shown on the tile |
| `url` | Product page URL |
| `itemNumber` | Newegg item number (e.g. `N82E16814930138`, or a `9SIA...` marketplace id) |
| `price`, `priceLabel` | Numeric USD price and the label as shown (`$599.99`) |
| `shipping` | Shipping line (`Free Shipping`, `$5.99 Shipping`, ...) |
| `inStock` | True when the tile offers add-to-cart, false when out of stock, null if undetermined |
| `rating`, `reviewCount` | Star rating and number of reviews |
| `brand` | Brand from the tile's branding logo |
| `imageUrl` | Product thumbnail |
| `isSponsored` | True for promoted tiles when detectable |
| `searchKeyword`, `sourceUrl`, `scrapedAt` | The search that found it, the page it came from, and the run timestamp |

### Who uses it

- **Price-intelligence and repricing teams** tracking competitor prices and stock across SKUs.
- **Retailers and resellers** monitoring their own and rivals' Newegg listings.
- **Market research** mapping a category by price, brand and rating.
- **Agents and data pipelines** that need product data as clean JSON.

### Input examples

Track a few keywords:

```json
{
  "search": ["rtx 4070", "1tb nvme ssd"],
  "maxResults": 300
}
```

Scrape a specific Newegg category or search URL:

```json
{
  "search": ["https://www.newegg.com/p/pl?d=gpu"],
  "maxResults": 200,
  "maxPagesPerSource": 5
}
```

### How paging works

A keyword goes to Newegg's search endpoint, which redirects to the matching category listing. The actor then walks listing pages with Newegg's `Page` query parameter, deduping products by item number, and stops a search as soon as a page returns no new products (or when it hits your `maxPagesPerSource` or `maxResults`). If Newegg narrows a keyword to a single page of results, you get that one page. This means you never pay for duplicate rows and the actor never loops on pagination.

### Pricing

You pay per product returned. Platform usage (compute and US residential proxy) is billed to your run at Apify cost, so there is no subscription.

| Event | Price |
| --- | --- |
| Actor start | $0.00005 (≈ zero) |
| Product scraped | $3.50 per 1,000 |

The start fee is a fraction of a cent; on any normal run it is noise next to the per-product price and the platform usage billed to your run.

### FAQ

**Do I need a proxy?** Newegg is a US storefront and applies bot checks. The actor defaults to Apify Residential pinned to the US, which renders the storefront normally over plain HTTP. Datacenter proxies may also work; you can override the proxy in the input. Platform usage is billed to your run.

**Keyword or URL, what is the difference?** A keyword uses Newegg's search, which resolves to the closest category listing. A URL is fetched as-is, so paste an exact category or search page when you want precise control.

**Does it scrape product detail pages?** No. It reads the listing tiles, which already carry price, shipping, stock, rating and brand. Keeping to listings makes runs fast and cheap.

**How many products can I pull?** Set `maxResults`. The actor walks pages per search up to `maxPagesPerSource`, deduping by item number, so pass several keywords or category URLs for broad coverage.

***

### Something missing?

If you need an extra field, another source, or a different output, open an issue on this Actor and describe it. I read every request and small additions usually ship within days. More data and lead generation Actors are on [my profile](https://apify.com/tagadanar).

*Newegg scraper, Newegg product data, Newegg price monitoring, scrape Newegg prices, repricing data, Newegg stock tracker, ecommerce price intelligence, competitor price monitoring, Newegg item numbers, product ratings scraper.*

# Actor input Schema

## `search` (type: `array`):

One search per entry. Use a product keyword (e.g. <code>rtx 4070</code>, <code>1tb nvme ssd</code>) or paste a Newegg search or category URL (e.g. <code>https://www.newegg.com/p/pl?d=gpu</code> or a <code>/Category/ID-38</code> page). Keywords hit Newegg's search, which resolves to the matching category listing.

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

Total products to return across all searches. Each listing page holds roughly a dozen to a few dozen tiles.

## `maxPagesPerSource` (type: `integer`):

How many listing pages to walk per keyword/URL before moving on. The actor stops early when a page returns no new products.

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

Newegg is a US storefront, so this defaults to Apify Residential pinned to the US. Datacenter proxies may also work; residential US is the safe default. Platform usage is billed to your run.

## Actor input object example

```json
{
  "search": [
    "rtx 4070"
  ],
  "maxResults": 20,
  "maxPagesPerSource": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `products` (type: `string`):

One item per product in the default dataset.

# 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 = {
    "search": [
        "rtx 4070"
    ],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("tagadanar/newegg-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 = {
    "search": ["rtx 4070"],
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("tagadanar/newegg-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "search": [
    "rtx 4070"
  ],
  "maxResults": 20
}' |
apify call tagadanar/newegg-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=tagadanar/newegg-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/iiYtOYSCt7p1N4VBW/builds/ggvqLvbcC9p7pTn1u/openapi.json
