PublicSurplus Government Surplus Auction Scraper avatar

PublicSurplus Government Surplus Auction Scraper

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
PublicSurplus Government Surplus Auction Scraper

PublicSurplus Government Surplus Auction Scraper

Extract government surplus auctions from PublicSurplus.com across every browse category - vehicles, heavy equipment, computers, furniture, industrial gear and more - from roughly 9,000 US and Canadian government sellers, with agency, location, bid, and sold-price data.

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Scrapes government surplus auction listings from PublicSurplus, a marketplace where US and Canadian government agencies — states, counties, cities, school districts, and universities — sell surplus vehicles, equipment, electronics, and other assets. Returns one structured record per lot, covering every browse category, with agency, location, bid, and closing-price data.


PublicSurplus Scraper Features

  • Covers all 28 top-level PublicSurplus browse categories — vehicles, heavy equipment, computers, electronics, furniture, industrial gear, medical, real estate, and more
  • Returns the selling government agency and pick-up location (city + state) alongside every lot, so results join cleanly against other government-surplus datasets
  • Captures current bid, bid count, and — for lots whose auction ends during the crawl — the closing price
  • Filter by one or more categories, or leave blank to crawl everything
  • Supports resuming a large run that stopped early, without re-paying for records you already have

Who Uses PublicSurplus Data?

  • Surplus resellers and flippers sourcing inventory — heavy equipment, fleet vehicles, IT hardware, lab and AV gear
  • Municipal-fleet remarketers tracking what government agencies are offloading and at what price
  • Asset-recovery and liquidation firms building comparables from realized sale prices
  • Market researchers studying government surplus disposal patterns across US states and Canadian provinces

Input

{
"maxItems": 100,
"categories": ["17", "4"]
}
FieldTypeDefaultDescription
maxItemsinteger10Required. Maximum number of auction lots to return.
categoriesarray of stringsall 28PublicSurplus category ids to crawl (e.g. 17 = Heavy Equipment, 4 = Motor Pool). Leave empty for all categories.

Category ids

IdCategoryIdCategory
1Computers16Clothing
2Electronics17Heavy Equipment
3Office Equipment18Collectibles
4Motor Pool19Aviation
5Sporting Goods20Marine
6Industrial Equipment21Motor Pool Parts
8Food Supply22Airport
9School Supplies23Medical
10Building24Animals and Livestock
11Jewelry25Scrap
12Outdoor Equipment26Storage
13Music and Arts27Housewares
14Furniture28For Children
15Real Estate29Heavy Equipment Parts

Output Fields

{
"auction_id": "4063975",
"title": "SUM1500RMXL2U APC battery backup",
"category": "Electronics",
"category_id": 2,
"agency_name": "Show Low Unified School District",
"agency_region": "AZ",
"location_city": "Show Low",
"location_state": "AZ",
"current_bid_usd": 50,
"bid_count": 0,
"starting_bid_usd": 50,
"time_left_raw": "4 hours 6 mins",
"ends_at": "2026-08-21T19:00:00.000Z",
"quantity": null,
"condition": "UNKNOWN",
"description": "SUM1500RMXL2U APC battery backup untested",
"thumbnail_url": "https://d37qv0n5b4mbzm.cloudfront.net/sms/docviewer/cdnmainaucdoc/thumb-b/4063975/70982201",
"image_urls": ["https://d37qv0n5b4mbzm.cloudfront.net/sms/docviewer/cdnmainaucdoc/thumb-b/4063975/70982201"],
"detail_url": "https://www.publicsurplus.com/sms/auction/view?auc=4063975",
"is_closed": false,
"sold_price_usd": null,
"scraped_at": "2026-08-21T14:53:45.907Z"
}
FieldTypeDescription
auction_idstringPublicSurplus lot identifier
titlestringLot title
categorystringCategory name
category_idintegerCategory id
agency_namestringSelling government agency
agency_regionstringState/province badge shown on the lot's listing card
location_citystringPick-up location city
location_statestringPick-up location state/province
current_bid_usdnumberCurrent bid price in USD
bid_countintegerNumber of bids placed so far
starting_bid_usdnumberOpening bid, populated when the lot has zero bids so far
time_left_rawstringTime-left text as shown on the listing
ends_atstringAuction close time, ISO 8601
quantitystringQuantity, where the listing discloses one
conditionstringItem condition, as reported by the seller
descriptionstringFull lot description
thumbnail_urlstringPrimary lot image URL
image_urlsarrayLot image URLs
detail_urlstringDirect link to the lot on PublicSurplus
is_closedbooleanWhether the auction had ended at scrape time
sold_price_usdnumberClosing price, populated when the lot closed during the crawl
scraped_atstringISO-8601 timestamp of when the record was captured

Resuming a large crawl

Every run emits a resumeCursor in its Output. If a large crawl stops before it finishes — because it hit maxItems, your spend cap (maxTotalChargeUsd), or was aborted — start a new run with the same input plus that resumeCursor to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

  • You are not re-charged for records the earlier run already delivered.
  • Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its resumeCursor is no longer valid.
  • resumeCursor is opaque — supply it unmodified.

FAQ

How do I scrape PublicSurplus auctions?

Set maxItems and, optionally, categories — leave categories blank to cover every category. Run the actor; it returns one record per auction lot.

Can I get just one category, like heavy equipment or vehicles?

Yes. Set categories to any subset of the ids listed above.

Does this include auctions that have already closed?

Live auctions are the primary coverage. A lot that closes while its page is being crawled is captured as closed with its final sale price (is_closed: true, sold_price_usd populated) — this is opportunistic, not a guaranteed archive of every closed lot on the site.

How much does this cost to run?

Pay-per-event pricing — you pay per lot record returned. Exact per-event pricing is shown on the actor's Apify page before you run.


Why Use This Scraper?

  • Whole-site coverage — every browse category in one actor, not a single-category slice
  • Normalised agency + location fields — join cleanly against other government-surplus datasets
  • Resumable — a large full-catalog pull can pick up where it left off without duplicate charges