BJ's

BJ's Wholesale Club price range (not a club price), rating, brand when given and national availability flags, by item number, about 4 million products per credit. Search too. Prescription items are never returned.

Embed
Preview of the card
<a href="https://scrapelyserp.com/docs/bjs-products"><img src="https://scrapelyserp.com/docs/_api/public/orgs/affc5b0f-d3c2-423a-8143-9d10db5736ae/spaces/981e6275-da3f-446c-82de-889f59c83b6f/pages/5b8c2e09-c767-4dbc-9607-29abce4886e5/social-card.svg?v=3e7ae33eec8b" alt="BJ's" width="600" height="315"></a>

BJ's Wholesale Club price range (not a club price), rating, brand when given and national availability flags, by item number, about 4 million products per credit. Search too. Prescription items are never returned.

At a glance

Property

Value

platform

bjs

Product id

The BJ's item number, 3 to 8 digits (335416): the id that search returns. The long number inside a product link is a different id and is not accepted: a link is refused with a 400, so take the item number from search.

Marketplaces

Live: us. Coming soon: none.

Tier

standard (the default), about 4 million products per credit (an estimate until production traffic measures it)

Ids per call

100

Typical call

1–3 s for 100 ids

Search

GET /v1/structured/bjs/search, about 4.5 million results per credit.

There is no price, only a range

BJ's data gives a price range, not the price at a given club. price is always null, and the current club price is not available. The range (bjs.minPrice and bjs.maxPrice) is not a price: on BJ's own pages it matched the low end for some items, the high end for others, and neither for some. Items whose price shows only after sign-in carry bjs.priceAfterSignIn: true, and their range may not reflect what a member pays.

Example

curl -X POST "https://api.scrapelyserp.com/v1/products" \
  -H "Authorization: Bearer $SCRAPELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"platform":"bjs","ids":["335416","328157"]}'

Full reference → POST /v1/products

BJ's fields

Besides the common fields, each result carries a bjs object. price is null on every BJ's result; availability is left out.

Field

Description

bjs.minPrice, maxPrice

The low and high end of the price range in BJ's data. A range, not a price; null when BJ's gives none.

bjs.priceAfterSignIn

True when BJ's shows the item's price only after sign-in. The range may then not reflect what a member pays.

bjs.rating, reviewCount

Average review rating in half stars (0 to 5, not exact) and the number of reviews; null when there are none (the item is still ok).

bjs.brand

The brand when BJ's data names one, else null. It is never guessed from the title.

bjs.outOfStock, onlineAvailable, clubAvailable

BJ's national flags: not a stock count and not any one club's stock, and they can disagree with each other (an item can be flagged out of stock and still available). No club is chosen. null when absent.

bjs.alcohol

True when BJ's marks the item as alcohol; null when it does not say.

Statuses on BJ's

  • partial: BJ's answered without a title. Ask again later.

  • not_found: BJ's has no such item number. Prescription items are never returned and read the same way.

  • unavailable: no usable answer after retries. Not charged; ask again.

Updated