# Newegg Product Listings & Prices (`automation-lab/newegg-product-listings-prices`) Actor

Export public US Newegg search product IDs, titles, displayed prices and URLs for recurring assortment snapshots. Includes listing features and nullable seller/availability signals.

- **URL**: https://apify.com/automation-lab/newegg-product-listings-prices.md
- **Developed by:** [Automation Lab](https://apify.com/automation-lab) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.16 / 1,000 item processeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## Newegg Product Listings & Prices

Export public US Newegg products from keyword searches into structured snapshots. Get product identifiers, titles, displayed prices and canonical URLs for recurring assortment and price comparisons. Electronics buyers, resellers and catalog analysts can compare runs without maintaining their own HTML parser.

This is an independent tool, not affiliated with or endorsed by Newegg or Apify.

### What does it do?

The Actor searches the US storefront and reads public search-result cards. It follows bounded pagination and saves each product ID once per run. Schedule separate runs in Apify to collect snapshots, then compare them in your own spreadsheet or database. The Actor does not maintain historical prices or send change alerts itself.

### Who is it for?

Electronics buyers can inspect displayed offers; resellers can review public assortment; catalog analysts can join dated snapshots by itemId. This is not a checkout quote or inventory guarantee.

### Why use this Actor?

Use a small query snapshot to inspect displayed offers, or collect several pages for assortment analysis. Global deduplication avoids charging twice for the same product when queries overlap. No images are downloaded, no product-detail requests are made, and no user account is required.

### Getting started

1. Enter one or more keyword searches, such as `laptop` or `ssd`.
2. Set a global maximum number of products and a page limit per query.
3. Start the Actor and open the Products dataset.
4. Export JSON, CSV or Excel using Apify's dataset export controls.
5. Optionally create an Apify schedule and store subsequent snapshots externally.

Example input:

```json
{"searchQueries":["laptop"],"maxItems":5,"maxPagesPerQuery":1}
```

### Inputs

| Input | Default | Behavior |
|---|---|---|
| searchQueries | `["laptop"]` | 1–20 nonempty strings, at most 200 characters each. Trimmed and deduplicated case-sensitively. |
| maxItems | 100 | Global unique-product cap, 1–10000; no unlimited or zero option. |
| maxPagesPerQuery | 3 | 1–20 pages per query; stops sooner at source exhaustion or global limit. |

Queries run in order. Later queries may be skipped when the global limit is met. Newegg controls keyword relevance, ranking, sponsored products and search expansion; this is not exact-phrase or local title filtering. Product and category URLs are unsupported. Unknown fields and invalid inputs fail explicitly.

### Extracted fields

| Field | Meaning |
|---|---|
| itemId | Newegg product identifier used for deduplication |
| title | Displayed listing-card title |
| url | Product URL without query tracking |
| query, page | First search and one-based page yielding the product |
| price, currency | Current displayed numeric price or null; US dollars |
| priceText | Original card price text including labels |
| originalPrice | Displayed was price, or null |
| brand, imageUrl | Card brand and thumbnail URL, when exposed |
| shipping | Displayed shipping text, not a shipping quote |
| availability | Card stock text or Add to cart button signal, otherwise null |
| seller | Seller label only if present on the card, otherwise null |
| features | Selected listing-card features, not full specifications |
| scrapedAt | ISO timestamp for extraction |

Price is null when hidden or unavailable; the Actor never invents zero. Taxes, coupons, member offers and checkout discounts are not calculated. An Add to cart signal is not a guarantee of inventory or fulfillment.

### Output example

This abbreviated example follows a locally observed laptop listing; mutable source values can change:

```json
{
  "itemId": "N82E16834817336",
  "title": "Dell Pro 16 PC16250 16 inch Notebook",
  "price": 969.99,
  "currency": "USD",
  "originalPrice": 1199.99,
  "url": "https://www.newegg.com/dell-pro-16-pc16250-16-0-fhd-non-touch-screen-intel-core-5-120u-intel-graphics-16gb-memory-512-gb-ssd-magnetite/p/N82E16834817336",
  "query": "laptop",
  "page": 1,
  "seller": null,
  "features": ["Processor Name: Intel Core 5 120U", "Memory: 16GB"],
  "scrapedAt": "2026-10-02T06:00:00.000Z"
}
```

The default dataset contains product rows. The SUMMARY key-value record records the number of unique products and effective query limits. The output tab links both resources.

### How much does it cost to export Newegg product listings?

A one-time start event costs $0.005 per valid run. Each saved unique product uses the item event. Only delivered products are item-charged, not retries, duplicates or failed requests. Empty searches still incur the start event.

| Spend tier | Per product |
|---|---:|
| FREE | $0.00414 |
| BRONZE | $0.0036 |
| SILVER | $0.002808 |
| GOLD | $0.00216 |
| PLATINUM | $0.00216 |
| DIAMOND | $0.00216 |

At BRONZE, five products cost about $0.023, 25 cost $0.095, and 100 cost $0.365 including the start event. At FREE, five cost about $0.0257 and 100 cost $0.419. These are estimates for delivered products; no separate operator proxy charge is passed to you.

Apify spend tiers are based on qualifying aggregate monthly Store spend, not a private per-Actor volume schedule. Your effective prices are shown in the Actor's pricing panel. Runtime billing limits can end output before the requested cap. Invoice estimates are not guaranteed; refunds, disputes, fraud, taxes, corrections and contractual clawbacks can affect finalized amounts and payouts.

### Reliability and limitations

US residential proxy is used automatically and paid by the operator, with no proxy credentials required from users. Pages are fetched sequentially. A page gets at most three attempts using fresh proxy session identities; exhausted requests fail the run instead of falsely claiming an empty result.

A recognized no-results search succeeds with zero rows. Newegg may change its HTML, restrict requests or show different offers by region/session. Already-saved rows can remain in a failed run; inspect status before treating a snapshot as complete. Pagination is bounded, not exhaustive catalog coverage. Deduplication retains the first query provenance for each ID.

### Integrations

- Export CSV to Google Sheets or Excel and compare itemId/price between dated snapshots.
- Use Make or Zapier to move a completed dataset into a spreadsheet.
- Use dataset API pagination to load records into your own SQL warehouse.
- Schedule recurring runs in Apify and join them by itemId; alerts and historical storage are your integration's responsibility.

### API usage

Keep your Apify token private and use the standard Actor API. Replace TOKEN with your authorized token.

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~newegg-product-listings-prices/run-sync-get-dataset-items' \
  -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' \
  -d '{"searchQueries":["ssd"],"maxItems":10,"maxPagesPerQuery":1}'
```

JavaScript:

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/newegg-product-listings-prices').call({ searchQueries: ['ssd'], maxItems: 10, maxPagesPerQuery: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Python:

```python
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/newegg-product-listings-prices').call(run_input={'searchQueries': ['ssd'], 'maxItems': 10, 'maxPagesPerQuery': 1})
items = client.dataset(run['defaultDatasetId']).list_items().items
```

### MCP setup

Claude Code:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/newegg-product-listings-prices"
```

Claude Desktop, Cursor and VS Code can use the Actor-scoped MCP endpoint with the client's HTTP configuration:

```json
{"mcpServers":{"apify":{"type":"http","url":"https://mcp.apify.com?tools=automation-lab/newegg-product-listings-prices"}}}
```

Authenticate through the client's supported Apify authorization flow. Example prompts: “Export five Newegg laptop listings.” “Get ten SSD product prices with one search page.” MCP availability follows the deployed Actor and your account permissions; it is not a separate scraping route.

### Legality and data handling

Collect public commercial listing data only. You are responsible for your use, applicable laws and source rights; do not use this tool to bypass private account access. The Actor uses Apify's standard user terms and does not impose custom terms. It uses no AI in extraction or runtime output.

Processing is transient. Product rows, input and logs remain in your Apify run storage under your account's retention settings until you delete them or platform retention applies. The Actor does not automatically delete your datasets or create global named datasets. No user credentials or customer profiles are requested. Apify supplies compute, storage and residential proxy.

Failed operations send sanitized diagnostic input, exceptions and actor/build/run IDs to our private GlitchTip service for repair; secret fields and URL queries are removed and reports are retained for 30 days. Search queries appear in output and ordinary run logs, so never enter sensitive personal information. Contact support through the Actor's Apify Issues tab for data deletion or a malfunction.

### FAQ and troubleshooting

**Does this return full specifications or reviews?** No. Only features printed on search cards are included; reviews, detail pages and seller profiles are not fetched.

**Why is seller or price null?** The card did not disclose that field. Null is not a stock or pricing assertion.

**Why are fewer products returned than requested?** Page limits, source exhaustion, duplicate IDs or billing limits can stop output early. A limit is a ceiling, not a guarantee.

**What if the run fails?** Check the status message and retry later only after reviewing the cause. Repeated blocks or changed source markup should be reported in the Issues tab with the run URL and non-sensitive input.

**Does it keep price history?** No. Schedule runs and save/compare their datasets externally.

### Comparing snapshots

Join separate runs by itemId, keeping scrapedAt and query provenance. A missing product may reflect ranking, pagination or the chosen cap rather than delisting. Compare displayed prices only when both snapshots have non-null numeric values, and retain the source URL for manual review before a buying decision.

### Related Actors

For customer review text rather than product prices, see [Newegg Product Reviews Scraper](https://apify.com/automation-lab/newegg-product-reviews-scraper). It serves a different output entity and is not required to use this Actor.

# Changelog

This Actor's version history is a separate document: https://apify.com/automation-lab/newegg-product-listings-prices/changelog.md

# Actor input Schema

## `searchQueries` (type: `array`):

1–20 Newegg keyword searches, each at most 200 characters. Surrounding whitespace is trimmed; identical trimmed queries are deduplicated case-sensitively. Queries run sequentially; Newegg may include sponsored or loosely matching products.

## `maxItems` (type: `integer`):

Global run limit after product-ID deduplication across every query and page. Default 100; 1–10000, no zero/unlimited option. Later queries may not run once reached. Billing limits may stop output earlier.

## `maxPagesPerQuery` (type: `integer`):

Fetch at most this many search pages per query (default 3, range 1–20), stopping sooner at Newegg page exhaustion, explicit no results or the global product limit. Does not promise all catalog products.

## Actor input object example

```json
{
  "searchQueries": [
    "laptop"
  ],
  "maxItems": 5,
  "maxPagesPerQuery": 1
}
```

# Actor output Schema

## `dataset` (type: `string`):

One row per unique product ID in the run.

## `summary` (type: `string`):

Counts and effective search limits.

# 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 = {
    "searchQueries": [
        "laptop"
    ],
    "maxItems": 5,
    "maxPagesPerQuery": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/newegg-product-listings-prices").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 = {
    "searchQueries": ["laptop"],
    "maxItems": 5,
    "maxPagesPerQuery": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/newegg-product-listings-prices").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 '{
  "searchQueries": [
    "laptop"
  ],
  "maxItems": 5,
  "maxPagesPerQuery": 1
}' |
apify call automation-lab/newegg-product-listings-prices --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/newegg-product-listings-prices"
        }
    }
}
```

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/GbjTTftPSiUklBVpP/builds/fb1JW2hXqwFU0TILa/openapi.json
