# Micro Center Product Scraper: Prices & Store Stock (`memo23/microcenter-product-scraper`) Actor

Scrape Micro Center products by keyword, category or product URL: price, original price and savings, SKU, MPN, UPC, stock count at your store, in-stock status at all 30 stores, open-box offers, full specs, ratings and reviews. Pick any store or online. Clean JSON, CSV or Excel.

- **URL**: https://apify.com/memo23/microcenter-product-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** E-commerce
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 overview products

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

## Micro Center Product Scraper

Turn any Micro Center search, category, or product link into structured product data, for the store you pick.
Pull price, original price and savings, the live stock count at a chosen store, open-box offers, MPN, UPC, the full spec table, ratings and recent reviews from microcenter.com. Detail mode also tells you which of the 30 Micro Center stores have the product in stock. Output is clean JSON, CSV or Excel, one row per product.

![How the Micro Center Product Scraper works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-microcenter.png)

### Why Use This Scraper

- ✅ Three ways in: free-text keywords, category or search URLs, and direct product links, mixed in one run
- ✅ Any store: choose one of 30 physical stores or the online (ship-to-home) store, and get that store's price and stock
- ✅ Real stock counts, not a yes/no flag: `3 IN STOCK`, `25+ IN STOCK`, `SOLD OUT`, parsed into numbers you can sort on
- ✅ In-store-only products included: most graphics cards and CPUs never show up in the online store, a physical store lists them
- ✅ Open-box deals: how many units, the lowest price, and in Detail mode each unit's condition, warranty and price
- ✅ Chain-wide availability: one Detail row shows in-stock status at every Micro Center store
- ✅ MPN and UPC on every Detail row for matching against Amazon, Newegg, Best Buy or your own catalog
- ✅ 96 products per page fetch, so overview runs are fast
- ✅ Bot protection is handled for you: no proxies, no API keys, no browser setup

### Overview

The Micro Center Product Scraper is built for price trackers, resellers, PC builders, deal hunters and catalog teams who need structured data from microcenter.com, the US computer and electronics retailer.

Micro Center is a store-first retailer. Prices, stock and open-box units are tied to a physical store, and many of its best-known products (graphics cards, CPUs, motherboard bundles) are sold in store only. That is why every run of this actor is tied to one store, and why the store picker matters more here than on other retail scrapers.

Every run returns product rows. Whether you start from a keyword, a category page, or a single product URL, the dataset is a flat stream of products.

Two modes control how much you get per product:

- **Overview** (default) reads the search-result cards: price, original price, savings, SKU, brand, image, category, the stock line for your store, and the open-box count. One page fetch returns up to 96 products, so this is the fast, low-cost option for price and stock tracking.
- **Detail** opens each product page and adds MPN, UPC, description, breadcrumbs, full-size images, rating, review count, the 10 most recent reviews, the grouped spec table, the aisle location, the purchase limit, every open-box unit, and in-stock status at all 30 stores.

Some fields are naturally sparse. `originalPrice` and `savings` are `null` when a product is not discounted, `openBoxCount` is `null` when the store has no open-box units, bundles have no `brand`, `mpn` or `upc`, and `stockCount` is `null` for the online store, which shows a ship-time line instead of a count. Those keys stay present in every row so your columns line up across the whole export.

### Supported Inputs

#### Keyword mode

Type what you would type in the Micro Center search bar, one search per line. Every result lands in the same dataset, tagged with the keyword it came from.

```json
{
  "keywords": ["rtx 5070", "ddr5 32gb", "4tb ssd"],
  "storeId": "101"
}
```

#### Start URL types

Paste microcenter.com links directly. The actor detects each one and routes it to the right handler.

| Type | Pattern | Example |
|---|---|---|
| Search results | `/search/search_results.aspx?Ntt=<keyword>` | `https://www.microcenter.com/search/search_results.aspx?Ntt=gaming+laptop` |
| Category | `/search/search_results.aspx?fq=category:<name>\|<id>` | `https://www.microcenter.com/search/search_results.aspx?fq=category:Graphics+Cards\|518` |
| Product page | `/product/<id>/<slug>` | `https://www.microcenter.com/product/705543/klevv-cras-c910g-1tb-3d-tlc-nand-flash-pcie-gen-4-x4-nvme-m2-internal-ssd` |

Search and category pages are swept page by page, 96 products at a time, with any filters the URL already carries. Product pages are fetched directly and always run first. A `storeid` parameter in a pasted URL overrides the store picked in the input for that URL. Each product appears once per run, so to compare the same product across stores, run once per store.

```json
{
  "startUrls": [
    { "url": "https://www.microcenter.com/search/search_results.aspx?fq=category:Graphics+Cards|518" },
    { "url": "https://www.microcenter.com/product/705543/klevv-cras-c910g-1tb-3d-tlc-nand-flash-pcie-gen-4-x4-nvme-m2-internal-ssd" }
  ],
  "storeId": "131"
}
```

#### Stores

Pick the store by its 3-digit number in `storeId`.

| State | Stores |
|---|---|
| AZ | Phoenix (205) |
| CA | Tustin (101), Santa Clara (195) |
| CO | Denver (181) |
| FL | Miami (185) |
| GA | Duluth (065), Marietta (041) |
| IL | Chicago (151), Westmont (025) |
| IN | Indianapolis (165) |
| KS | Overland Park (191) |
| MA | Cambridge (121) |
| MD | Parkville (125), Rockville (085) |
| MI | Madison Heights (055) |
| MN | St. Louis Park (045) |
| MO | Brentwood (095) |
| NC | Charlotte (175) |
| NJ | North Jersey (075) |
| NY | Brooklyn (115), Flushing (145), Westbury (171), Yonkers (105) |
| OH | Columbus (141), Mayfield Heights (051), Sharonville (071) |
| PA | St. Davids (061) |
| TX | Dallas (131), Houston (155) |
| VA | Fairfax (081) |
| Online | Ships to home (029) |

#### Unsupported inputs

- ❌ Account, cart, wishlist or checkout pages behind the Micro Center login
- ❌ Store-info, service and article pages (anything that is not a search, category or product page)
- ❌ Hosts outside `microcenter.com`

### Use Cases

| Audience | Use case |
|---|---|
| **Price trackers and deal sites** | Watch Micro Center prices, savings and open-box drops per store |
| **Resellers and arbitrage** | Find in-stock GPUs, CPUs and bundles at a given store, then match by UPC or MPN elsewhere |
| **PC builders and system integrators** | Check part availability across nearby stores before a build or a bulk order |
| **Brands and MAP teams** | Monitor advertised prices and discounts on your SKUs across the chain |
| **Catalog and PIM teams** | Enrich product records with MPN, UPC, spec tables, images and descriptions |
| **Market researchers** | Study US PC-hardware pricing, assortment, ratings and review volume |

### How It Works

1. **Input** - add keywords, category or search URLs, and product URLs (any mix), and pick a store.
2. **Collect products** - product URLs run first, then each keyword and listing URL is swept in your chosen sort order, 96 products per page, until `maxItems` is reached.
3. **Read the store's numbers** - price, original price, savings, the stock count at your store and the open-box count come straight from each result card.
4. **Enrich (Detail mode)** - each product page is opened for MPN, UPC, specs, reviews, open-box units, the aisle location and in-stock status at every store.
5. **Output** - one product per dataset row, exportable as JSON, CSV or Excel, or read live through the Apify API.

### Input Configuration

Every field below maps one-to-one to the actor's input schema.

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `keywords` | `array<string>` | keywords or startUrls | - | Free-text Micro Center searches, one per line (e.g. `rtx 5070`) |
| `startUrls` | `array` | keywords or startUrls | - | Search, category or product URLs; mix with keywords |
| `scrapeMode` | `string` enum | optional | `overview` | `overview` (search-card fields) or `detail` (specs, UPC, reviews, all-store stock) |
| `storeId` | `string` enum | optional | `025` | 3-digit store number; `029` is the online store |
| `sort` | `string` enum | optional | `match` | `match`, `pricelow`, `pricehigh`, `rating`, `numreviews`, `newest` |
| `maxItems` | `integer` | optional | `100` | Cap across all keywords and URLs combined |
| `inStockOnly` | `boolean` | optional | `false` | Skip products sold out at the selected store; skipped products are not charged |
| `maxConcurrency` | `integer` | optional | `8` | Parallel page fetches, 1 to 20 |
| `cacheMaxAgeHours` | `integer` | optional | `1` | Reuse a page your own account fetched within this many hours; `0` always fetches fresh |

#### Common scenarios

**1. Fast price and stock pull by keyword**

```json
{
  "keywords": ["rtx 5070"],
  "scrapeMode": "overview",
  "storeId": "101",
  "sort": "pricelow",
  "maxItems": 200
}
```

**2. What is actually on the shelf at my store**

```json
{
  "startUrls": [{ "url": "https://www.microcenter.com/search/search_results.aspx?fq=category:Graphics+Cards|518" }],
  "scrapeMode": "overview",
  "storeId": "131",
  "inStockOnly": true,
  "maxItems": 300
}
```

**3. Full specs, UPC and chain-wide availability for specific products**

```json
{
  "startUrls": [
    { "url": "https://www.microcenter.com/product/691231/gigabyte-nvidia-geforce-rtx-5070-windforce-sff-oc-triple-fan-12gb-gddr7-pcie-50-graphics-card" }
  ],
  "scrapeMode": "detail",
  "storeId": "101"
}
```

**4. Hourly price monitor, always fresh**

```json
{
  "keywords": ["ryzen 7 9800x3d", "ryzen 9 9950x3d"],
  "scrapeMode": "overview",
  "storeId": "025",
  "cacheMaxAgeHours": 0
}
```

### Output Overview

Each dataset item is one product. The row shape depends on `scrapeMode`:

- **Overview rows** carry the identity, price and store-stock fields: `productId`, `sku`, `name`, `brand`, `price`, `originalPrice`, `savings`, `onSale`, `category`, `storeId`, `storeName`, `stockStatus`, `inStock`, `stockCount`, `stockText`, `inStoreOnly`, `openBoxCount`, `openBoxFromPrice`, `promotion`, `features`, `searchRank`, `imageUrl`, `url` and `scrapedAt`.
- **Detail rows** carry everything above plus `mpn`, `upc`, `description`, `breadcrumbs`, `images`, `rating`, `reviewCount`, `latestReviews`, `availabilityText`, `itemCondition`, `purchaseLimit`, `aisleLocation`, `openBoxOffers`, `storeAvailability`, `storesInStock` and `specifications`.

`price`, `originalPrice`, `savings` and `openBoxFromPrice` are numbers in USD, so you can sum and sort without stripping symbols. `stockStatus` is one of `IN_STOCK`, `SOLD_OUT`, `SHIPS` (online store) or `UNKNOWN`. Micro Center shows large quantities as `25+`; that comes back as `stockCount: 25` with `stockCountIsMinimum: true`.

### Output Samples

#### Overview row

```json
{
  "scrapeMode": "overview",
  "searchKeyword": "ssd",
  "sourceUrl": "https://www.microcenter.com/search/search_results.aspx?Ntt=ssd&rpp=96&storeid=025",
  "productId": "711196",
  "sku": "040881",
  "name": "KLEVV C910G 500GB 3D TLC NAND PCIe Gen 4 x4 NVMe M.2 Internal SSD",
  "brand": "KLEVV",
  "url": "https://www.microcenter.com/product/711196/klevv-c910g-500gb-3d-tlc-nand-pcie-gen-4-x4-nvme-m2-internal-ssd",
  "imageUrl": "https://productimages.microcenter.com/0711196_040881.jpg",
  "price": 109.99,
  "originalPrice": 299.99,
  "savings": 190,
  "onSale": true,
  "currency": "USD",
  "category": "SSD (Solid State Drives)",
  "department": "Drives",
  "storeId": "025",
  "storeName": "Westmont",
  "stockStatus": "IN_STOCK",
  "inStock": true,
  "stockCount": 3,
  "stockCountIsMinimum": false,
  "stockText": "3 IN STOCK at Westmont Store",
  "inStoreOnly": false,
  "openBoxCount": null,
  "openBoxFromPrice": null,
  "promotion": null,
  "features": [],
  "searchRank": 98,
  "scrapedAt": "2026-10-11T19:19:47.127Z"
}
```

#### Detail row (reviews, stores and specifications trimmed for readability)

```json
{
  "scrapeMode": "detail",
  "searchKeyword": "rtx 5070",
  "sourceUrl": "https://www.microcenter.com/search/search_results.aspx?Ntt=rtx+5070&rpp=96&storeid=101",
  "productId": "691231",
  "sku": "813972",
  "name": "Gigabyte NVIDIA GeForce RTX 5070 WINDFORCE SFF OC Triple Fan 12GB GDDR7 PCIe 5.0 Graphics Card",
  "brand": "Gigabyte",
  "url": "https://www.microcenter.com/product/691231/gigabyte-nvidia-geforce-rtx-5070-windforce-sff-oc-triple-fan-12gb-gddr7-pcie-50-graphics-card",
  "imageUrl": "https://productimages.microcenter.com/691231_813972_01_front_zoom.jpg",
  "price": 839.99,
  "originalPrice": null,
  "savings": null,
  "onSale": false,
  "currency": "USD",
  "category": "Graphics Cards",
  "department": "Graphics Cards",
  "storeId": "101",
  "storeName": "Tustin",
  "stockStatus": "SOLD_OUT",
  "inStock": false,
  "stockCount": 0,
  "stockCountIsMinimum": false,
  "stockText": "0 NEW IN STOCK at Tustin Store",
  "inStoreOnly": true,
  "openBoxCount": 1,
  "openBoxFromPrice": 755.96,
  "promotion": "Get Control Resonant with Select Nvidia RTX 50 Series Products",
  "features": [],
  "searchRank": 1,
  "mpn": "GVN5070WF3OC12G",
  "upc": "889523048191",
  "description": "The WINDFORCE cooling system delivers exceptional thermal performance through a combination of cutting-edge technologies ...",
  "breadcrumbs": ["Computer Parts", "Graphics Cards & Accessories", "Graphics Cards"],
  "images": [
    "https://productimages.microcenter.com/691231_813972_01_front_zoom.jpg",
    "https://productimages.microcenter.com/691231_813972_02_front_zoom.jpg"
  ],
  "rating": 4.76,
  "reviewCount": 104,
  "latestReviews": [
    {
      "rating": 5,
      "text": "The time finally came to upgrade my 2080 Super and I was able to snag one of the 5070s on sale ...",
      "author": "Adam Hubbell",
      "date": "2026-09-22"
    }
  ],
  "availabilityText": "Available for In-Store Pickup Only.",
  "itemCondition": "RefurbishedCondition",
  "purchaseLimit": "Limit 1 per household",
  "aisleLocation": "Aisle 57, Aisle 58",
  "openBoxOffers": [
    {
      "openBoxId": "417703",
      "condition": "INCOMPLETE: SOLD AS IS",
      "warranty": "REMAINING MANUFACTURER WARRANTY APPLIES",
      "salesTerms": "Available In-Store Only SEE WARRANTY & SUPPORT FOR DET",
      "price": 755.96
    }
  ],
  "storeAvailability": [
    { "storeId": "101", "storeName": "Tustin", "state": "CA", "inStock": false },
    { "storeId": "181", "storeName": "Denver", "state": "CO", "inStock": true },
    { "storeId": "131", "storeName": "Dallas", "state": "TX", "inStock": true }
  ],
  "storesInStock": 8,
  "specifications": {
    "Chipset": {
      "GPU Chipset": "GeForce RTX 5070",
      "PCIe Bandwidth": "PCIe 5.0 x16",
      "Core Clock Speed": "2542MHz"
    },
    "Memory": {
      "Video Memory": "12 GB",
      "Memory Type": "GDDR7"
    },
    "Thermal & Power": {
      "Power Connector": "1 x 16-pin",
      "Recommended Power Supply": "750 Watts"
    }
  },
  "scrapedAt": "2026-10-11T19:22:10.949Z"
}
```

### Key Output Fields

#### Core (both modes)

- `productId`, `sku` - Micro Center's product ID (the number in the product URL) and its SKU
- `name`, `brand` - product title and brand (`brand` is `null` on bundles)
- `price`, `originalPrice`, `savings`, `onSale` - current price, the struck-through price, the difference, and a discount flag
- `storeId`, `storeName` - the store the numbers belong to
- `stockStatus`, `inStock`, `stockCount`, `stockCountIsMinimum`, `stockText` - the stock line for that store, parsed and raw
- `inStoreOnly` - true when the product cannot be shipped
- `openBoxCount`, `openBoxFromPrice` - open-box units at the store and the cheapest one
- `promotion` - the promo banner on the product, when there is one
- `features` - the short feature bullets Micro Center shows on some result cards (laptops, desktops)
- `category`, `department` - Micro Center's own category labels
- `searchRank` - position in the search results, counted across pages
- `searchKeyword`, `sourceUrl` - which of your inputs produced the row
- `imageUrl`, `url`, `scrapedAt` - image, canonical product URL, and capture time

#### Detail mode only

- `mpn`, `upc` - manufacturer part number and UPC barcode
- `description`, `breadcrumbs`, `images` - marketing copy, category path, and full-size gallery images
- `rating`, `reviewCount`, `latestReviews` - average stars, number of reviews, and up to 10 recent reviews (rating, text, author, date)
- `availabilityText` - Micro Center's fulfilment line (e.g. `Available for In-Store Pickup Only.`)
- `purchaseLimit` - per-household limit when one applies
- `aisleLocation` - where the product sits in the selected store
- `openBoxOffers` - every open-box unit: ID, condition, warranty, sales terms, price
- `storeAvailability`, `storesInStock` - in-stock flag for each store, and how many physical stores have it
- `specifications` - the spec table, grouped the way the page groups it (`Chipset`, `Memory`, `Warranty`, ...)

### FAQ

#### Why do I have to pick a store?

Micro Center prices, stock and open-box units belong to a store, and the site itself asks every visitor to choose one. The online store (`029`) lists only products that ship, which leaves out most graphics cards and CPUs. A physical store lists the full range it sells, with live counts.

#### What is the difference between Overview and Detail mode?

Overview reads the search-result cards: price, savings, SKU, brand, the stock line for your store and the open-box count. It is fast because one page holds up to 96 products. Detail opens every product page as well and adds MPN, UPC, specs, reviews, open-box units, the aisle and stock status at all 30 stores. Use Overview for price and stock tracking and Detail when you need identifiers, specs or the chain-wide picture.

#### Does Detail mode give the stock count at every store?

It gives an in-stock yes/no for every store, which is what Micro Center publishes. The exact count is published only for the selected store. To get counts at several stores, run the same input once per store.

#### What does `stockCountIsMinimum` mean?

Micro Center caps the displayed quantity at `25+`. In that case `stockCount` is 25 and `stockCountIsMinimum` is true, meaning "at least 25".

#### A product shows `0 NEW IN STOCK` but has an open-box unit. How is that reported?

As `stockStatus: "SOLD_OUT"` with `openBoxCount` and `openBoxFromPrice` filled. New stock and open-box stock are kept apart so a filter on `inStock` means new units.

#### What URLs can I paste into `startUrls`?

Any `search_results.aspx` URL from microcenter.com (keyword searches, category pages, filtered or sorted views) and any `/product/<id>/...` page. Copy the URL from your browser after applying the filters you want. Other page types are skipped and listed in the log.

#### Do I need proxies or an API key?

No. The actor handles the site's bot protection on its own. You do not supply any proxy, key or login.

#### How fresh is the data?

Every run reads the live site. If the same account fetched the same page within the last hour, that copy is reused by default, which makes repeat runs faster. Set `cacheMaxAgeHours` to `0` when you need every page fetched again, for example in a price monitor that runs every few minutes.

#### What does the free plan get?

Runs on the Apify free plan return up to 25 products. The first 3 are complete; after that the price and live-stock fields are hidden while every other field stays. Any paid Apify plan returns every field for every product.

#### How am I billed?

Pay per event, with three events: Actor Start, one event per Overview product, and one event per Detail product. Detail costs more per product because it opens each product page. Products skipped by `inStockOnly` and failed pages are not charged. Exact amounts are on the actor's **Pricing** tab, and you can cap a run's cost with the max-charge setting.

#### How fast is it?

An Overview run of a few hundred products usually finishes in one to two minutes, because one page holds up to 96 products. Detail runs open one page per product, several at a time; plan for roughly 10 to 20 products a minute.

### Support

Found a bug or need a new field? Open an issue on the actor's [Issues tab](https://apify.com/memo23/microcenter-product-scraper/issues) or email muhamed.didovic@gmail.com.

### Additional Services & More Scrapers

Need a custom export shape, a scheduled price or restock monitor, or alerts when a product lands at your store? I take tailored work: email muhamed.didovic@gmail.com.

If this actor is useful, you might also like:

- [**Amazon Search & Product Scraper**](https://apify.com/memo23/amazon-search) - prices, BSR and buy box from Amazon search and product pages
- [**eBay Search Scraper**](https://apify.com/memo23/apify-ebay-search-cheerio) - active and sold listings with prices across eBay markets
- [**Google Shopping Scraper**](https://apify.com/memo23/google-shopping-scraper) - product prices and merchants across Google Shopping
- [**Lowe's Scraper**](https://apify.com/memo23/lowes-scraper) - products, prices, store stock and specs from Lowe's
- [**BAUHAUS Product Scraper**](https://apify.com/memo23/bauhaus-product-scraper) - prices, EAN and specs from the German DIY retailer

Full list at [apify.com/memo23](https://apify.com/memo23).

### 🤖 For AI Agents & LLM Apps

Compact reference for agents calling this actor via the [Apify MCP server](https://mcp.apify.com) or the Apify API (actor: `memo23/microcenter-product-scraper`).

**Purpose:** scrape product, price and per-store stock data from microcenter.com (US computer and electronics retailer) by keyword, search or category URL, or product URL.

**Minimal input:**

```json
{
  "keywords": ["rtx 5070"],
  "scrapeMode": "overview",
  "storeId": "101",
  "maxItems": 25
}
```

**Output:** one dataset row per product - `productId`, `sku`, `name`, `brand`, `price` (number, USD), `originalPrice`, `savings`, `onSale`, `storeId`, `storeName`, `stockStatus` (`IN_STOCK` | `SOLD_OUT` | `SHIPS` | `UNKNOWN`), `inStock`, `stockCount`, `stockCountIsMinimum`, `stockText`, `inStoreOnly`, `openBoxCount`, `openBoxFromPrice`, `category`, `searchRank`, `imageUrl`, `url`, `scrapedAt`. Detail mode adds `mpn`, `upc`, `description`, `breadcrumbs[]`, `images[]`, `rating`, `reviewCount`, `latestReviews[]`, `availabilityText`, `purchaseLimit`, `aisleLocation`, `openBoxOffers[]`, `storeAvailability[]` (`storeId`, `storeName`, `state`, `inStock`), `storesInStock`, and `specifications{}` (grouped label/value pairs, keys vary by category).

**Behaviors an agent should know:**

- Always set `maxItems`; it caps total products across all keywords and URLs. Free-plan runs are capped at 25, and after the first 3 rows the price and live-stock fields are `null`.
- Always set `storeId`. Prices and stock are per store. `029` is the online store and hides in-store-only products (most GPUs and CPUs); use a physical store number to see them.
- `scrapeMode: "overview"` is the cheapest path (up to 96 products per page fetch). Switch to `"detail"` only when you need MPN/UPC, specs, reviews, open-box units or all-store availability.
- `storeAvailability` is a yes/no per store. An exact count exists only for the selected store (`stockCount`). `stockCount: 25` with `stockCountIsMinimum: true` means "25 or more".
- `inStockOnly: true` drops products sold out at the selected store before they are charged.
- Pages your account fetched in the last hour are reused by default. Pass `cacheMaxAgeHours: 0` when the question is about the price or stock right now.
- Product URLs in `startUrls` run before keywords and listing URLs. A `storeid` in a URL overrides `storeId` for that URL.
- Billing is pay-per-event: one Actor Start, plus one Overview or Detail event per product (see the Pricing tab).
- Public data only, microcenter.com only. No login-gated pages.

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Micro Electronics, Inc. (Micro Center) or any of its group companies. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available product, category and search pages on microcenter.com. It does not touch authenticated endpoints, account areas, or any content behind the Micro Center login. Users are responsible for ensuring their use complies with microcenter.com's Terms of Service, applicable data-protection law (GDPR, CCPA, and similar), and any contractual obligations of their own organization.

### SEO Keywords

micro center scraper, microcenter scraper, scrape micro center, microcenter.com scraper, Apify micro center, micro center api, micro center price tracker, micro center stock checker, micro center inventory checker, micro center open box deals, micro center gpu stock, rtx 5070 stock tracker, rtx 5090 in stock, pc parts price scraper, computer hardware price monitoring, electronics retailer scraper, per-store inventory data, upc product data, mpn product matching, product specification scraper, competitor price tracking, map price monitoring, restock alerts data, ecommerce product data

# Actor input Schema

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

Free-text Micro Center searches, exactly what you would type in the site's search bar (for example rtx 5070, ddr5 32gb, 4tb ssd, gaming laptop). One search per line; all results land in the same dataset.

## `startUrls` (type: `array`):

Direct microcenter.com URLs. Search and category pages (…/search/search_results.aspx?Ntt=… or ?fq=category:…) are swept page by page, 96 products at a time. Product pages (…/product/705543/…) are scraped directly. Mix freely with keywords. A storeid in the URL overrides the store picked below.

## `scrapeMode` (type: `string`):

Overview = the search-result fields (price, savings, SKU, brand, image, stock at your store, open-box count). Fastest and cheapest. Detail = everything in Overview PLUS MPN, UPC, the full spec table, description, breadcrumbs, full-size images, rating, review count, recent reviews, open-box offers, aisle location, purchase limit and in-stock status at every Micro Center store.

## `storeId` (type: `string`):

The Micro Center store whose prices, stock counts and open-box units you want. 'Online' lists only items that ship to your home. Physical stores also list in-store-only items (most graphics cards and CPUs) with a live count such as 3 IN STOCK or 25+ IN STOCK.

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

Micro Center's own result ordering, applied to keyword searches and to URLs that don't already carry a sort.

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

Maximum products to return across all keywords and URLs combined. Free-plan runs are capped at 25.

## `inStockOnly` (type: `boolean`):

Skip products that are sold out at the selected store. Skipped products are not charged.

## `maxConcurrency` (type: `integer`):

How many pages to fetch in parallel. The default suits almost every run.

## `cacheMaxAgeHours` (type: `integer`):

When one of your earlier runs already fetched a page, reuse it if it is younger than this many hours instead of fetching it again. Faster and gentler on Micro Center; only your own account's pages are ever reused. The default is 1 hour because these rows carry a LIVE price and a live per-store stock count: a longer window trades freshness for speed, and a page reused after a day reports yesterday's price and yesterday's stock as today's. One hour still collapses the repeat fetching inside a big job. Set 0 to always fetch fresh.

## Actor input object example

```json
{
  "keywords": [
    "ssd"
  ],
  "scrapeMode": "overview",
  "storeId": "025",
  "sort": "match",
  "maxItems": 100,
  "inStockOnly": false,
  "maxConcurrency": 8,
  "cacheMaxAgeHours": 1
}
```

# Actor output Schema

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

No description

## `overview` (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": [
        "ssd"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/microcenter-product-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": ["ssd"] }

# Run the Actor and wait for it to finish
run = client.actor("memo23/microcenter-product-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": [
    "ssd"
  ]
}' |
apify call memo23/microcenter-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,memo23/microcenter-product-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/70xxoSQQYEbZJXce0/builds/e4KNHfo2pPCr1TuAR/openapi.json
