# ShopGoodwill Auctions Scraper (`caffein.dev/shopgoodwill-actor`) Actor

Scrape active and sold auctions from ShopGoodwill.com by keyword. Get final sold prices, bid counts, seller info, and item details. Filter by price range and shipping destination. Built for resellers, flippers, and sold comps research.

- **URL**: https://apify.com/caffein.dev/shopgoodwill-actor.md
- **Developed by:** [Caffein Dev](https://apify.com/caffein.dev) (community)
- **Categories:** Developer tools, E-commerce, Automation
- **Stats:** 24 total users, 8 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 basic data

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## ShopGoodwill Auctions Scraper (Active & Sold Auctions)

Scrape **active and completed auctions from ShopGoodwill.com** — Goodwill's online auction platform with 130+ stores nationwide.
This Actor returns **real auction data** including final sold prices for completed auctions.

Built for **resellers, flippers, price research, sourcing automation, and sold comps**.

---

### 🔎 What This API Provides

- **Active auctions** — find sourcing deals by keyword and price range
- **Completed auctions with final sold prices** — real comps, not estimates
- **Shipping filter** — narrow results to items that ship to the US, Canada, or internationally
- **Pagination** — automatically paginates results until `maxItems` is reached

---

### ⚙️ Input Parameters

| Field                   | Type   | Required | Default  | Description                                                                         |
| ----------------------- | ------ | -------: | -------- | ----------------------------------------------------------------------------------- |
| `searchText`            | string |      Yes | —        | Search keyword (product name, brand, category, etc.). Quotation marks are stripped. |
| `listingType`           | string |       No | `Open`   | `Open` = active auctions, `Closed` = completed auctions (sold comps).               |
| `closedAuctionDaysBack` | number |       No | `7`      | Only used when `listingType = Closed`. One of: `7`, `15`, `30`, `45`, `60`, `90`.   |
| `lowPrice`              | number |       No | `0`      | Minimum price filter.                                                               |
| `highPrice`             | number |       No | `999999` | Maximum price filter.                                                               |
| `shipToLocation`        | string |       No | `US`     | Shipping destination filter: `US`, `Canada`, `International`.                       |
| `maxItems`              | number |       No | `200`    | Maximum number of results to return (auto-paginates).                               |

---

### 📤 Output Schema

Each record represents **one ShopGoodwill auction listing**. Download as JSON, CSV, or Excel from the Apify Console, or access via the API.

#### Fields

This actor currently outputs a **single record type** (one per search result item).

| Field           | Type   | Description                                    |
| --------------- | ------ | ---------------------------------------------- |
| `itemId`        | number | ShopGoodwill internal item ID                  |
| `url`           | string | Direct link to the listing on shopgoodwill.com |
| `title`         | string | Listing title                                  |
| `currentPrice`  | number | Current bid (Open) or final price (Closed)     |
| `numberOfBids`  | number | Total number of bids                           |
| `auctionStatus` | string | `active` (Open) or `completed` (Closed)        |
| `startDate`     | string | Auction start timestamp (ISO 8601)             |
| `endDate`       | string | Auction end timestamp (ISO 8601)               |
| `thumbnailUrl`  | string | Listing thumbnail image URL                    |
| `sellerId`      | number | Goodwill store numeric ID                      |
| `sellerName`    | string | Goodwill store name (best-effort)              |
| `categoryName`  | string | Category name                                  |
| `catFullName`   | string | Full category path                             |
| `startingPrice` | number | Starting bid price                             |
| `minimumBid`    | number | Minimum allowed bid                            |
| `buyNowPrice`   | number | Buy-it-now price (may be `0` if not available) |
| `shippingPrice` | number | Shipping price as returned by search API       |
| `itemQuantity`  | number | Quantity in the lot                            |
| `scrapedAt`     | string | Timestamp when the data was scraped (ISO 8601) |

---

### 💡 Use Cases

#### Sold Comps & Price Research

Set `listingType` to `Closed` to get **completed auction results** from ShopGoodwill (sold comps). Use this data to set accurate max bids, validate product values, or build pricing models for secondhand goods.

#### Sourcing Automation

Search for active auctions by keyword and schedule runs every few hours. Pipe results to Google Sheets, Discord, or Slack via Apify integrations to get notified when underpriced items appear.

#### Cross-Platform Arbitrage

Pair with the [eBay Sold Listings](https://apify.com/caffein.dev/ebay-sold-listings) actor. Compare what items sell for on ShopGoodwill vs. eBay to identify categories with the best flip margins.

#### Market Research

Track auction activity over time with scheduled runs. Analyze bidding patterns, popular categories, and pricing trends across 130+ Goodwill stores.

---

### 🚀 How to Use

1. Click **"Try for free"** to open the Actor in Apify Console.
2. Enter your search keyword in `searchText`.
3. Choose `listingType`: `Open` for current auctions, `Closed` for sold comps.
4. (Optional) Set your price range with `lowPrice` and `highPrice`.
5. (Optional) Set `closedAuctionDaysBack` when using `listingType = Closed`.
6. Click **Start** and wait for results.
7. Download your data as JSON, CSV, or Excel — or access it via the Apify API.

#### Tip: Schedule for Monitoring

Set up a recurring schedule (daily, every 6 hours, etc.) to automatically monitor your keyword watchlists. Connect to Google Sheets or a webhook for real-time alerts when new auctions match your criteria.

---

### 🔗 Integrations

ShopGoodwill Auctions Scraper works with all standard Apify integrations:

- **Google Sheets** — auto-export results to a spreadsheet
- **Webhooks** — trigger custom actions on run completion
- **Zapier / Make / n8n** — build automated workflows
- **Discord / Slack** — get notifications for new results
- **REST API** — programmatic access from your own apps

---

### 📬 Feedback & Support

Found a bug or have a feature request? Open an issue in the **Issues** tab. Suggestions for new filters, fields, or integrations are welcome.

# Actor input Schema

## `searchText` (type: `string`):

Keyword(s) to search for. Quotation marks will be stripped.
## `listingType` (type: `string`):

Search open (active) auctions or closed (completed) auctions.
## `closedAuctionDaysBack` (type: `string`):

Only used when listingType=Closed.
## `lowPrice` (type: `number`):

Minimum price filter (default 0).
## `highPrice` (type: `number`):

Maximum price filter (default 999999).
## `shipToLocation` (type: `string`):

Filter auctions by shipping destination.
## `maxItems` (type: `integer`):

Maximum items to output across all pages (default 200).

## Actor input object example

```json
{
  "searchText": "vintage camera",
  "listingType": "Open",
  "closedAuctionDaysBack": "7",
  "lowPrice": 0,
  "highPrice": 999999,
  "shipToLocation": "US",
  "maxItems": 200
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "searchText": "vintage camera"
};

// Run the Actor and wait for it to finish
const run = await client.actor("caffein.dev/shopgoodwill-actor").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 = { "searchText": "vintage camera" }

# Run the Actor and wait for it to finish
run = client.actor("caffein.dev/shopgoodwill-actor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchText": "vintage camera"
}' |
apify call caffein.dev/shopgoodwill-actor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=caffein.dev/shopgoodwill-actor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ShopGoodwill Auctions Scraper",
        "description": "Scrape active and sold auctions from ShopGoodwill.com by keyword. Get final sold prices, bid counts, seller info, and item details. Filter by price range and shipping destination. Built for resellers, flippers, and sold comps research.",
        "version": "1.0",
        "x-build-id": "zl8Iqp0nNd841Ocqt"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/caffein.dev~shopgoodwill-actor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-caffein.dev-shopgoodwill-actor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/caffein.dev~shopgoodwill-actor/runs": {
            "post": {
                "operationId": "runs-sync-caffein.dev-shopgoodwill-actor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/caffein.dev~shopgoodwill-actor/run-sync": {
            "post": {
                "operationId": "run-sync-caffein.dev-shopgoodwill-actor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "searchText"
                ],
                "properties": {
                    "searchText": {
                        "title": "Search text",
                        "type": "string",
                        "description": "Keyword(s) to search for. Quotation marks will be stripped."
                    },
                    "listingType": {
                        "title": "Listing type",
                        "enum": [
                            "Open",
                            "Closed"
                        ],
                        "type": "string",
                        "description": "Search open (active) auctions or closed (completed) auctions.",
                        "default": "Open"
                    },
                    "closedAuctionDaysBack": {
                        "title": "Closed auction days back",
                        "enum": [
                            "7",
                            "15",
                            "30",
                            "45",
                            "60",
                            "90"
                        ],
                        "type": "string",
                        "description": "Only used when listingType=Closed.",
                        "default": "7"
                    },
                    "lowPrice": {
                        "title": "Low price",
                        "type": "number",
                        "description": "Minimum price filter (default 0).",
                        "default": 0
                    },
                    "highPrice": {
                        "title": "High price",
                        "type": "number",
                        "description": "Maximum price filter (default 999999).",
                        "default": 999999
                    },
                    "shipToLocation": {
                        "title": "Ship to location",
                        "enum": [
                            "US",
                            "Canada",
                            "International"
                        ],
                        "type": "string",
                        "description": "Filter auctions by shipping destination.",
                        "default": "US"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "type": "integer",
                        "description": "Maximum items to output across all pages (default 200).",
                        "default": 200
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
