# Barnes & Noble Stock Checker: Store Inventory & Restocks (`s_actors/barnes-noble-stock-checker`) Actor

Barnes & Noble stock checker and scraper: is a book, LEGO set, Funko or toy in stock at each B\&N store near any ZIP code or city, with address, phone, hours and distance, plus price, sale price and online availability. Search by keyword, link or ISBN. Scheduled runs = restock alerts.

- **URL**: https://apify.com/s_actors/barnes-noble-stock-checker.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 product at a stores

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

### Barnes & Noble Stock Checker: Store Inventory & Restock Alerts

**Check whether a book, LEGO set, Funko Pop or toy is in stock at the Barnes & Noble stores near any ZIP code or city.** For every product you get the nearby stores, nearest first: **in stock now or sold out**, store name, address, distance, phone and hours, plus the price, sale price and online availability. Search by keyword (`lego icons`, `funko pop`, `atomic habits`), barnesandnoble.com search link with its filters, product link, **ISBN, EAN or UPC**; check stores by **ZIP code or city** (up to 50 nearest stores each) or by **store number**.

Scheduled runs with **Only report changes** become **Barnes & Noble restock alerts**: a row only when a store gets a product back, sells out, the price changes, or a **new product appears in your search** (a new B\&N Exclusive edition, LEGO or Funko release).

Use cases: track products & prices, get deal & restock alerts, build market datasets of Barnes & Noble store stock. No login, no browser: a **Barnes & Noble scraper** and **Barnes & Noble inventory API** that returns clean JSON, CSV or Excel.

#### What makes it different

| | |
| --- | --- |
| 🏬 **Every store near you at once** | Up to 50 nearest stores per ZIP code or city and product, one row each, nearest first, with distance in miles; or exact stores by number |
| ✅ **In stock at the store right now** | The same "Pick up in store" answer barnesandnoble.com shows for one store at a time, for all of them in one run |
| 📚 **Any ISBN, EAN or UPC** | Paste ISBN-13, ISBN-10 or a UPC from the box: the actor finds the product and checks the stores |
| 🔔 **Restock and drop alerts** | `back_in_stock`, `out_of_stock`, `price_drop`, `new_item`, with restock history and the usual restock weekday of each store |
| 💲 **Price and sale price** | Price, regular price when on sale, online availability (in stock, sold out, pre-order), B\&N Exclusive flag, sales rank |
| 🔎 **Clean search** | eBooks and audiobooks are skipped (stores do not sell them), and results without any word of your search are dropped: you pay only for matches |

#### Example

Input: products LEGO Icons Sherlock Holmes Book Nook (B\&N Exclusive), ISBN `9780439023481` (The Hunger Games), UPC `0889933952170` (Pokemon 8" Plush), ZIP `60601` (Chicago Loop), radius 25 miles. Real run, 13 Oct 2026:

| Product | Store | Miles | At the store |
| --- | --- | --- | --- |
| LEGO Sherlock Holmes Book Nook, $129.99 | State Street, 150 N State Street, Chicago | 0.17 | in stock |
| The Hunger Games, $22.99 | State Street, 150 N State Street, Chicago | 0.17 | in stock |
| The Hunger Games | Wicker Park, 1601 N. Milwaukee Ave., Chicago | 3.19 | sold out |
| Pokemon 8" Plush, $17.99 | Wicker Park, 1601 N. Milwaukee Ave., Chicago | 3.19 | in stock |
| Pokemon 8" Plush | Diversey Parkway, 651 West Diversey Parkway, Chicago | 3.39 | sold out |

12 Barnes & Noble stores are within 25 miles of the Loop: the LEGO Book Nook was in all 12, The Hunger Games in 8, the Pokemon plush in 6. One availability request covers a product at all of them.

#### Input

| Field | What it does |
| --- | --- |
| **What to do** | *Search products* (keywords or links) or *Check products* (links, ISBNs, EANs or UPCs) |
| **Keywords or search links** | e.g. `lego icons`, `funko pop`, `criterion collection`, `pokemon`, or a barnesandnoble.com search link with filters (`…/search?q=funko&attributes.productLineCategoryDisplayName=Toys+%26+Games`) |
| **Product links, ISBNs, EANs or UPCs** | barnesandnoble.com product links (`…/w/…/1147390598?ean=0673419407489`), ISBN-13, ISBN-10, EAN or UPC |
| **ZIP codes or cities** | Stores around each ZIP code (`10001`) or city (`Chicago, IL`). Empty with no store numbers = online availability only |
| **Store numbers** | Exact stores, e.g. `2675` (the end of a store link `stores.barnesandnoble.com/store/2675`) |
| **Radius (miles)**, **Stores per ZIP code** | 25 miles and 10 stores by default; up to 100 miles and 50 stores |
| **Max products per search**, **Sort search by** | Up to 1 000 products per keyword (24 per Barnes & Noble page); top matches, bestsellers, newest or price |
| **Only in stock**, **Maximum price** | Filters: you pay only for returned rows |
| **Only report changes**, **Monitor name** | Restock and drop alerts for scheduled runs |

#### Output

| Field | Example |
| --- | --- |
| `title`, `author`, `format`, `formatDetail`, `ean`, `workId` | The Hunger Games (Hunger Games Series #1), Suzanne Collins, Hardcover, 9780439023481, 1100171585 |
| `inStockAtStore`, `storeStatus`, `pickupEligible` | true, in_stock (`out_of_stock`, `not_sold_here`), true |
| `storeNumber`, `storeName`, `storeAddress`, `storeCity`, `storeState`, `storeZip` | 3610, State Street, 150 N State Street, Chicago, IL, 60601 |
| `distanceMiles`, `storePhone`, `storeHours`, `storeUrl` | 0.17, 708-967-3324, Sun 10-7, Mon-Sat 9-8, store page |
| `price`, `originalPrice`, `onlineStatus` | 22.99; the regular price when on sale; in_stock (`out_of_stock`, `preorder`) |
| `bnExclusive`, `collections`, `salesRank` | true; Barnes & Noble Exclusives, LEGO, Special Editions; 5192 |
| `category`, `series`, `publicationDate`, `contributors` | Media > Books, Hunger Games Series, 2008-10-01, authors with roles |
| `image`, `url` | cover image, barnesandnoble.com product page |
| `near`, `query`, `queryType` | 60601, the search or product the row came from |
| `change`, `changes`, `previousPrice` | back_in_stock, price_drop from 22.99 (monitoring) |
| `restocksSeen`, `lastRestockAt`, `usualRestockDay` | 3, 2026-10-09T13:10:00Z, Thursday (2 of 3) (monitoring) |

Without ZIP codes or store numbers, each row is one product with its online availability and price. An unknown ISBN, or a ZIP code with no Barnes & Noble store nearby, returns a row with `error` (free).

#### Pricing

Pay per event: **$0.001** per run and **$0.00249** per returned row: a product at a store, or a product online ($2.49 per 1 000 rows). Apify Scale plan: 10% less on rows, Business plan and above: 20% less.

| Example | Cost |
| --- | --- |
| 10 products of a search at the 10 stores nearest to one ZIP | ~$0.25 |
| 1 product at the 50 stores near a big-city ZIP | ~$0.13 |
| Restock alert: 5 products near 2 ZIPs every 30 minutes, nothing changed | $0.001 per run (~$1.44 a month) |

#### FAQ

**How do I check Barnes & Noble stock near me?** Put your ZIP code into **ZIP codes or cities** and the title into **Keywords** (or the ISBN or product link into *Check products*). Each row is one nearby store, in stock or sold out.

**Does it show how many copies a store has?** No. Barnes & Noble publishes in stock or not per store (the "Pick up in store" answer), not unit counts. `inStockAtStore` is that answer; a last copy can already be sold when you arrive.

**Can I check if a book is in stock at my Barnes & Noble by ISBN?** Yes: ISBN-13 or ISBN-10 in *Check products*, your ZIP code or store number, and you get every nearby store.

**How do I get Barnes & Noble restock alerts?** Add the products (or a search) and your ZIP codes, turn on **Only report changes**, save it as a task and schedule it every 30-60 minutes. Restocks come as `back_in_stock`, new products as `new_item`; connect email, Slack or [Google Sheets](https://apify.com/s_actors/google-sheets-import-export) in Integrations.

**Can it check Pokemon cards at Barnes & Noble?** Pokemon plush, figures, games, calendars and books, yes (search `pokemon`). Pokemon TCG booster packs are sold in stores only and barnesandnoble.com does not list them, so there is nothing to search; if you have the UPC from the box, *Check products* still asks the stores for it.

**Is barnesandnoble.com online stock the same as store stock?** No. `onlineStatus` is shipping stock; a product sold out online can still be in stores, and the other way round.

**Is this a BrickSeek alternative for Barnes & Noble?** Yes for availability: every store near a ZIP code at once, without an account, plus alerts.

#### Tips

- Rows = products × stores, so start with a few stores and **Only in stock**.
- One availability request covers a product at up to 50 stores near a ZIP code: a wide radius costs no extra requests, only rows.
- For a watchlist, use *Check products* with ISBNs or product links: the same products every run, no search noise.
- Use a separate **Monitor name** for each scheduled task.

#### Limits

- US Barnes & Noble stores only (barnesandnoble.com); college bookstores (Barnes & Noble Education) are a different business and are not covered.
- In stock or not per store, no unit counts (Barnes & Noble does not publish them).
- Up to 50 stores per ZIP code, city or store number; use several for a wider area.
- eBooks, audiobooks and digital magazines are skipped: stores do not sell them.

#### Ready-made tasks

| Task | What it does |
| --- | --- |
| [Barnes & Noble Exclusive Editions: In Stock at Stores Near You](https://apify.com/s_actors/barnes-noble-stock-checker/examples/barnes-noble-exclusive-edition-stock-checker) | B\&N Exclusive and signed editions at the stores near your ZIP, in stock or sold out per store |

#### Related

- [CVS Stock Checker](https://apify.com/s_actors/cvs-stock-checker)
- [Walgreens Stock Checker](https://apify.com/s_actors/walgreens-stock-checker)
- [Target Scraper: store stock with units](https://apify.com/s_actors/target-scraper)
- [Walmart Restock Tracker](https://apify.com/s_actors/walmart-restock-tracker)
- [Best Buy Stock Checker: in-store inventory by ZIP](https://apify.com/s_actors/best-buy-stock-checker)
- [GameStop Inventory Checker](https://apify.com/s_actors/gamestop-inventory-checker)
- [Sam's Club Stock Checker](https://apify.com/s_actors/sams-club-stock-checker)
- [IKEA Stock Checker](https://apify.com/s_actors/ikea-stock-checker)
- [Dollar General Stock Checker: exact units by store](https://apify.com/s_actors/dollar-general-stock-checker)

#### For AI agents and API

```json
{
    "mode": "products",
    "products": ["9780439023481", "https://www.barnesandnoble.com/w/x/1147390598?ean=0673419407489"],
    "zipCodes": ["10001", "Chicago, IL"],
    "maxStoresPerZip": 20,
    "onlyInStock": true,
    "onlyChanges": true,
    "monitorName": "bn-restock"
}
```

Each row is one product at one store with `inStockAtStore`, `storeStatus`, `distanceMiles` and the store address; without `zipCodes` and `storeNumbers` each row is one product online.

# Actor input Schema

## `mode` (type: `string`):

Search: keywords or barnesandnoble.com search links, every product found with its availability in stores near your ZIP codes. Check products: exact products by link, ISBN, EAN or UPC (best for a back-in-stock watchlist).

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

Search mode: what to search on Barnes & Noble, one per line (e.g. "lego icons", "pokemon", "criterion collection", "atomic habits"), or a barnesandnoble.com search link with its filters and sort order (…/search?q=funko\&attributes.productLineCategoryDisplayName=Toys+%26+Games). eBooks and audiobooks are skipped: stores do not sell them.

## `products` (type: `array`):

Check products mode: barnesandnoble.com product links (…?ean=9781604382648), ISBN-13, ISBN-10, EAN or UPC, one per line.

## `zipCodes` (type: `array`):

US ZIP codes (10001) or cities ("Chicago, IL") to check stores around, one per line: the nearest stores within "Radius" (up to "Stores per ZIP code"). Empty and no store numbers = online availability only.

## `storeNumbers` (type: `array`):

Exact Barnes & Noble stores to check, one per line: the store number (e.g. 2675) or a store link (stores.barnesandnoble.com/store/2675).

## `radiusMiles` (type: `integer`):

How far from each ZIP code or city to look for stores.

## `maxStoresPerZip` (type: `integer`):

For each ZIP code or city: how many of the nearest stores to check (up to 50).

## `maxProductsPerSearch` (type: `integer`):

Search mode: how many products to take from each keyword or link (24 per Barnes & Noble page).

## `sortBy` (type: `string`):

Search mode: the order of barnesandnoble.com, which decides the products taken. A search link keeps its own sort order.

## `onlyInStock` (type: `boolean`):

Return only rows where the store has the product now (or, without stores, where it is in stock online).

## `maxPrice` (type: `integer`):

Return only products at or below this price in USD. Empty = any price.

## `onlyChanges` (type: `boolean`):

For scheduled runs. The first run saves availability and prices; later runs return only what changed: back in stock at a store, sold out, price drops and increases, and new products or stores in your searches (e.g. a new LEGO or Funko release). Each row also carries the restocks this monitor has seen and the usual restock weekday. You pay only for the changes returned.

## `monitorName` (type: `string`):

Separate monitors keep separate memory. Use a different name for each scheduled task.

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

How many requests run at the same time.

## Actor input object example

```json
{
  "mode": "search",
  "keywords": [
    "lego icons"
  ],
  "products": [
    "https://www.barnesandnoble.com/w/lego-icons-sherlock-holmes-book-nook-10351-lego-systems-inc/1147390598?ean=0673419407489"
  ],
  "zipCodes": [
    "10001"
  ],
  "radiusMiles": 25,
  "maxStoresPerZip": 10,
  "maxProductsPerSearch": 10,
  "sortBy": "relevance",
  "onlyInStock": false,
  "onlyChanges": false,
  "monitorName": "default",
  "maxConcurrency": 6
}
```

# Actor output Schema

## `overview` (type: `string`):

One row per product and store: in stock or not, address, distance, price.

## `changes` (type: `string`):

Monitoring: back in stock, sold out, price changes, new products and stores.

## `details` (type: `string`):

Author or brand, format, EAN / ISBN, prices, online availability, sales rank.

## `stores` (type: `string`):

Store address, phone, hours and distance for each row.

## `all` (type: `string`):

Every field of every row.

# 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": [
        "lego icons"
    ],
    "products": [
        "https://www.barnesandnoble.com/w/lego-icons-sherlock-holmes-book-nook-10351-lego-systems-inc/1147390598?ean=0673419407489"
    ],
    "zipCodes": [
        "10001"
    ],
    "maxProductsPerSearch": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/barnes-noble-stock-checker").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": ["lego icons"],
    "products": ["https://www.barnesandnoble.com/w/lego-icons-sherlock-holmes-book-nook-10351-lego-systems-inc/1147390598?ean=0673419407489"],
    "zipCodes": ["10001"],
    "maxProductsPerSearch": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("s_actors/barnes-noble-stock-checker").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": [
    "lego icons"
  ],
  "products": [
    "https://www.barnesandnoble.com/w/lego-icons-sherlock-holmes-book-nook-10351-lego-systems-inc/1147390598?ean=0673419407489"
  ],
  "zipCodes": [
    "10001"
  ],
  "maxProductsPerSearch": 10
}' |
apify call s_actors/barnes-noble-stock-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s_actors/barnes-noble-stock-checker"
        }
    }
}
```

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/drZArNWRdaNKevA4N/builds/Isfww6eLu9y09saVg/openapi.json
