AllSurplus Scraper — Industrial Surplus Auction Lots avatar

AllSurplus Scraper — Industrial Surplus Auction Lots

Pricing

$4.50 / 1,000 per commercial surplus lot returneds

Go to Apify Store
AllSurplus Scraper — Industrial Surplus Auction Lots

AllSurplus Scraper — Industrial Surplus Auction Lots

$4.50 per 1,000 lots, no start fee. Every live COMMERCIAL surplus lot on AllSurplus: the named corporate seller, its pickup street address, closing time, current bid, buyer's premium, condition, quantity, specs and photos. Government surplus is excluded — our GovDeals Scraper covers that.

Pricing

$4.50 / 1,000 per commercial surplus lot returneds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

🏭 AllSurplus Scraper — Industrial & Commercial Surplus Auction Lots

Every live commercial surplus lot on AllSurplus, with the named corporate seller and the pickup street address on every single row.

Shell, Schneider Electric, HP, Seagate, Agilent, ArcelorMittal, Bristol Myers Squibb, Tyson and 120+ other companies sell their retired plant, machinery, lab kit and IT hardware here. This Actor returns each lot as one clean row: what it is, what it is worth right now, when bidding closes, which company is selling it, and the street address it has to be collected from.

⚠️ This Actor deliberately returns no government surplus

allsurplus.com is the storefront for two different corpora, and its own API separates them with one field, businessId. Measured live on 2026-09-18:

businessIdcorpusopen lotscovered by
GIGoDove — commercial/industrial surplus2,892👉 this Actor
GDGovDeals — government surplus26,705scrapersdelight/govdeals-auction-scraper
ADthe AllSurplus aggregate of both29,366

The two Actors complement each other: one covers the commercial half, the other the government half, and neither resells the other's rows. A scraper pointed at the aggregate returns mostly GovDeals lots — on the aggregate's first page, 85 of 100 rows were GD.

businessId=GI is a hard-coded constant here. No input can change it, it is sent as a server-side filter so GovDeals rows never even reach the wire, every row is checked again on the way out, and every delivered row carries business_id so you can verify the scope yourself.


🔎 What does AllSurplus Scraper do?

  • 🏢 Names the corporate seller on every rowseller_company was filled on 292 of 292 captured rows (100%), and on 2,892 of 2,892 on a full catalogue walk. Real company names, not Seller 12345 placeholders (0 placeholders in 292 rows, 26 distinct sellers).
  • 📍 Gives the pickup street address on every rowpickup_address 100% filled, 99.3% of them containing a street number. Buyers must inspect and remove, so Liquidity Services publishes where the equipment physically sits.
  • ⏱️ Real closing times in real UTCend_date 100% filled. The site's bare timestamps are US/Eastern wall-clock even on a lot in Denmark; this Actor derives the offset from each record instead of hard-coding EST/EDT, and hands you both.
  • 💰 The money, complete — current bid, opening bid, bid count, bid increment and buyer's premium % (12–18% on this corpus), all 100% filled on a live 300-lot run. The search API does not carry an increment at all (0 of 292 captured rows) — it comes from the live bid box, which this Actor calls for you.
  • 🔧 Structured spec attributesspecs is a label/value list straight off the lot (Manufacturer, Model, Serial Number, Year of Manufacture, Condition, Lot Number, Inventory ID), populated on 300 of 300 rows of a live 300-lot run.
  • 📄 Seller spec sheetsattachments turns the seller's own uploaded PDFs/spreadsheets into resolvable URLs. Genuinely sparse — 4.3% of a live 300-lot run carried one.
  • 🖼️ The whole photo gallery — the search grid gives you one thumbnail; the detail call gives the full set (up to 366 photos on one captured lot).
  • 🌍 Global, and it tells you the currency — lots in six currencies (USD, EUR, ZAR, CNY, AUD, GBP) across 15 countries. USA 1,150 · Germany 490 · Israel 405 · South Africa 331 · Netherlands 103 · Poland 94 · China 80 · Australia 67 · UK 67 · Denmark 43 · Belgium 29 · Spain 11 · South Korea 6 · Mexico 5 · France 2.
  • 🗂️ Sale-event context — industrial surplus sells in events ("Wizpaper – Corrugated Cardboard Factory", "ArcelorMittal Sale 23"). sale_event_title and sale_event_id are on every enriched row.
  • 🔔 Monitor mode — run it on a schedule and get only the lots that are new since last time, with Slack / webhook / email alerts.

👤 Who is this for?

BuyerWhat they do with a row
Industrial liquidators & used-machinery dealersSource inventory; specs + condition + buyer_premium_pct price a bid before the hammer
IT-asset disposition (ITAD) firmsTrack Seagate/HP/Agilent lots and the site they must be collected from
Exporters & freight forwarderspickup_address + country + end_date = a quotable collection job
Procurement / capex teamsBuy the same asset used, at a named plant, with the removal terms attached
B2B prospectorsA company disposing of plant is a trigger eventseller_company + pickup_address is the account and the site

📤 Output — one row per lot

Real row, reproduced from the captured bytes in fixtures/ (long text and the image list abbreviated with an ellipsis; the offline validator checks the abbreviations are real prefixes of the real values):

{
"lot_id": "80-29964",
"asset_id": 80,
"account_id": 29964,
"auction_id": 1,
"business_id": "GI",
"lot_url": "https://www.allsurplus.com/asset/80/29964",
"title": "Escher Wyss Corrugating Medium Board Paper Production Line",
"description": "Escher Wyss Corrugating Medium Board Paper Production Line\n\nComplete corrugating medium/board paper production line\n\nInstallation on 2 levels\nLine length approximately 110 m - Line …",
"category": "Complete Lines, Industrial",
"category_code": "28P",
"sale_type": "Make Offer",
"status": "active",
"audience": "General Public",
"currency": "EUR",
"current_bid": 100000,
"opening_bid": 100000,
"total_bids": 1,
"has_bid": true,
"high_bidder_id": null,
"reserve_met": true,
"seller_company": "MCEI Demolition",
"seller_account_id": 29964,
"pickup_address": "Rue du Chocquet",
"pickup_address_2": null,
"city": "Wizernes",
"state_code": "FR-O",
"state_name": "Hauts-de-France",
"zipcode": "62570",
"country": "France",
"country_code": "FRA",
"latitude": null,
"longitude": null,
"start_date": "2026-08-12T12:34:00.000Z",
"end_date": "2026-09-18T22:00:00.000Z",
"end_date_local": "2026-09-18T18:00:00",
"end_date_display": "September 18, 2026 06:00 PM EST",
"lot_number": "1",
"inventory_id": null,
"make": "Escher Wyss",
"model": null,
"model_year": "1986",
"thumbnail": "https://webassets.lqdt1.com/assets/photos/29964/29964_80_ab75997b-3ff9-4c4e-9d5c-546bb71f806f.jpg?cb=260812082542",
"search_scope": "all open commercial lots",
"quantity": 1,
"quantity_unit": "Each",
"quantity_available": 1,
"condition": "Used/See Description",
"condition_code": "SD",
"vin_serial": null,
"specs": [
{ "label": "Manufacturer", "value": "Escher Wyss" },
{ "label": "Year of Manufacture", "value": "1986" },
{ "label": "Condition", "value": "Used/See Description" },
{ "label": "Lot Number", "value": "29964-80" }
],
"attachments": [],
"weight": null,
"weight_unit": null,
"sale_event_id": 31001,
"sale_event_title": "Wizpaper - Corrugated Cardboard Factory",
"category_path": "Industrial, Commercial Equipment > Complete Plants and Lines, Industrial > Complete Lines, Industrial",
"parent_category": "Complete Plants and Lines, Industrial",
"asset_class": null,
"seller_type": "Commercial Seller",
"seller_page_url": null,
"marketplace_contact_name": "EMEA Customer Services",
"marketplace_contact_email": "LSI-EMEA@liquidityservices.com",
"marketplace_contact_phone": "+3302070983792",
"inspection_terms": "Items offered for sale are sold “as is / where is” subject to sale terms and conditions. M …",
"payment_terms": "Payment instructions: Payments must be made by bank transfer unless otherwise stated. To o …",
"pickup_terms": "Items may be removed by appointment only. All items must be removed within the removal per …",
"special_terms": "Please note: If you are the winning bidder and default on your purchase in any way, your a …",
"images": [
"https://webassets.lqdt1.com/assets/photos/29964/29964_80_ab75997b-3ff9-4c4e-9d5c-546bb71f806f.jpg?cb=260812082542",
"https://webassets.lqdt1.com/assets/photos/29964/29964_80_124cebb1-053c-4822-854c-97b978931dbc.jpg?cb=260812082544",
"… 9 more"
],
"image_count": 11,
"is_cross_listed": true,
"detail_fetched": true,
"bid_increment": 1500,
"buy_now_price": null,
"buyer_premium_pct": 18,
"has_reserve": false,
"auto_extension": false,
"view_count": 96,
"visitor_count": 53,
"watcher_count": 1,
"bid_box_fetched": true
}

Every field, and how often it is really filled

Fill % below is measured against the raw bytes, not against the parser, and comes from three real measurements on 2026-09-18: a full 2,892-lot catalogue walk, a 300-lot live platform run (run NrTaIqa05bEIVRNhu, where 300 of 300 lots got both enrichment calls), and a 65-lot enrichment sample. Where a number is slice-dependent, both are given — e.g. pickup_address_2 is 38.6% across the whole catalogue but 5.0% on the closing-soonest 300, which are 283/300 US lots. A filtered run will differ from these, and that is the source varying, not the parser.

Identity — on every row

FieldTypeFillWhat it is
lot_idstring100%"<asset_id>-<account_id>" — stable, unique, the key to dedupe on
asset_idint100%AllSurplus asset id
account_idint100%Seller account id (the second number in a lot URL)
auction_idint100%The auction round. An unsold lot is re-listed under a new round
business_idstring100%Always "GI". Your proof that no GovDeals row got in
lot_urlstring100%The lot page on allsurplus.com
lot_numberstring96.6%Seller's own lot number. The -1 "no lot number" sentinel is null, never "-1"
inventory_idstring93.5%Seller's internal inventory reference
search_scopestring100%Which of your scopes produced this row
scraped_atISO100%When we read it

The seller and where the equipment sits — the reason this Actor exists

FieldTypeFillWhat it is
seller_companystring100%The selling company, by name
seller_account_idint100%Its AllSurplus account id — feed it back in as sellerAccountIds for everything they list
seller_typestring100%ᴿ"Commercial Seller" on 300 of 300 live rows and 65 of 65 sampled lots. The government-seller filter returns 0 lots in this corpus
pickup_addressstring100%Street address the lot must be collected from
pickup_address_2string38.6%ᶜ / 5.0%ᴿSecond address line where the seller published one. Common outside the US, rare inside it
citystring100%
state_codestring94.5%TX, DE-SN, FR-O. null where the country has no sub-region (the API writes DNK-NA)
state_namestring94.5%Texas, Hauts-de-France
zipcodestring99.7%ᶜ
countrystring100%Full name, e.g. United States of America. A keyword search is the one scope where AllSurplus omits the country name from its response (0 of 20 rows, measured twice) — there it is decoded from the ISO-3 code, which is always present, using names taken from the scopes that do publish them. An unrecognised code gives null rather than a guess
country_codestring100%ISO-3, e.g. USA
latitude / longitudefloat53.3%ᶜ / 74.7%ᴿNever a fabricated 0,0 — absent means null
seller_page_urlstring17%¹The seller's microsite on AllSurplus where one exists
marketplace_contact_*string91.7%ᴿ / 95%¹See the terms table below — it is not the seller company's contact

The lot

FieldTypeFillWhat it is
titlestring100%
descriptionstring100%HTML stripped to readable text
categorystring100%e.g. Complete Lines, Industrial
category_codestring100%AllSurplus' own code, usable as a categories input
parent_categorystring58%¹
category_pathstring100%¹Full breadcrumb chain
asset_classstring57%¹Seller's asset class label
makestring68.8%
modelstring56.8%
model_yearstring34.6%ᶜ
vin_serialstring57.3%ᴿ / 46%¹VIN or serial where the seller published one
quantityint100%¹
quantity_unitstring100%¹Each, Lot, Pallet
quantity_availableint100%¹
conditionstring100%¹New/Unused, Used/See Description
condition_codestring100%¹The raw code. A trailing-space code ("N ") is trimmed before lookup
specsarray100%ᴿ[{label, value}] — Manufacturer, Model, Serial Number, Year, Condition, Lot Number, Inventory ID. 300 of 300 live rows
attachmentsarray4.3%ᴿ / 9%¹[{title, file_name, url}] — the seller's own spec PDFs/spreadsheets. Genuinely sparse
weight / weight_unitnumber / string1.0%ᴿ / 3%¹Published on very few lots. Kept, not advertised
imagesarray100%¹Full gallery, absolute URLs
image_countint100%¹
thumbnailstring100%First image; present even without the detail call
is_cross_listedbool100%¹Whether the same lot also appears on another Liquidity Services marketplace

The money and the clock

FieldTypeFillWhat it is
currencystring100%USD, EUR, ZAR, CNY, AUD or GBP — per lot
current_bidnumber100%
opening_bidnumber100%
total_bidsint100%0 is a real answer and is delivered as 0 (206 of 292 captured rows had no bids yet)
has_bidbool100%Derived, always consistent with total_bids
high_bidder_idint23%null, never 0, when nobody has bid
reserve_metbool100%
has_reservebool30%²
bid_incrementnumber100%ᴿ / 98%²Not in the search API at all — from the live bid box
buy_now_pricenumber3%²null, never 0, when there is no buy-now price
buyer_premium_pctnumber100%ᴿ12%, 12.5%, 15% or 18% on this corpus. Changes what a bid really costs
auto_extensionbool60%²Whether a late bid extends the close
view_count / visitor_countint100%²
watcher_countint68%²
sale_typestring100%Online Auction (2,027), Make Offer (782), Buy Now (83)
statusstring100%active
audiencestring100%General Public, Approved Bidder, or the named sale event
start_dateISO UTC100%
end_dateISO UTC100%Real UTC, offset derived per record
end_date_localstring100%The site's own US/Eastern wall-clock string
end_date_displaystring100%The site's own display string, verbatim
time_left_secondsint100%Never negative
time_remainingstring100%The site's d:h:m:s counter
sale_event_idint100%¹
sale_event_titlestring100%¹e.g. Wizpaper - Corrugated Cardboard Factory

The terms, and the contact that is not the seller's

FieldTypeFillWhat it is
inspection_termsstring100%¹When and how you may inspect
payment_termsstring100%¹
pickup_termsstring100%¹Removal window and conditions — the field that decides whether a lot is worth bidding on
special_termsstring100%¹
marketplace_contact_name / _email / _phonestring91.7%ᴿLiquidity Services' own desk — not the seller company's contact. Measured on 62 lots that publish one: 35 are LSI-EMEA@liquidityservices.com or a named Liquidity Services rep, 27 are buyerhelp@allsurplus.com, and 0 are on the seller company's own domain. Named marketplace_contact_* for exactly that reason
detail_fetched / bid_box_fetchedbool100%Whether each enrichment call actually succeeded on this row, so a null is never ambiguous

ᴿ from the 300-lot live platform run (300 of 300 rows got both enrichment calls) · ¹ from the 65-lot detail capture sample · ² from the 63 of 65 captured lots whose bid box answered · ᶜ from the full 2,892-lot catalogue walk

Fields we do not ship, and why

A column of nulls is worse than an honest omission, so these are cut and the measurement is stated:

Not shippedWhy
meter_reading, meter_unitOdometer / hour meter: 0 of 65 sampled lots carry one. It is a GovDeals vehicle field — the sibling Actor has it
seller_websiteDetail webAddr: 0 of 65
will_shipfalse on 65 of 65 — a column that carries no information
nsnA US federal stock number: 0 of 65 (it does not exist on commercial surplus)
sku0 of 65
final_price, is_soldThere is no sold price to read: the open index held 0 closed lots of 2,892, and isSoldAuction was false on all 2,892
bid_historyPOST /assets/{asset}/{account}/bids/search answers HTTP 200 with [] to an anonymous caller even on a lot that has bids — it is login-gated, so the column would be empty on every row

⚙️ Input

Leave everything at its defaults for a 50-lot sample of the open commercial catalogue. Nothing is required.

InputDefaultWhat it does
startUrlsPaste any allsurplus.com URL — a search page or a lot page. Mixed lists are fine. Wins over searchType
searchTypeallall · keyword · country · state · category · seller · lotUrls
keywordsOne scope per term. "forklift" matched 81 lots on 2026-09-18
countriesNames, ISO codes or a whole region ("Europe, the Middle East & Africa"), resolved against the site's own live location menu
statesTXTexas automatically; outside North America use the local region name (Antwerpen)
categoriesNames or codes. A family name expands to every child code — "Metalworking Equipment" → 148 codes
sellerAccountIdsNumeric seller ids — everything one company is selling
lotUrlsIndividual lot pages
saleTypeAnyOnline Auction / Make Offer / Buy Now / Sealed Bid
timeWindowAnyClosing today / Newly listed
minBid / maxBidFiltered before delivery, so a rejected lot is never charged
includeClosedLotsfalse
sortByClosing soonestDecides what a capped run gets
fetchDetailstrueThe two enrichment calls. No extra charge
maxLots500 = the whole catalogue (2,892 lots)
monitorMode + alertsfalseOnly new lots since last run; Slack / webhook / email
proxyConfigurationApify proxyDatacenter is enough — measured 29/29 and 65/65 clean
requestConcurrency51–10
diagnosefalseDumps the raw API response and the normalised row, then stops

Which filters are server-side (and which the API silently ignores)

This API accepts a filter it does not apply and answers HTTP 200 with the whole corpus. Every one was tested individually on 2026-09-18 and only the working ones are ever sent:

FilterServer-side?Evidence
businessId=GI2,892 of 29,366
country / regionUSA 1,150 · Germany 490 · EMEA 1,581
state / provinceTexas 66 · Antwerpen 2
sale typeOnline Auction 2,027
categorycode 454 → 33
keywordforklift → 81
seller account27040 → 13
closing today14
city facet❌ ignoredstill returns all 2,892 — never sent
sellerDisplayName, condition, currencyTypeCode facets❌ ignoredstill return all 2,892 — never sent
two countries in one OR list❌ HTTP 400so N countries = N scopes

💵 Pricing

EventRate
Per commercial surplus lot returned (lot-scraped)$0.0045$4.50 per 1,000 lots
Run startnone. There is no start fee
Lot details, specs, photos, terms, buyer's premiumincluded — no separate event
  • The whole open commercial catalogue (2,892 lots, fully enriched) costs about $13.01.
  • A 50-lot default run costs $0.23.
  • You are charged only for rows delivered to your dataset. A lot rejected by your bid filters, a lot AllSurplus has no record for, and any row outside the commercial corpus are all reported in RUN_STATS and never billed. Delivery and billing are atomic, so if you hit a run cost cap you keep exactly the rows you paid for — never billed-but-missing.
  • A run that matches nothing costs nothing.

Measured throughput (live platform runs, 2026-09-18, 512 MB, default concurrency 5, fully enriched): 25 lots in 17 s, 300 lots in 151 s — 605 HTTP calls with 0 retries. Your Apify platform compute for the 300-lot run was $0.0066, i.e. the platform cost is a rounding error next to the per-row price; you are paying for the data, not for our container.


❓ FAQ

Does this return GovDeals / government surplus lots? No, by design. businessId=GI is hard-coded, sent as a server-side filter, re-checked on every row on the way out, and published on each row as business_id. Government surplus is covered by our sibling Actor scrapersdelight/govdeals-auction-scraper — the two complement each other and neither resells the other's rows.

Why would I want the commercial half specifically? Because that is the half with a named company and a real plant address on it. GovDeals rows name a public agency; GoDove rows name Shell, Schneider Electric, HP, Seagate, ArcelorMittal, Bristol Myers Squibb, Tyson. If your buyer cares about industrial assets, corporate disposals, or the company behind the lot, this is the corpus.

How does this compare with the other AllSurplus scraper on the store? There is exactly one — and this one is more featured at a lower price. That one walks the aggregate AllSurplus corpus, so most of what it returns is GovDeals government surplus resold under an AllSurplus name, and every field it ships comes from the search row alone: it calls neither the asset-detail endpoint nor the live bid box, so it has no condition, quantity, spec attributes, seller spec PDFs, photo gallery, sale event, category path, inspection/payment/removal terms, bid increment or buyer's premium. It also charges a run-start fee on top of its per-row rate. This Actor is commercial-only (0 GovDeals rows, asserted), ships all of those fields, and has no start fee.

How big is it, really? Small and honest: 2,892 open lots across 131 seller accounts on 2026-09-18, walked end to end. The whole catalogue came back in 29 pages with 0 duplicates and the walked count equalled the API's own x-total-count exactly. It is not a million-row dataset and this page will not pretend it is.

Is the seller contact email the company's? No — and it is named marketplace_contact_* so nobody is misled. All 62 sampled contacts are Liquidity Services addresses (LSI-EMEA@liquidityservices.com, buyerhelp@allsurplus.com) or a named Liquidity Services rep. The lead value here is seller_company + pickup_address, which you enrich yourself.

Can I get the bid history? No. The endpoint exists but is login-gated: it answers HTTP 200 with [] to an anonymous caller even on a lot that has bids. Rather than ship an always-empty column, it is cut and documented.

Can I get sold prices / results? No. The open index held 0 already closed lots of 2,892, and isSoldAuction was false on every one, so there is nothing to read a hammer price from. includeClosedLots exists so that a closed lot can never be delivered and billed as if it were still bidable.

Do I need a login, a cookie or a CAPTCHA solver? No. The Actor uses the site's own public JSON API with the anonymous web key the site publishes in its own JavaScript bundle, and it re-reads that key from the live bundle on every run so a key rotation heals itself. No browser, no session pinning, no residential proxy.

Is the shared Apify datacenter proxy enough? Yes. Measured on 2026-09-18: a live 300-lot platform run made 605 HTTP calls with 0 retries, 300 of 300 asset-detail calls and 300 of 300 live bid boxes answered, and a full catalogue walk took 29 of 29 search pages clean. You can point proxyConfiguration anywhere you like.

How do amounts work across countries? Lots are priced in six currencies (USD, EUR, ZAR, CNY, AUD, GBP). currency is per lot and nothing is converted. minBid/maxBid compare the raw number in the lot's own currency — set them per-currency scope if that matters to you.

Why are latitude/longitude missing on some rows? Because the source does not publish them for those lots (53.3% coverage). They come back null, and never as a fabricated 0,0 that would drop a lot in the Gulf of Guinea.

Can I watch one company? Yes — take its seller_account_id from any row, put it in sellerAccountIds, and turn on monitorMode to get only what is newly listed, with a Slack/webhook/email alert.

How do I run the whole catalogue? Set maxLots: 0. Expect ~2,892 rows, a few minutes, and about $13.01.

Do the different searchType modes all actually work? Each one was run on the platform, not just unit-tested: all (300 rows), keyword (10), country (10), a whole region (10), category with a family name expanded to 148 codes (10), lotUrls (1), a pasted lot page via startUrls (1), and monitorMode twice — the second pass returned 0 new, which is the proof that the monitor's memory really persists between runs. Every one delivered exactly what it billed.

Something looks wrong — how do I show you? Turn on diagnose. It dumps the raw API response, the businessId values on the page, the page-1/page-2 overlap and the normalised row into the key-value store, then stops. It costs nothing.


🧪 How this Actor is verified

  • 31 fixture files, 1.8 MB of real captured bytes from the live API through the Apify datacenter proxy, byte counts pinned in fixtures/MANIFEST.json.
  • An offline validator (node offline_validate.mjs) that re-derives every number on this page from those bytes rather than asserting a stored one — including an explicit check that zero GovDeals rows survive the pipeline when it is fed a real aggregate page containing 85 of them.
  • Truncation guard: a search page is 190–255 KB, exactly the window where the datacenter proxy cuts a body mid-stream under HTTP 200, so every response is checked against its declared Content-Length before it is parsed.
  • A non-200 is treated as a transport failure and retried on a fresh proxy session, never as end-of-data.
  • AllSurplus lot listings are public: no account, no login and no cookie is needed to read them, and Liquidity Services publishes the seller company and the pickup address by convention, because buyers must be able to inspect the equipment and remove it after the sale. That convention is the commercial basis for this data. It is not the same basis as government surplus, where public sale is required by state procurement and disposal statutes — that corpus is out of scope here and is covered by the sibling Actor. The two are not blurred together.
  • https://www.allsurplus.com/robots.txt on 2026-09-18 contains Crawl-delay: 5, Disallow: /account/ and Disallow: /assets/ (the static asset directory, with Allow: /assets/images/). The lot pages this Actor references live at /asset/<id>/<account> and are not under either Disallow — the same file publishes Sitemap: https://files.lqdt1.com/zstcntr-sitemap/Assets_Sitemap_AllSurplus.xml, i.e. the site asks search engines to crawl exactly these lot pages.
  • This Actor reads the site's own public JSON API with the anonymous web key the site ships in its public JavaScript bundle. No credential was extracted, guessed, or minted, and no authenticated endpoint is touched.
  • No personal data is collected. seller_company is a business name; pickup_address is a business premises; marketplace_contact_* is a corporate helpdesk. There are no buyer identities in the output.
  • Bid amounts and time-remaining are snapshots at scrape time. Re-run for fresh values.
  • This is an independent tool and is not affiliated with or endorsed by AllSurplus, GoDove, GovDeals or Liquidity Services. You are responsible for complying with their Terms of Service.