ParseForge Scrapers

ShopGoodwill Auctions Scraper

parseforge/shopgoodwill-auctions-scraper

E-commerceAutomationDeveloper tools

Scrape ShopGoodwill auctions with current bid, bid count, Buy It Now price, shipping, Goodwill region, condition and end time. Export to CSV, Excel, JSON or XML.

Run this scraper See the API call
Total runs
22
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the ShopGoodwill Auctions Scraper return?

ParseForge Banner

๐Ÿ”จ ShopGoodwill Auctions Scraper

๐Ÿš€ Export live ShopGoodwill auctions in seconds. 31 fields per lot, including the current bid, the bid count, the Buy It Now price and the exact Goodwill region holding the item, pulled from more than 640,000 live auctions across 29 categories.

ShopGoodwill is the online auction marketplace run by Goodwill Industries, and it is where roughly 130 regional Goodwill organisations sell donated goods to the public: second-hand clothing, collectibles, electronics, art glass, tools and a steady stream of jewellery. Prices start low, competition is thin compared with the big marketplaces, and the same model of camera can close at $30 in one region and $250 in another.

This Actor reads ShopGoodwill's own public auction API, then opens the full record for every lot it delivers. Each row carries what the search grid never shows you: the seller description in plain text, the condition grade when the region publishes one, the Goodwill organisation and city behind the listing, the handling charge, and the auction end time as a proper UTC timestamp instead of a countdown that expires while you read it.

Search by keyword, by category, by price band, by Buy It Now availability or by local pickup. Feed it a list of item URLs instead and it enriches each one. Every run returns a flat table you can drop straight into a spreadsheet, a bidding model or a database.

๐ŸŽฏ Target Audience ๐Ÿ’ก Primary Use Cases
Resellers and flippers Find underbid lots before the auction closes
Collectors Watch a category or a keyword for new arrivals across every Goodwill region
Price researchers Build a price index for second-hand goods by category and region
Antique and vintage dealers Source stock from 130 regional sellers in one query
Repair and refurb shops Filter for tools, electronics and project items by price ceiling
Data teams Study how donated goods are priced across US regions

๐Ÿ“‹ What the ShopGoodwill Auctions Scraper does

๐Ÿ’ก Why it matters: an auction row with a countdown is useless an hour later. This Actor returns the end time as an ISO timestamp in UTC, the bid count next to the current bid, and the Goodwill region behind every lot, so the table still means something tomorrow.

  • Searches ShopGoodwill's live auction index by keyword, category, price range, Buy It Now availability and local pickup.
  • Opens the full record for every lot it delivers, so each row carries the seller description and the Goodwill organisation.
  • Reports the bidding state: current bid, number of bids, next minimum bid, starting price and whether a reserve has been met.
  • Captures the Buy It Now price when the lot has one, including the discounted price when the region is running a promotion.
  • Returns the handling charge, the flat shipping rate when the region publishes one, the carrier and the local pickup flag.
  • Extracts the condition grade from the listing body when the region writes one, and says Not Disclosed when it does not.
  • Converts every auction timestamp from ShopGoodwill's US Pacific wall clock into a proper UTC ISO timestamp.
  • Records the seller identity: Goodwill organisation name, seller id, pickup city and state.
  • Collects the entire photo gallery, not just the thumbnail.
  • Dedupes on the ShopGoodwill item id, so a lot never appears twice in one run.
  • Accepts item URLs directly, so you can enrich a shortlist you already have.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

๐Ÿ“Š Output

Every row is one live ShopGoodwill auction lot.

Field Type Description
๐Ÿ–ผ imageUrl string Primary listing photo
๐Ÿ“Œ title string Lot title as the Goodwill region wrote it
๐Ÿ”— itemUrl string Public ShopGoodwill item page
๐Ÿ†” itemId string ShopGoodwill item id, the dedupe key
๐Ÿ’ต currentBid number Current bid in US dollars
๐Ÿ”จ bidCount number Bids placed so far
๐Ÿ“ˆ minimumBid number Next accepted bid amount
๐Ÿšฆ startingPrice number Opening price the lot was listed at
โšก buyNowPrice number Buy It Now price, or N/A when the lot has none
๐Ÿท listingType string Auction, Buy It Now, or Auction with Buy It Now
๐Ÿ” reserveMet string Yes or No on reserve lots, N/A when there is no reserve
๐Ÿ“ฆ shippingPrice number Flat shipping rate when the region publishes one
๐Ÿงพ handlingPrice number Handling charge added to every order
๐Ÿšš shippingCarrier string Carrier the region ships with, for example FedEx
๐Ÿ  pickupOnly string Yes or No
โญ condition string Condition grade from the listing body
๐Ÿ—‚ category string Full ShopGoodwill category path
๐Ÿ”ข categoryId string Numeric category id
๐Ÿ“Š quantity number Units in the lot
๐Ÿช sellerName string Goodwill organisation selling the lot
๐Ÿข sellerId string Numeric seller id
๐Ÿ“ sellerLocation string Pickup city and state
๐Ÿ—บ sellerState string Two letter state code
โฐ endTime string Auction close time as an ISO UTC timestamp
๐Ÿ•ฐ startTime string Listing time as an ISO UTC timestamp
โณ timeRemaining string Countdown as the site shows it at scrape time
๐Ÿ“ description string Seller description, HTML stripped
๐Ÿ–ผ imageUrls array Every photo on the listing
๐Ÿท keywords array Keywords the region tagged the lot with
๐Ÿ•’ scrapedAt string Extraction timestamp
โŒ error string Populated only on a failed request

Three real records from a run of this Actor (descriptions and galleries trimmed for length):

[
  {
    "imageUrl": "https://shopgoodwillimages.azureedge.net/production/343/Items/2026-09-03/ac881d7d-21eb-4a71-8407-6860cc7ad2b4sens_09031.jpg",
    "title": "Vintage Beaulieu 4008 ZM II Super 8 Movie Camera Schneider Optivaron 6-66mm",
    "itemUrl": "https://shopgoodwill.com/item/276153041",
    "itemId": "276153041",
    "currentBid": 256,
    "bidCount": 15,
    "minimumBid": 257,
    "startingPrice": 12.99,
    "buyNowPrice": "N/A",
    "listingType": "Auction",
    "reserveMet": "N/A",
    "shippingPrice": "Not Disclosed",
    "handlingPrice": 3.5,
    "shippingCarrier": "FedEx",
    "pickupOnly": "No",
    "condition": "Body shows moderate cosmetic wear and surface dust. Lens elements exhibit internal dust and minor spotting visible under light. Viewfinder is intact but shows a ...",
    "category": "Cameras & Camcorders > Vintage Cameras",
    "categoryId": "175",
    "quantity": 1,
    "sellerName": "Goodwill of Western and Northern Connecticut",
    "sellerId": "343",
    "sellerLocation": "Bridgeport, CT",
    "sellerState": "CT",
    "endTime": "2026-09-11T03:23:00.000Z",
    "startTime": "2026-09-03T19:12:28.000Z",
    "timeRemaining": "1d 8h",
    "description": "Beaulieu 4008 ZM II Super 8mm Film Camera Schneider-Kreuznach 6-66mm f/1.8 Lens. The Beaulieu 4008 ZM II is a professional-grade Super 8 camera renowned for its C-mount lens versatility and mirrored shutter system ...",
    "imageUrls": [
      "https://shopgoodwillimages.azureedge.net/production/343/Items/2026-09-03/ac881d7d-21eb-4a71-8407-6860cc7ad2b4sens_09031.jpg",
      "https://shopgoodwillimages.azureedge.net/production/343/Items/2026-09-03/cd64ea49-d0fe-49d9-a63c-29a6d52edd28sens_09032.jpg"
    ],
    "keywords": ["Vintage", "Beaulieu", "ZM"],
    "scrapedAt": "2026-09-09T18:37:35.496Z",
    "error": null
  },
  {
    "imageUrl": "https://shopgoodwillimages.azureedge.net/production/119/Items/2026-09-03/567e5f8b-1e92-49d6-a3f2-93ceca7cd096ersv_09031.jpg",
    "title": "Camp Snap 8 Digital Camera Vintage Super 8 Styling 8X Zoom USB-C Screen-Free",
    "itemUrl": "https://shopgoodwill.com/item/276166286",
    "itemId": "276166286",
    "currentBid": 65,
    "bidCount": 9,
    "minimumBid": 66,
    "startingPrice": 12.99,
    "buyNowPrice": "N/A",
    "listingType": "Auction",
    "reserveMet": "N/A",
    "shippingPrice": "Not Disclosed",
    "handlingPrice": 0,
    "shippingCarrier": "FedEx",
    "pickupOnly": "No",
    "condition": "The camera body is in excellent cosmetic condition with no visible scratches, dents, or wear to the black textured grip or silver trim. The lens element is clea ...",
    "category": "Cameras & Camcorders > Digital Cameras",
    "categoryId": "171",
    "quantity": 1,
    "sellerName": "Goodwill of Silicon Valley",
    "sellerId": "119",
    "sellerLocation": "San Jose, CA",
    "sellerState": "CA",
    "endTime": "2026-09-11T01:17:00.000Z",
    "startTime": "2026-09-03T22:17:03.000Z",
    "timeRemaining": "1d 6h",
    "description": "Camp Snap 8 Digital Camera Vintage Super 8 Film Camera Styling 8X Zoom, USB-C Connectivity. The Camp Snap 8 is a modern digital camera uniquely designed to mimic the form factor and tactile experience of a vintage Super 8 ...",
    "imageUrls": [
      "https://shopgoodwillimages.azureedge.net/production/119/Items/2026-09-03/567e5f8b-1e92-49d6-a3f2-93ceca7cd096ersv_09031.jpg",
      "https://shopgoodwillimages.azureedge.net/production/119/Items/2026-09-03/6dde3b01-8e5e-4a4e-89fa-3ce979068056ersv_09032.jpg"
    ],
    "keywords": ["Camp", "Snap", "Digital"],
    "scrapedAt": "2026-09-09T18:37:35.644Z",
    "error": null
  },
  {
    "imageUrl": "https://shopgoodwillimages.azureedge.net/production/130/Item/2026-09-04/c0c33a9b-15b3-480e-b8ee-110b86801b7eacon_09041.jpg",
    "title": "Vintage Rollei 35 Compact 35mm Film Camera Carl Zeiss Tessar 40mm f3.5",
    "itemUrl": "https://shopgoodwill.com/item/276245544",
    "itemId": "276245544",
    "currentBid": 151,
    "bidCount": 26,
    "minimumBid": 152,
    "startingPrice": 9.99,
    "buyNowPrice": "N/A",
    "listingType": "Auction",
    "reserveMet": "N/A",
    "shippingPrice": "Not Disclosed",
    "handlingPrice": 2,
    "shippingCarrier": "FedEx",
    "pickupOnly": "No",
    "condition": "Not Disclosed",
    "category": "Cameras & Camcorders > Vintage Cameras",
    "categoryId": "175",
    "quantity": 1,
    "sellerName": "Ohio Valley Goodwill Industries",
    "sellerId": "130",
    "sellerLocation": "Cincinnati, OH",
    "sellerState": "OH",
    "endTime": "2026-09-12T01:23:00.000Z",
    "startTime": "2026-09-04T15:00:00.000Z",
    "timeRemaining": "2d 6h",
    "description": "Vintage Rollei 35 Compact 35mm Film Camera Carl Zeiss Tessar 40mm f3.5. Vintage Rollei 35 compact 35mm film camera featuring a Carl Zeiss Tessar 1:3.5 f=40mm lens. The camera body is silver metal with a textured black gri ...",
    "imageUrls": [
      "https://shopgoodwillimages.azureedge.net/production/130/Item/2026-09-04/c0c33a9b-15b3-480e-b8ee-110b86801b7eacon_09041.jpg",
      "https://shopgoodwillimages.azureedge.net/production/130/Item/2026-09-04/0e6719f0-e9ec-418e-a2cb-3e2111987ebdacon_09042.jpg"
    ],
    "keywords": ["Vintage", "Rollei", "Compact"],
    "scrapedAt": "2026-09-09T18:37:34.727Z",
    "error": null
  }
]

Empty values never come back as null. A field the Goodwill region chose not to publish returns Not Disclosed, a field that does not apply to the lot returns N/A, booleans return Yes or No, and empty lists return []. Only error can be null, and it is null on every successful row.

โœจ Why choose this Actor

  • Auction state on every row. Current bid, bid count, next minimum bid and starting price sit side by side, so you can see which lots are contested and which are still sleeping.
  • The Goodwill region, named. ShopGoodwill is 130 independent sellers wearing one brand. Every row tells you which organisation holds the lot and which city it ships from.
  • End times you can sort. The site publishes a countdown in US Pacific wall clock with no offset. This Actor returns a real ISO UTC timestamp, so your spreadsheet can sort by closing time.
  • Full descriptions, not snippets. The search grid returns no description at all. This Actor opens every lot and returns the seller text with the HTML stripped.
  • The whole photo gallery. Every image on the listing, not one thumbnail.
  • Two ways in. Search the marketplace, or hand it a list of item URLs to enrich.
  • Honest limits. Ceilings are documented below rather than discovered after purchase.
  • Clean tables. Fixed column order, no nulls, ready for CSV, Excel, JSON or XML.

๐Ÿ“ˆ How it compares to alternatives

This Actor Typical ShopGoodwill search scraper Manual browsing
Fields per lot 31 10 to 18 Whatever the page shows
Full seller description โœ… โŒ โœ… one at a time
Condition grade โœ… when published โŒ โœ… one at a time
Goodwill region and city โœ… โŒ โœ… one at a time
End time as ISO UTC โœ… โŒ countdown text โŒ countdown text
Handling and shipping โœ… Rarely โœ… one at a time
Full photo gallery โœ… Thumbnail only โœ… one at a time
Search filters 7 verified filters 1 to 3 โœ…
Enrich a URL list โœ… Sometimes โœ… one at a time
Closed and sold auctions โŒ live auctions only โŒ โŒ
Watcher counts โŒ never published by the source โŒ โŒ

๐Ÿš€ How to use

  1. Create a free Apify account. New accounts get $5 in free credit: sign up here.
  2. Open the ShopGoodwill Auctions Scraper and click Try for free.
  3. Type one or more search terms, for example vintage camera or gold ring. You can paste ShopGoodwill item URLs instead, or leave both empty to walk the whole live auction feed.
  4. Narrow the search with the filters: category, price range, Buy It Now only, local pickup only, description search and sort order.
  5. Set how many rows you want.
  6. Click Start and watch the run log.
  7. When the run finishes, open the Storage tab and download CSV, Excel, JSON or XML, or pull the same rows through the Apify API.

๐Ÿ’ผ Business use cases

Reselling and arbitrage

Pull every live lot for a model, sort by bid count, and find the ones nobody has noticed yet. A camera with 26 bids at $151 is priced. The identical camera in another Goodwill region with zero bids at $12.99 and eleven hours left is the opportunity, and only a table across all 130 regions shows you both at once.

Sourcing stock at scale

Antique dealers, vintage clothing shops and refurbishers can run a category weekly, filter by price ceiling and pickup state, and get a buy list with item URLs, handling charges and closing times already attached. The Goodwill region and city on each row tell you whether a pickup run is even feasible.

Second-hand price research

Donated goods are priced by 130 independent organisations with no shared pricing policy, which makes ShopGoodwill an unusually clean window on regional second-hand demand. Export a category over several weeks and you can chart closing prices by region, by category and by condition grade.

Bidding and monitoring workflows

Schedule the Actor hourly against a saved filter set and feed the rows into Slack or a sheet. Because endTime is a real UTC timestamp and bidCount comes with it, you can alert on lots closing in the next two hours that are still under your price.

๐Ÿ”Œ Automating ShopGoodwill Auctions Scraper

  • Make and Zapier: trigger the Actor on a schedule and push new rows into a spreadsheet, a CRM or a Slack channel.
  • Slack: post a message whenever a lot matching your filters closes within the hour under a price ceiling.
  • Airbyte: sync the dataset into a warehouse and join it with your own sales history.
  • GitHub Actions: run the Actor nightly and commit the CSV so bid history builds itself.
  • Google Drive: drop each run's export into a shared folder for the rest of the team.
  • Apify Scheduler: run daily, weekly or hourly with no external tooling at all.

๐ŸŒŸ Beyond business use cases

  • Research: study how second-hand prices for the same category vary across US regions and seasons.
  • Personal: watch for the exact camera, tool or piece of jewellery you have wanted, across every Goodwill region at once.
  • Non-profit: charities and community workshops can find tools, computers and instruments inside a budget and a pickup radius.
  • Experimentation: train a closing-price model on starting price, bid count, category and region.

๐Ÿค– Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant you use:

I am using the ShopGoodwill Auctions Scraper on Apify. It returns 31 fields per live ShopGoodwill auction, including currentBid, bidCount, minimumBid, startingPrice, buyNowPrice, listingType, shippingPrice, handlingPrice, condition, category, sellerName, sellerLocation, endTime and description. Help me design a filter set and an analysis that finds lots closing soon with unusually low bid counts for their category.

โ“ Frequently Asked Questions

๐Ÿ”‘ Do I need a ShopGoodwill account or API key?

No. The Actor reads ShopGoodwill's public buyer API, which answers without any credential or cookie.

๐Ÿ–ฅ Is ShopGoodwill not a JavaScript app?

It is, but the browser is not needed. The site is an Angular single page app that talks to its own public JSON API, and this Actor talks to the same API directly. That is why it runs on the cheap HTTP tier instead of a browser.

๐Ÿ“ฆ How many lots can one search term return?

There is no hard ceiling we could reach. The API serves 40 lots per page and keeps serving fresh, non-overlapping pages well past page 300. Practical limits are your maxItems and how many lots actually match.

๐Ÿ’€ Can it scrape closed or sold auctions?

No. This Actor covers live auctions only. Final sale prices are a separate surface and are not included.

๐Ÿ‘€ Does it return watcher counts?

No, because ShopGoodwill does not publish them. The search payload carries a views field but it is zero on every live lot, and there is no public favourites count. Rather than ship a column that is always empty, we left it out. Bid count is the engagement signal that is real here.

โญ Why is condition sometimes "Not Disclosed"?

Because roughly a third of Goodwill regions write a condition line into the listing body and the rest do not. The Actor extracts the grade when it is there and says Not Disclosed when the region published none, instead of guessing.

๐Ÿ“ฎ Why is shippingPrice often "Not Disclosed"?

Most Goodwill regions calculate shipping at checkout from the item weight and your ZIP code, so no rate exists until you check out. handlingPrice is the charge that is fixed upfront and it is populated on nearly every lot. When a region does set a flat rate, shippingPrice carries it.

โฐ What timezone are the auction times in?

ShopGoodwill publishes every timestamp in US Pacific wall clock with no offset attached. The Actor resolves them against America/Los_Angeles, including daylight saving, and returns endTime and startTime as ISO UTC.

๐Ÿ—‚ Which categories can I filter by?

All 29 top-level ShopGoodwill categories, from Antiques and Art through Jewelry & Gemstones, Computers & Electronics, Tools and Wedding. Pick one from the dropdown.

๐Ÿ” Can the same lot appear twice?

No. Rows are deduplicated on the ShopGoodwill item id within a run, including across several search terms.

๐Ÿ”— Can I feed it my own list of lots?

Yes. Paste ShopGoodwill item URLs such as https://shopgoodwill.com/item/276153041 into the Auction URLs field and every one is enriched with the full record.

โšก How fast is it?

The public API answers in about two seconds per search page from a clean IP, and the Actor runs six detail requests in parallel. A 1,000 row run typically finishes in a few minutes.

๐ŸŒ Do I need a proxy?

No. The source answers direct requests, so the proxy is off by default. Turn it on for very large or long-running jobs.

๐Ÿงน Why do I see "Not Disclosed" and "N/A" instead of empty cells?

Because a blank cell hides why it is blank. Not Disclosed means the Goodwill region left the field empty, N/A means the field does not apply to that lot. Neither is ever a null.

๐Ÿ”Œ Integrate with any app

Every run writes to an Apify dataset you can read over the REST API, stream into a webhook, or export as CSV, Excel, JSON or XML. Apify's integrations cover Make, Zapier, Airbyte, Slack, Google Drive, GitHub, Google Sheets and plain HTTP webhooks, so the rows land wherever your team already works.

๐Ÿ”— Recommended Actors

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: This is an independent tool and is not affiliated with, endorsed by, or connected to ShopGoodwill.com or Goodwill Industries International. It collects only publicly available data.

What input does the ShopGoodwill Auctions Scraper accept?

FieldTypeWhat it doesDefault
searchTerms array Keywords searched against the live ShopGoodwill auction index, for example 'vintage camera' or 'gold ring'. One search runs per term. ["vintage camera"]
startUrls array ShopGoodwill item page URLs such as https://shopgoodwill.com/item/276260567. Each URL is enriched with the full item record. []
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
categoryId string (29 options) Restrict the search to one top-level ShopGoodwill category. not set
sortBy string (6 options) Order the auctions before the result limit is applied. Ending soonest is the site's own default. 1|0
minPrice integer Lowest current bid to keep, in US dollars. not set
maxPrice integer Highest current bid to keep, in US dollars. not set
buyNowOnly boolean Keep only auctions that also carry a Buy It Now price. false
pickupOnly boolean Keep only lots the Goodwill region requires you to collect in person. false
searchDescriptions boolean Match the search term against the item description as well as the title. Widens the result set considerably. false
proxyConfiguration object Route requests through Apify Proxy. Off by default because the source is open. {"useApifyProxy":false}

How much does the ShopGoodwill Auctions Scraper cost?

from $4.53 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.00453 to $0.005

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the ShopGoodwill Auctions Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~shopgoodwill-auctions-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchTerms": [
      "vintage camera"
    ],
    "startUrls": [],
    "maxItems": 10,
    "sortBy": "1|0",
    "buyNowOnly": false
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "searchTerms": [
    "vintage camera"
  ],
  "startUrls": [],
  "maxItems": 10,
  "sortBy": "1|0",
  "buyNowOnly": false
}

What do users say about the ShopGoodwill Auctions Scraper?

No reviews yet. Be the first.

How do I report an issue with the ShopGoodwill Auctions Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run ShopGoodwill Auctions Scraper on Apify All scrapers