# ShopGoodwill Auctions Scraper (`parseforge/shopgoodwill-auctions-scraper`) Actor

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.

- **URL**: https://apify.com/parseforge/shopgoodwill-auctions-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (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 $4.53 / 1,000 results

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🔨 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):

```json
[
  {
    "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](https://console.apify.com/sign-up?fpr=vmoqkp).
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

- [LiveAuctioneers Scraper](https://apify.com/parseforge/liveauctioneers-scraper) for the same auction treatment on fine art, antiques and estate lots.
- [GovDeals Scraper](https://apify.com/parseforge/govdeals-scraper) if government surplus auctions belong in the same buy list.
- [ThredUp Scraper](https://apify.com/parseforge/thredup-scraper) for second-hand clothing at fixed prices instead of by auction.
- [Google Shopping Prices Scraper](https://apify.com/parseforge/google-shopping-prices-scraper) to compare an auction lot against current retail.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ 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.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords searched against the live ShopGoodwill auction index, for example 'vintage camera' or 'gold ring'. One search runs per term.

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

ShopGoodwill item page URLs such as https://shopgoodwill.com/item/276260567. Each URL is enriched with the full item record.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `categoryId` (type: `string`):

Restrict the search to one top-level ShopGoodwill category.

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

Order the auctions before the result limit is applied. Ending soonest is the site's own default.

## `minPrice` (type: `integer`):

Lowest current bid to keep, in US dollars.

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

Highest current bid to keep, in US dollars.

## `buyNowOnly` (type: `boolean`):

Keep only auctions that also carry a Buy It Now price.

## `pickupOnly` (type: `boolean`):

Keep only lots the Goodwill region requires you to collect in person.

## `searchDescriptions` (type: `boolean`):

Match the search term against the item description as well as the title. Widens the result set considerably.

## `proxyConfiguration` (type: `object`):

Route requests through Apify Proxy. Off by default because the source is open.

## Actor input object example

```json
{
  "searchTerms": [
    "vintage camera"
  ],
  "startUrls": [],
  "maxItems": 10,
  "sortBy": "1|0",
  "buyNowOnly": false,
  "pickupOnly": false,
  "searchDescriptions": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Key auction fields in a readable table.

## `fullData` (type: `string`):

Complete dataset with all 31 fields.

# 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 = {
    "searchTerms": [
        "vintage camera"
    ],
    "startUrls": [],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/shopgoodwill-auctions-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 = {
    "searchTerms": ["vintage camera"],
    "startUrls": [],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/shopgoodwill-auctions-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 '{
  "searchTerms": [
    "vintage camera"
  ],
  "startUrls": [],
  "maxItems": 10
}' |
apify call parseforge/shopgoodwill-auctions-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/shopgoodwill-auctions-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/JlcrQgQl0dbMe9gFn/builds/JDizjSQiEpgpiMlgK/openapi.json
