shopgoodwill.com APIshopgoodwill.com ↗
Access ShopGoodwill auction listings, item details, bid history, shipping info, categories, and featured items via a structured JSON API.
curl -X GET 'https://api.parse.bot/scraper/49f1b060-de69-477f-9028-da1eea2aff21/search_listings?page=1&query=shoes&page_size=5' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for items on shopgoodwill.com with filters. Returns paginated auction listings with category metadata.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based). |
| query | string | Search keyword. |
| low_price | string | Minimum price filter. |
| page_size | integer | Results per page. |
| seller_id | string | Seller ID to filter by. |
| high_price | string | Maximum price filter. |
| category_id | integer | Category ID to filter by. 0 returns all categories. |
| sort_column | string | Sort column: 1 for ending soonest, 2 for newest listed. |
| closed_auctions | string | Include closed auctions. Accepted values: true, false. |
| sort_descending | string | Sort descending. Accepted values: true, false. |
{
"type": "object",
"fields": {
"searchResults": "object containing items array and itemCount integer",
"categoryListModel": "object containing categoryModel array of category tree nodes"
},
"sample": {
"data": {
"searchResults": {
"items": [
{
"title": "UGG Fluff Yeah Women's Cream Slide Slippers Sz 8 Shoes",
"itemId": 263858212,
"endTime": "2026-05-14T09:35:16",
"numBids": 6,
"sellerId": 337,
"categoryId": 1703,
"categoryName": "Size 8",
"currentPrice": 25,
"shippingPrice": 0
}
],
"itemCount": 19236
},
"categoryListModel": {
"categoryModel": [
{
"name": "Antiques",
"children": [],
"categoryId": 1,
"levelNumber": 1
}
]
}
},
"status": "success"
}
}About the shopgoodwill.com API
The ShopGoodwill API covers 9 endpoints for querying Goodwill's online auction marketplace, returning structured data on listings, pricing, bids, and shipping. The get_item_details endpoint alone surfaces over 8 fields per item including current bid price, number of bids, HTML description, and handling fees. Use search_listings to filter by keyword, price range, category, or seller, and paginate results with full category tree metadata alongside each response.
Searching and Browsing Listings
The search_listings endpoint accepts filters for query, low_price, high_price, category_id, seller_id, and sort_column. Sort options cover ending-soonest (1) and newest-listed (2). Each response includes a searchResults object with an items array and a total itemCount, plus a categoryListModel containing a full category tree. The get_newly_listed endpoint mirrors this response shape but is pre-sorted by recency and accepts page, page_size, and category_id without requiring a keyword.
Item Details, Bids, and Shipping
get_item_details returns the full auction record for a single item: title, currentPrice, numberOfBids, bidHistory (split into bidSummary and bidComplete arrays), an HTML description, and both shippingPrice and handlingPrice. The standalone get_item_bid_history endpoint returns the same bid arrays plus an auctionClosed boolean and itemCurrentPrice, useful for polling auctions near close. get_item_shipping returns the carrier name (shipper), weight, handlingPrice, noCombineShipping, and an allowShippingCalculation flag indicating whether dynamic shipping rates can be computed for the item.
Categories and Discovery
get_categories returns the full top-level category list with nested children arrays and integer categoryId values ready to pass directly into search_listings or get_newly_listed. get_subcategories accepts a parent_category_id and returns only the children of that node. get_advanced_search_filters returns both the full category tree and a sellers array of seller/location objects with sellerId and searchFilterName fields — useful for populating filter UIs. get_featured_items returns the homepage gallery as an items array with a total count.
- Track auction price history on specific item categories using
get_item_bid_historyandauctionClosedsignals - Build a price-alert tool that polls
search_listingswithlow_price/high_pricefilters for undervalued items - Aggregate newly listed electronics or collectibles by combining
get_newly_listedwith a specificcategory_id - Display accurate shipping cost breakdowns using
shippingPrice,handlingPrice, andnoCombineShippingfromget_item_shipping - Populate a faceted search UI with seller and category filter options from
get_advanced_search_filters - Monitor a specific seller's inventory over time by filtering
search_listingswith a fixedseller_id - Surface homepage trending inventory programmatically via
get_featured_itemsfor a deal-aggregation feed
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ShopGoodwill have an official developer API?+
What bid data does `get_item_bid_history` return, and how is it structured?+
get_item_bid_history returns two arrays: bidSummary (each entry includes bidderName and amount) and bidComplete (each entry includes bidAmount and bidTime). It also returns an auctionClosed boolean and the itemCurrentPrice at the time of the request. It does not return bidder profile details beyond the display name.Can I place bids or create watchlists through this API?+
How does pagination work in `search_listings`?+
search_listings accepts a 1-based page integer and a page_size integer. The response includes itemCount in the searchResults object, which you can use to calculate total pages. If page_size is omitted, a default page size applies. There is no cursor-based pagination; only offset-style page numbers are supported.Does the API return sold or completed auction data?+
auctionClosed flag and current price available in get_item_bid_history. You can fork this API on Parse and revise it to add a completed-auctions endpoint if that data becomes accessible.