GSA Auctions Listings Scraper
Pricing
$3.00 / 1,000 results
GSA Auctions Listings Scraper
Export live GSA Auctions listings for surplus asset sourcing, resale research, government liquidation monitoring, and price intelligence. Filter by keyword, state, sale status, and date range.
Pricing
$3.00 / 1,000 results
Rating
0.0
(0)
Developer
Neuton Scripts
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Features
Share
Find government surplus auction listings for vehicle sourcing, equipment resale and inventory research. Export listing descriptions, auction dates, property locations and bidder counts into a structured dataset, with links back to GSA Auctions for verification.
Try one listing first
Start with an unfiltered sample before narrowing your search. On the Actor's Input tab, use:
{"maxResults": 1}
Run the Actor, open its dataset and inspect the listing's url, itemName, auctionStatus, propertyState and aucEndDt. Follow the listing link to verify availability and terms before making a sourcing decision. Export the dataset in the format your downstream workflow needs.
This example limits saved results to one. It does not limit the size of the upstream API response or guarantee that GSA will return a listing. Leaving maxResults unspecified uses 100; set it explicitly for a small first run.
Find trucks in Texas
After confirming the sample works, try a focused search:
{"keywords": ["truck"],"states": ["TX"],"maxResults": 10}
An empty result can mean no current records match both filters. Remove the state filter, then broaden the keyword to diagnose a narrow search. If an unfiltered run is empty or fails, check the run log before treating that outcome as proof that there are no auctions.
What the filters mean
| Input | Behavior |
|---|---|
keywords | Case-insensitive substring search across item name, description, property city and property state. Any supplied keyword can match. This is not an exact category or semantic search. |
states | Matches property state abbreviations, such as TX or CA, rather than the separate location-state field. |
auctionStatuses | Case-insensitive exact status matching. Inspect a sample's status before choosing a filter. |
startDateFrom | Inclusive lower bound on auction start date; use YYYY-MM-DD. |
endDateTo | Inclusive upper bound on auction end date; use YYYY-MM-DD. |
maxResults | Maximum saved listings after filtering, from 1 to 1,000. Default: 100. |
apiKey | Optional api.data.gov key entered in the secret input field. Without it, the Actor uses DEMO_KEY. |
Different filter types combine: a keyword match must also satisfy any state, status and date filters. Results follow the source response order; there is no newest-first sorting control.
When a date filter is active, records with a missing or unparseable date for that filter are excluded. Invalid input dates and a start bound later than the end bound stop the run before it requests listings. An unfiltered run can still include listings with missing dates. Filters compare source calendar dates, not time-of-day or timezone-normalized instants.
Output fields
| Fields | Use |
|---|---|
saleNo, lotNo | Source identifiers for comparing listings. |
itemName, lotInfo | Item name and description with HTML removed from the description. |
auctionStatus, aucStartDt, aucEndDt | Source-reported status and auction dates. |
propertyAddr1, propertyCity, propertyState, propertyZip | Property address fields when supplied. |
locationCity, locationState | Separate source location fields; do not assume they equal the property address. |
biddersCount | Source-reported bidder count, not a sale price or valuation. |
url | Source listing URL, or a link constructed from the sale and lot identifiers. Verify that it opens the intended listing. |
sourceType, source, raw | Source labels and the original record for inspection. |
Every saved listing has a nonempty sale number, lot number and item name. Other fields can be missing when the source does not supply them. There is no normalized photo field, winning-price estimate or profitability score. Do not interpret a missing field as zero.
Repeat sourcing checks
Schedule repeated runs through Apify, then compare saleNo and lotNo in your own spreadsheet, database or automation. The Actor removes repeated identifier pairs within a run; it does not remember prior runs, send alerts itself or return only newly discovered listings. Repeated listings can therefore be saved and billed again on a later run.
For AI workflows, pass the dataset to your assistant or integration with the listing URL and source dates intact. Ask it to summarize the returned evidence, not invent valuations, availability or bidding advice.
Pricing and API access
The current result price is $3 per 1,000 saved listings ($0.003 each). Check the live Pricing tab before running. A one-listing sample is $0.003 in Actor result charges; a 25-listing cap is at most $0.075 in result charges. This is not a guarantee of your total account bill. Repeated listings on a later run can be charged again.
For regular use, obtain your own api.data.gov key and supply it in the secret apiKey input. The shared DEMO_KEY is only for initial exploration and has stricter limits. Both the official GSA API guide and api.data.gov manual describe this distinction. No key is included in dataset output or request URLs; it is sent in an authentication header. Keep your key out of screenshots and support messages.
The Actor requests the official API once and, when directed by it, downloads the current JSON feed from GSA's specific S3 file. It makes at most two HTTP requests, with no automatic access-error retries or further redirects. Your API key is not forwarded to the download host, and signed download URLs are not logged. HTTP errors, malformed responses and incomplete matching listings stop the run before any dataset rows are written. A valid response with no matches succeeds with an empty dataset. Inspect the free RUN_SUMMARY key-value record for completion, source-row count, saved rows, skipped duplicates and a non-sensitive failure code. Summaries and diagnostics are not dataset results and are not billed as listings. A dataset-storage failure after some complete rows have been written can leave those rows saved and billed; the summary will not mark the run complete.
Supply filters as arrays of nonempty strings, not comma-separated text. Each array accepts up to 100 entries of up to 200 characters; states must use two-letter abbreviations. Invalid filters and result limits fail before fetching rather than silently broadening a search. The current safety bounds reject source payloads above 25 MB or 25,000 rows; this is a validation limit, not server-side pagination. Do not keep retrying an unchanged access failure.
Responsible use
This independent Actor is not affiliated with or endorsed by GSA. It reads public auction information for sourcing and research; it does not place bids. Verify item condition, closing time, fees, eligibility, collection requirements and current availability on the official listing. Respect applicable source terms and avoid unnecessary collection or redistribution of personal information contained in raw records.