GSA Auctions Scraper - Federal Surplus Vehicles & Equipment avatar

GSA Auctions Scraper - Federal Surplus Vehicles & Equipment

Pricing

from $2.50 / 1,000 auction lots

Go to Apify Store
GSA Auctions Scraper - Federal Surplus Vehicles & Equipment

GSA Auctions Scraper - Federal Surplus Vehicles & Equipment

Live federal surplus lots from the official GSA Auctions API: vehicles, heavy equipment, electronics and more. Lot name, current bid, bidders, auction start and end, location and agency, newest first. Filter by keyword, state, closing date and price. Sales contacts off by default.

Pricing

from $2.50 / 1,000 auction lots

Rating

0.0

(0)

Developer

Groundplane Labs

Groundplane Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Security

Limited permissions

Share

Collect active federal government surplus auction lots from GSA Auctions (gsaauctions.gov) via the official GSA Personal Property Management System (PPMS) API. Filter by keyword, property state, closing window, maximum current bid, or federal agency, and automatically extract 17-character VINs and mileage/equipment hours when listed in the lot description.

Free sample

Download a free sample (5 rows, real actor output, CSV): https://drive.google.com/uc?export=download&id=1hZisWODcOQnIN2r28-GrH0GiEw8L9Z5v. Check the columns and data quality before you run anything.

What it does

The U.S. General Services Administration (GSA) sells surplus federal assets—including fleet trucks, sedans, heavy construction equipment, boats, aircraft parts, industrial machinery, and scrap metal contracts—through GSA Auctions.

This Actor:

  • Fetches the full active-auctions feed from the official GSA Auctions v2 endpoint (https://api.gsa.gov/assets/gsaauctions/v2/auctions).
  • Normalizes bid metrics (currentBidUsd, bidIncrementUsd, bidderCount, reservePrice), dates (auctionStart, auctionEnd, daysUntilEnd), and property locations (city, state, zip).
  • Strips HTML markup from lotInfo to produce clean plain-text description fields (trimmed to 2,000 characters) and extracts 17-character vehicle vin values and odometer/meter hoursOrMiles where present.
  • Sorts lots either newest listed first (NEWEST, by auctionStart descending) or closing soonest first (ENDING_SOON, by auctionEnd ascending).

Who it's for

  • Commercial fleet, equipment, and auto resellers sourcing undervalued federal surplus vehicles, trailers, and machinery.
  • Scrap metal, recycling, and industrial liquidation buyers monitoring term contracts and bulk surplus lots by state.
  • Marine and aviation brokers tracking USCG boats, engines, and aerospace surplus.
  • Supply-chain and procurement analysts benchmarking secondary-market government asset recovery prices.

Input

  • keyword (string) — Case-insensitive keyword matched against itemName and lotInfo (e.g. "truck", "ford", "tractor", "boat"). Default: "" (all active lots).
  • states (array of strings) — Two-letter US state/territory codes where the property is located (e.g. ["CA", "TX", "VA"]). Default: [] (all states).
  • endingWithinDays (integer) — Return only auctions closing within this many calendar days from today (0 = no limit). Default: 0.
  • maxCurrentBidUsd (integer) — Return only lots whose current high bid (or $0 if unbid) is at or below this dollar threshold (0 = no limit). Default: 0.
  • agencyKeyword (string) — Case-insensitive keyword matched against agencyName or bureauName. Default: "".
  • sortBy (string enum) — "NEWEST" (auctionStart descending) or "ENDING_SOON" (auctionEnd ascending). Default: "NEWEST".
  • includeSalesContact (boolean) — Defaults to false so federal contracting officer contact fields (contractOfficer, coEmail, coPhone) are omitted unless explicitly enabled for lot inspection or bidding inquiries.
  • Privacy: with includeSalesContact off (the default), sales-officer emails and phone numbers are also removed from the description text.
  • dataGovApiKey (string, secret) — Optional free API key from api.data.gov. If you enter a key, the Actor uses yours. If you leave this blank, the Actor uses its configured account key when one is attached; otherwise it falls back to the public DEMO_KEY, which api.data.gov limits per IP address (about 30 requests per hour and 50 per day), so heavy or scheduled use should add your own free key. The completed run status names which kind of key was used (never the key itself).
  • maxItems (integer) — Maximum number of lots to return. Default: 200.

Example input JSON

{
"keyword": "",
"states": [],
"endingWithinDays": 0,
"maxCurrentBidUsd": 0,
"agencyKeyword": "",
"sortBy": "NEWEST",
"includeSalesContact": false,
"maxItems": 200
}

Example run options (default max charge $50)

Set a default maximum charge of $50 ("maxTotalChargeUsd": 50) in your run options:

{
"maxTotalChargeUsd": 50
}

Output

Results are deduplicated by lotId (saleNo-lotNo) and sorted by auctionStart descending (or auctionEnd ascending when sortBy is "ENDING_SOON").

FieldTypeDescription
lotIdstringUnique lot identifier (saleNo-lotNo).
saleNostringGSA sale number.
lotNostringLot number within the sale.
itemNamestring | nullLot title.
currentBidUsdnumber | nullCurrent high bid in USD (null when no bids have been placed).
bidIncrementUsdnumber | nullMinimum bid increment in USD.
bidderCountintegerNumber of active bidders (0 when unbid).
reservePriceboolean | number | string | nullRaw reserve flag/value from GSA.
auctionStartstring | nullAuction start date (YYYY-MM-DD).
auctionEndstring | nullAuction close date (YYYY-MM-DD).
daysUntilEndinteger | nullCalendar days until auctionEnd.
statusstring | nullAuction status, normalized to upper case: ACTIVE (open for bids) or PREVIEW. PREVIEW lots are not biddable yet; bidding opens on auctionStart.
isBiddablebooleantrue only when status is ACTIVE.
agencyNamestring | nullReporting federal agency name.
bureauNamestring | nullReporting federal bureau name.
citystring | nullProperty location city.
statestring | nullProperty location 2-letter state code.
zipstring | nullProperty location ZIP code.
vinstring | null17-character VIN parsed from lotInfo when present.
hoursOrMilesstring | nullOdometer mileage or equipment hours parsed from lotInfo when present.
imageUrlstring | nullPrimary lot photo URL.
lotUrlstring | nullDirect link to the lot preview page on gsaauctions.gov.
descriptionstring | nullClean plain-text description trimmed to 2,000 characters.
contractOfficerstring | nullFederal sales contracting officer name (only when includeSalesContact is true).
coEmailstring | nullContracting officer email (only when includeSalesContact is true).
coPhonestring | nullContracting officer phone (only when includeSalesContact is true).

Sample output row (synthetic example)

{
"lotId": "4-1-QSC-I-27-999-001",
"saleNo": "4-1-QSC-I-27-999",
"lotNo": "001",
"itemName": "2019 Ford F-250 Super Duty 4x4 Pickup Truck",
"currentBidUsd": 8400.0,
"bidIncrementUsd": 100.0,
"bidderCount": 4,
"reservePrice": true,
"auctionStart": "2026-10-20",
"auctionEnd": "2026-10-30",
"daysUntilEnd": 7,
"status": "ACTIVE",
"isBiddable": true,
"agencyName": "Department of the Interior",
"bureauName": "Bureau of Land Management",
"city": "Phoenix",
"state": "AZ",
"zip": "85004",
"vin": "1FT7W2B65KEE12345",
"hoursOrMiles": "64,210 miles",
"imageUrl": "https://www.ppms.gov/gw/auction/ppms/api/v1/auction/image/example.jpg",
"lotUrl": "https://www.gsaauctions.gov/auctions/preview/999999",
"description": "2019 Ford F-250 Crew Cab 4x4, 6.2L V8 gas engine, automatic transmission. Odometer reads 64,210 miles. VIN: 1FT7W2B65KEE12345."
}

How pricing works

Pay per result. You only pay for rows returned. Set "maxTotalChargeUsd": 50 in your run options to cap spend automatically.

Data source and terms

  • Official source: GSA Auctions API Documentation (open.gsa.gov) and api.data.gov Signup.
  • Update frequency: The GSA active-auctions feed updates daily / intra-day as new sales open and bids are placed.
  • Affiliation disclaimer: This Actor is an independent tool and is not affiliated with or endorsed by the U.S. General Services Administration (GSA).

Compliance

When includeSalesContact is enabled, the dataset includes federal contracting officer business contact details (contractOfficer, coEmail, coPhone) published by GSA for auction administration and inspection scheduling. Buyers are solely responsible for complying with the Telephone Consumer Protection Act (TCPA), the National Do-Not-Call Registry, the CAN-SPAM Act, and all applicable federal and state privacy laws before any outreach. Do not use this Actor for consumer or individual marketing.

Limits and FAQ

  • Does the GSA feed include an exact closing hour/minute or whether the reserve has been met? No. The official GSA Auctions v2 JSON feed publishes aucStartDt, aucEndDt, highBidAmount, and the boolean reserve indicator, but does not expose intraday closing timestamps or reserve-met status.
  • When should I provide dataGovApiKey? The built-in fallback (the Actor's account key when configured, otherwise the public DEMO_KEY) works out of the box because the Actor makes only one API request per run, but if you trigger many runs per hour, adding a free api.data.gov key avoids shared rate limits.

Changelog

  • v0.2 (2026-10-27): api.data.gov key resolution is now three-way: the dataGovApiKey input when provided, otherwise the account DATA_GOV_API_KEY secret, otherwise the public DEMO_KEY; the completed run status names which kind of key was used. Added the free sample linked above.
  • v0.1 (2026-10-23): Initial release supporting GSA Auctions v2 JSON feed, VIN/mileage regex extraction, and contact privacy controls.