ShopGoodwill Scraper avatar

ShopGoodwill Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
ShopGoodwill Scraper

ShopGoodwill Scraper

Scrape ShopGoodwill.com - Goodwill's official online auction marketplace for secondhand clothing, shoes, accessories, and jewelry. Search by keyword, browse by category or seller, or fetch full item detail by ID.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Scrape ShopGoodwill.com — Goodwill's official online auction marketplace for secondhand clothing, shoes, accessories, and jewelry. Search by keyword, browse by category or seller (Goodwill store), or fetch full item detail by ID. No login, no cookies, no paid proxy required.

What this actor does

  • Four modes: search, byCategory, bySeller, byItemIds
  • Keyword + brand + size narrowing — free-text search that can be combined with an optional brand and size keyword
  • Category browsing — Women's, Men's, Children's, Juniors', Baby clothing, and Jewelry & Gemstones
  • Seller/store browsing — pull every current listing from a specific Goodwill store
  • Direct item lookup — full detail (description, all images, seller info, shipping) by item ID
  • Filters — price range, sort order, buy-it-now only, local-pickup only, include closed/sold auctions
  • Empty fields are omitted from every record

Output per item

Search / category / seller listing records:

  • itemId, title, description
  • currentPrice, startingPrice, buyNowPrice, isBuyNowAvailable, minimumBid, numBids
  • shippingPrice, discountPercent
  • categoryId, categoryName, categoryPath
  • imageUrl
  • startTime, endTime, remainingTime
  • sellerId
  • itemQuantity, views, isStockPhoto
  • itemUrl — direct link to the listing
  • recordType: "item", scrapedAt

Item-detail records (mode=byItemIds) add:

  • images[] (full-resolution), thumbnailUrl
  • sellerName, sellerUrl
  • keywords[]
  • weightLbs
  • pickupCity, pickupState, pickupZip, pickupCountry, pickupOnly
  • handlingPrice
  • isAuction, bidIncrement
  • shippingCarrier
  • bidHistory[] — full live bid ledger (bidderName masked by ShopGoodwill, amount, time, isBuyNow) when the item has bids

Input

FieldTypeDefaultDescription
modestringsearchsearch / byCategory / bySeller / byItemIds
searchQuerystringnikeFree-text keyword search
brandstringBrand keyword, ANDed into the search text
sizeKeywordstringSize keyword, ANDed into the search text
categoryIdstringCategory to browse/narrow by (see enum below)
sellerIdintegerNumeric seller/store ID (mode=bySeller)
itemIdsarrayNumeric item IDs (mode=byItemIds)
priceMinintegerMinimum price (USD)
priceMaxintegerMaximum price (USD)
sortBystringendingSoonestendingSoonest / endingLatest / priceLowToHigh / priceHighToLow
buyNowOnlybooleanfalseOnly Buy-It-Now listings
pickupOnlybooleanfalseOnly local-pickup listings
includeClosedAuctionsbooleanfalseSearch recently-ended (sold) listings instead of live ones
maxItemsinteger40Hard cap on emitted records (1–2000)

categoryId options — Clothing: 10 All Clothing · 27 Women's · 28 Men's · 29 Children's · 1729 Juniors' · 453 Baby · 137 Belt Buckles · 2272 Collegiate Wear · 169 Eyewear. Jewelry & Gemstones: 6 All · 84 Bracelets · 100 Brooches/Pins · 91 Costume Jewelry · 2240 Costume Jewelry Grabbags · 90 Earrings · 2241 Fine Jewelry Grabbags · 85 Jewelry Boxes · 102 Jewelry Sets · 436 Loose Gemstones · 101 Men's Accessories · 86 Necklaces · 87 Pendants · 353 Precious Metal Scrap · 88 Rings · 89 Watches.

Example: keyword search with price cap

{
"mode": "search",
"searchQuery": "levis jacket",
"priceMax": 40,
"sortBy": "priceLowToHigh",
"maxItems": 50
}

Example: browse a category

{
"mode": "byCategory",
"categoryId": "27",
"brand": "coach",
"maxItems": 100
}

Example: everything from one seller

{
"mode": "bySeller",
"sellerId": 16,
"maxItems": 200
}

Example: direct item lookup

{
"mode": "byItemIds",
"itemIds": ["269254306", "268831482"]
}

Use cases

  • Resale/thrift price research — track sold prices for a brand or item type over time
  • Sourcing for resellers — monitor a favorite Goodwill store's new listings
  • Sustainable-fashion apps — surface secondhand clothing inventory by category
  • Deal alerting — filter by price range and Buy-It-Now to catch underpriced listings
  • Market analytics — aggregate category/brand-keyword demand across regions

Data source / limitations

Data comes from ShopGoodwill's public listing API — the same one that powers the website's search and category pages. No login, cookies, or paid proxy are required.

  • ShopGoodwill does not expose structured brand or size facets anywhere in its API (listing payload, item-detail payload, or seller-info endpoint) — items are donated goods without a standardized catalog, so brand and sizeKeyword are keyword terms ANDed into the free-text search rather than exact filters. Results depend on whether the seller mentioned that term in the title/description. The only place "size" appears structurally is as a same-named category several levels deep (e.g. Clothing > Men's Clothing > Shoes Men's > Size 14), and those size-level category IDs are not enumerated anywhere on the site (the live category-tree endpoint only returns 2 levels) — so they cannot be reliably exposed as a stable input enum.
  • The site is an auction marketplace, not a fixed-price catalog — most items have a currentPrice (current bid) and many also have an optional buyNowPrice. There is no "condition" grade the way some resale marketplaces use (New/Like New/Good); the only condition-adjacent text is a generic, seller-wide "sold as-is" disclaimer that is identical across every listing from that seller, not item-specific, so it is intentionally not surfaced as an output field. There is likewise no seller feedback/rating score anywhere on ShopGoodwill (confirmed via the seller-info endpoint) — sellers only expose a company profile (city, return policy, customer-service hours).
  • categoryId now covers both the top-level departments and their live level-2 subcategories (e.g. Jewelry → Rings/Necklaces/Watches/etc., Clothing → Belt Buckles/Collegiate Wear/Eyewear) — these were verified against ShopGoodwill's own live category-tree API and each returns hundreds to thousands of real matching items. Deeper level-3+ nodes (specific shoe/dress sizes) are not enumerable via any stable site API, so those are still reached by combining categoryId with a keyword in searchQuery.
  • bidHistory (mode=byItemIds) reflects ShopGoodwill's own server-masked bidder names (e.g. b****r) — this is the same ledger shown on the live item page, not derived or guessed.
  • includeClosedAuctions searches a rolling 7-day window of recently-ended listings.

FAQ

Do I need an account or cookies? No. All modes work anonymously against ShopGoodwill's public listing API.

What currency are prices in? US dollars.

What does remainingTime look like? A short human string like "16s", "2m 16s", or "3d 4h" as returned live by ShopGoodwill at scrape time — it is not re-computed, so re-run the actor for a fresh value.

Why do some items have no buyNowPrice? Many auctions are bid-only; buyNowPrice (and isBuyNowAvailable) is only included when the seller enabled an instant-purchase price.

Can I get items ending in the far future? Some listings use placeholder end dates for ongoing "Buy It Now" style stock; sort by priceHighToLow or priceLowToHigh if endingSoonest results look unexpected.

How many items can I fetch in one run? Up to maxItems (max 2000) per run. ShopGoodwill paginates in batches of up to 40 items server-side; the actor pages through automatically.

Is bySeller mode the same as a Goodwill "store"? Yes — each regional Goodwill agency runs its own seller account on ShopGoodwill; sellerId identifies that store's listings.