Auction.com Scraper - Foreclosures, Auctions & Property Data avatar

Auction.com Scraper - Foreclosures, Auctions & Property Data

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Auction.com Scraper - Foreclosures, Auctions & Property Data

Auction.com Scraper - Foreclosures, Auctions & Property Data

From $1/1K. Extract foreclosure, REO, short-sale, and auction listings from Auction.com in minutes. Search by location and property filters or paste any Auction.com URL. Get 45+ structured fields, including auction dates, bids, estimated values, occupancy status, coordinates, and photos.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

5

Monthly active users

20 hours ago

Last modified

Share

Auction.com Scraper: Foreclosure, Bank-Owned and Private-Seller Auction Listings

Auction.com Scraper turns Auction.com into structured real estate auction data. Search foreclosure, bank-owned, short-sale and private-seller listings by state, city, ZIP, property type, asset type, beds, baths, square footage, price and auction format, or paste one or more Auction.com search links straight from the site. Every listing comes back with dozens of structured fields including auction dates, starting bid, valuation estimates, occupancy and photos, and you can export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • Two ways to build a search. Filter by state, city, ZIP, property type, asset type, beds, baths, square footage, price and auction format, or paste one or more Auction.com search links and reuse work you already did on the site.
  • A wide field set per listing. Address, coordinates, property facts, auction window, starting bid, valuation and rental estimates, occupancy, financing and buyer-premium flags, plus the complete source object under raw for anything not surfaced flat.
  • Optional full-detail pass. Turn on fetchDetails for the complete photo gallery, financing preference, deposit and earnest-money minimums, leaseback terms and days-to-close per listing, billed only for listings that actually come back, not for every candidate checked. A pasted single-listing detail link always fetches full detail, regardless of this setting.
  • Resumable runs. resumeFromRunId collects only the listings a previous run doesn't already have, so you can pick up where an earlier run left off without paying twice. Long runs also checkpoint their own progress, so a platform migration never restarts a run from zero.
  • Built for schedules. Incremental mode remembers the previous run of the same search itself, so a recurring daily or weekly run returns only new and updated listings, and duplicates are suppressed and not billed.
  • One input controls volume. maxListings is the sole cap on how many listings a run collects. Page walking itself has no artificial ceiling, so a capped run still sees the most relevant part of the catalogue first.
  • Multi-state and multi-URL in one run, with automatic de-duplication across searches.

Use Cases

  • Real estate investors: filter foreclosure and bank-owned inventory by state, price range and property type to build a shortlist of deals.
  • Wholesalers and flippers: run the same search on a schedule with incremental mode to catch new listings and price or status changes as soon as they post.
  • Market researchers and analysts: build historical datasets of starting bids, valuation estimates and auction outcomes across states and asset types.
  • PropTech and lead-gen products: feed structured auction listings into your own app, CRM or alerting tool through the API.
  • Due diligence teams: pull full auction terms, financing preference and occupancy details for a shortlist of properties with fetchDetails.

Data You Get

Sample shape: values are illustrative placeholders, not from a live listing.

FieldExample
listingId"00000001"
url"https://www.auction.com/details/123-sample-st-city-st-00000001"
address"123 Sample St, Springfield, ST 00000"
city / state / zip"Springfield" / "ST" / "00000"
county"Sample County"
latitude / longitude38.0000 / -90.0000
propertyTypeGroup"SINGLE_FAMILY"
assetType"BANK_OWNED"
listingStatusGroup"ACTIVE"
bedrooms / bathrooms3 / 2
squareFootage1800
lotSize0.25
yearBuilt1995
startingBid150000
estimatedValue225000 (valuation estimate)
rentalEstimate1800 (monthly rent estimate)
auctionType"ONLINE"
auctionStartDate / auctionEndDate"2026-01-01T00:00:00Z" / "2026-01-03T00:00:00Z"
occupancyStatus"VACANT"
financingAvailable / buyerPremiumAvailabletrue / false
isRemoteBidEnabledtrue
primaryPhoto / photoCounta photo URL / 12
rawthe complete source listing object

Every record also carries marketing tags, open house dates, trustee-sale and financing-broker flags, valuation bands (low/high) and an isHot marker, and the fields above cover only the flat, top-level view. When fetchDetails is on, each listing additionally gets a full photo array, financing preference, inspection and leaseback terms, days-to-close, earnest-money deposit minimum and the raw detail payload under detailRaw. When incremental mode is on, every returned record also carries changeType, changedFields, firstSeenAt and lastSeenAt (see "Resume and recurring updates" below).

How to Use

  1. Pick a mode: search (build a query from filters) or url (paste one or more Auction.com search links).
  2. Fill in the filters for search mode (state, city, ZIP, property type, asset type, beds, baths, square footage, price), or paste your links for URL mode.
  3. Turn on fetchDetails if you want full auction terms per listing, and set Max listings to control run size and cost.
  4. Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.

Search a single state for active listings:

{
"mode": "search",
"states": ["CA"],
"listingStatus": "active",
"maxListings": 200
}

Filtered search across two states (condos and townhouses, 3+ beds, under 300k):

{
"mode": "search",
"states": ["TX", "FL"],
"propertyTypes": ["condos-townhouses"],
"minBeds": 3,
"maxPrice": 300000,
"sortBy": "price-asc",
"maxListings": 500
}

Bank-owned, online auctions, with full details:

{
"mode": "search",
"states": ["GA"],
"assetTypes": ["bank-owned"],
"auctionFormats": ["online"],
"fetchDetails": true,
"maxListings": 100
}

Paste Auction.com links (apply filters on the website, then copy the link):

{
"mode": "url",
"urls": [
"https://www.auction.com/residential/CA/active_lt/single-family_pt",
"https://www.auction.com/residential/TX/active_lt"
],
"maxPages": 3
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/auction-com-scraper").call(run_input={"mode": "search", "states": ["CA"], "maxListings": 100})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["address"], listing["startingBid"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/auction-com-scraper').call({ mode: 'search', states: ['CA'], maxListings: 100 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Max pages and Max listings

maxPages bounds how many result pages (100 listings per page) a search walks. Left at its default of 0, it walks the whole catalogue: the run stops on its own once the site's own reported total is reached, a page comes back empty, or a page returns no listing that wasn't already collected. There is no artificial page-number ceiling. maxListings (default 20) is the only cap on how many listings a run actually collects; set it to 0 for no limit. The two are independent: a small maxPages can still stop a run before maxListings is reached, and vice versa.

Resume and recurring updates

There are two different things here, and they solve different problems.

Resume (resumeFromRunId) continues one specific earlier run: paste its run id or dataset id and this run skips every listing already collected there, returning only the remaining new listings. Combine both datasets afterward for the full set. A separate, automatic checkpoint also protects long unlimited runs against a platform migration, resuming the same run from where it stopped without any input needed.

Incremental mode (incrementalMode) is for running the exact same search again and again, for example daily from the Schedules tab. The actor remembers the previous run of that search itself, keyed by a hash of your filters (or by stateKey if you set one), so you never paste a run id. The first run returns everything as NEW. Every later run returns NEW listings, and UPDATED listings with changedFields naming what changed (price, status, auction date, occupancy, and so on). Listings that are unchanged are suppressed and not billed unless you turn on emitUnchanged.

REAPPEARED and EXPIRED are a separate pair, and neither shows up under default settings. EXPIRED is only produced when emitExpired is on and the run fully scans the tracked search: not capped by Max listings or Max pages, not a Resume run, and not interrupted by a platform checkpoint. A listing only becomes eligible to reappear after it has actually been marked EXPIRED this way; if you never turn on emitExpired, a listing that temporarily disappears and comes back later is simply classified as UNCHANGED or UPDATED next time, never REAPPEARED. Turn on emitExpired deliberately if you want that history tracked, and be aware it also returns (and bills) the extra tombstone rows.

Using resumeFromRunId together with incrementalMode for a search that already has saved incremental state stops the run with an error, since the two features would otherwise double-count the same listings; remove one of them or pick a different stateKey to start a separate campaign.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each listing, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch (use filters) or url (paste links).
statesarraynone (prefill: ["CA"])Two-letter US state codes. Leave empty to search nationwide.
citystring(none)Optional city name to narrow the search.
zipCodesarray(none)Optional 5-digit ZIP codes.
keywordstring(none)Free-text search across street, city, state and ZIP.
listingStatusstringactiveactive (open for bidding) or sold (closed).
propertyTypesarray(none, all types)single-family, condos-townhouses, multi-family, land.
assetTypesarray(none, all types)bank-owned, foreclosures, short-sales, private-seller.
auctionFormatsarray(none, all formats)online, in-person, remote-bid.
minBedsinteger(none)Minimum bedrooms.
maxBedsinteger(none)Maximum bedrooms.
minBathsinteger(none)Minimum bathrooms.
minSqftinteger(none)Minimum living area in square feet.
maxSqftinteger(none)Maximum living area in square feet.
minPriceinteger(none)Minimum starting bid in USD.
maxPriceinteger(none)Maximum starting bid in USD.
sortBystringdefaultResult ordering.
urlsarraynone (prefill: one sample link)Auction.com search links (URL mode).
fetchDetailsbooleanfalseFetch the full photo gallery and auction terms per listing.
maxPagesinteger0Bound on result pages walked per search/link (100 listings per page). 0 walks the whole catalogue and stops on its own; does not cap listing count.
maxListingsinteger20The sole cap on total listings collected (max 1,000,000). 0 means unlimited.
resumeFromRunIdstring(none)ID of a previous run (or dataset) of this actor. Listings already there are skipped.
incrementalModebooleanfalseTurn on for recurring monitoring of the same search.
stateKeystring(none)Optional name for a monitoring campaign, or to share state across runs.
emitUnchangedbooleanfalseAlso return (and bill) listings unchanged since the last run.
emitExpiredbooleanfalseAlso return (and bill) listings no longer found, once a run fully scans the tracked search.
proxyobjectApify datacenter proxyConnection settings.
mcpConnectorsarray(none)Optional: send a summary of each listing to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which items are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live listing.

{
"listingId": "00000001",
"url": "https://www.auction.com/details/123-sample-st-springfield-st-00000001",
"address": "123 Sample St, Springfield, ST 00000",
"city": "Springfield",
"state": "ST",
"zip": "00000",
"county": "Sample County",
"latitude": 38.0,
"longitude": -90.0,
"propertyTypeGroup": "SINGLE_FAMILY",
"assetType": "BANK_OWNED",
"occupancyStatus": "VACANT",
"listingStatusGroup": "ACTIVE",
"isHot": false,
"bedrooms": 3,
"bathrooms": 2,
"squareFootage": 1800,
"lotSize": 0.25,
"yearBuilt": 1995,
"startingBid": 150000,
"estimatedValue": 225000,
"estimatedValueLow": 210000,
"estimatedValueHigh": 240000,
"auctionType": "ONLINE",
"auctionStartDate": "2026-01-01T00:00:00Z",
"auctionEndDate": "2026-01-03T00:00:00Z",
"financingAvailable": true,
"buyerPremiumAvailable": false,
"isRemoteBidEnabled": true,
"primaryPhoto": "https://example.com/sample-property-photo.jpg",
"photoCount": 12,
"marketingTags": [],
"openHouses": [],
"scrapedAt": "2026-01-01T00:00:00Z"
}

Plan Requirement

This scraper runs on the default Apify datacenter proxy connection and works out of the box for most searches. For large or frequent runs, the residential proxy group gives more headroom against occasional connection failures; pick it under Connection. Turning on fetchDetails adds one extra request per listing, billed only for listings that are actually returned, never for a candidate that gets checked and then suppressed. A pasted single-listing detail link always fetches and bills this extra request, whatever fetchDetails is set to.

FAQ

How much does it cost?

You pay per listing returned, and the detail-enrichment charge is billed only for listings that actually come back in the dataset with detail fetched: search-mode or listing-URL results when Fetch listing details is on, and a pasted single-listing detail link always, since that always fetches full detail regardless of that setting. The Pricing tab shows the current rates. Use Max listings to cap the cost of any run.

This actor collects only publicly available auction listing data. You are responsible for how you use it: follow Auction.com's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Listing facts such as price, dates and property details are generally factual, but photos may be subject to third-party rights.

Can I get only new or changed listings on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Every run after the first then returns only new and updated listings, and unchanged ones are suppressed and not billed. See "Resume and recurring updates" above for exactly when REAPPEARED and EXPIRED show up, since both need emitExpired turned on ahead of time.

What's the difference between Resume and Incremental mode?

Resume (resumeFromRunId) continues one specific earlier run and is a one-time delta. Incremental mode is for running the same search over and over, for example daily, and tracks its own state without you ever pasting a run id. Using both together on a search that already has saved incremental state is rejected, since it would double-count listings.

Why did my run fail instead of returning an empty dataset?

A run only stops with an error when resumeFromRunId points at an id this account cannot read, or when it is combined with Incremental mode on a search that already has saved state. Everything else, including a search that matches no listings or an upstream request that could not be completed, finishes as a normal run; if nothing was returned, the status message says why, and the run log shows any page that could not be loaded. Try again if it points at a temporary connection issue.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push a summary of each listing into Notion, Linear or Airtable.

🔗 Want more real estate data?

Pair this actor with these related scrapers from the same team:

📇 BizQuest Scraper
From $1/1K. Extract business-for-sale, franchise, and asset listings from BizQuest...
💼 Jobsite UK
From $1/1K. Collect UK job listings from Jobsite.co.uk at scale. Search by keyword...
🏨 Caterer.com Scraper
Scrape UK hospitality jobs from Caterer.com, including chef, hotel, restaurant, bar, and...
🛒 Depop Scraper
From $1/1K. Scrape Depop search results, listings, shops, and reviews to JSON, CSV, or...
🧩 Propwire Scraper
Scrape Propwire.com: 157M+ US MLS & off-market properties with owner names, mailing...
📱 Clutch Scraper
Scrape Clutch company directories and profiles. Get names, ratings, review counts, hourly...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.