GSA Auctions Listings Scraper · Apify
GSA Auctions Listings Scraper avatar

GSA Auctions Listings Scraper

Pricing

$3.00 / 1,000 results

Go to Apify Store
GSA Auctions Listings Scraper

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

Neuton Scripts

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Features

Limited permissions

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

InputBehavior
keywordsCase-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.
statesMatches property state abbreviations, such as TX or CA, rather than the separate location-state field.
auctionStatusesCase-insensitive exact status matching. Inspect a sample's status before choosing a filter.
startDateFromInclusive lower bound on auction start date; use YYYY-MM-DD.
endDateToInclusive upper bound on auction end date; use YYYY-MM-DD.
maxResultsMaximum saved listings after filtering, from 1 to 1,000. Default: 100.
apiKeyOptional 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

FieldsUse
saleNo, lotNoSource identifiers for comparing listings.
itemName, lotInfoItem name and description with HTML removed from the description.
auctionStatus, aucStartDt, aucEndDtSource-reported status and auction dates.
propertyAddr1, propertyCity, propertyState, propertyZipProperty address fields when supplied.
locationCity, locationStateSeparate source location fields; do not assume they equal the property address.
biddersCountSource-reported bidder count, not a sale price or valuation.
urlSource listing URL, or a link constructed from the sale and lot identifiers. Verify that it opens the intended listing.
sourceType, source, rawSource 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.