# Auction.com Property Scraper (`parseforge/auction-com-property-scraper`) Actor

Scrape property auction listings from Auction.com. Extract property details including address, price, auction date, property type, square footage, bedrooms, bathrooms, and more. Supports filtering by state, property type, and price range.

- **URL**: https://apify.com/parseforge/auction-com-property-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Real estate, Automation, Lead generation
- **Stats:** 102 total users, 5 monthly users, 92.3% runs succeeded, 10 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $24.00 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)

## 🏠 Auction.com Property Scraper

> 🚀 **Collect real estate auction listings from Auction.com in minutes.** Paste any Auction.com search URL, or set your filters here, and export property details, auction dates, starting bids, and map coordinates. No coding, no login, no browser extensions.

The **Auction.com Property Scraper** collects real estate auction data from Auction.com and returns one flat row per property: full address, photo, bedrooms, bathrooms, square footage, lot size, year built, property type, latitude and longitude, auction start and end dates, sale type, starting bid, occupancy status, and buyer terms.

Two ways to search. Apply filters on the Auction.com website and paste the URL, or skip the website and set the location and filters directly. Both paths run the same query and return the same rows.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Real estate investors, acquisitions teams, brokers, wholesalers, fix-and-flip operators, market analysts | Distressed property sourcing, auction deal tracking, market scans, comping auction deals, daily inventory alerts |

***

### 📋 What the Auction.com Property Scraper does

- 🔗 **URL mode.** Paste any Auction.com search URL. Location, sale types, property types, buying methods, bedrooms, bathrooms, and square footage are all read out of the URL.
- 🎛️ **Filter mode.** Give it a city, ZIP code, or a whole state, then narrow by sale type, property type, buying method, bedrooms, bathrooms, square footage, condition, and featured tags.
- 🗺️ **State-wide searches.** Search an entire state such as `GA` or `California`, not just a single city.
- 📍 **Map coordinates.** Every row carries latitude and longitude, ready to plot or join against your own geodata.
- 📊 **Deep pagination.** Goes past the 500-listing display limit on the website, up to 1,000,000 properties per run.
- ⚖️ **Balanced multi-type searches.** When several sale types are selected, results are drawn from each in turn rather than spending the whole run on whichever type sorts first.
- 🔁 **Resilient.** Failed requests retry on a fresh IP with exponential backoff, and rows already collected are delivered even if a later page fails.

> 💡 **Why it matters:** manually scanning Auction.com for deals means refreshing search pages, clicking into each property, and copying data by hand. This Actor exports structured auction data at scale, ready for your acquisition pipeline, CRM, or market analysis.

***

### 📊 Output

Each property is one row. Every field is always present, and empty when Auction.com does not publish that value, so CSV and Excel columns stay aligned across the whole export.

#### 🧾 Fields

| Field | Type | Description |
|---|---|---|
| `imageUrl` | string | Primary listing photo |
| `id` | string | Auction.com listing ID |
| `url` | string | Direct link to the listing page |
| `status` | string | Listing status as shown on the site, often the auction window |
| `address` | string | Full formatted address |
| `street_description` | string | Street address only |
| `municipality` | string | City |
| `country_secondary_subdivision` | string | County |
| `country_primary_subdivision` | string | State |
| `postal_code` | string | ZIP code |
| `latitude` | number | Property latitude |
| `longitude` | number | Property longitude |
| `beds` | number | Bedrooms |
| `baths` | number | Bathrooms |
| `sqft` | number | Interior square footage |
| `lot_size_acres` | number | Lot size in acres |
| `year_built` | number | Year the property was built |
| `property_type` | string | Structure type code, such as `SINGLE_FAMILY_HOME` |
| `property_type_group` | string | Broader structure group, such as `SINGLE_FAMILY` |
| `saleType` | string | Foreclosure, Bank Owned, Trustee Sale, or Private Seller |
| `starting_bid` | number | Opening bid in USD |
| `auction_start_date` | string | Auction start, full ISO 8601 timestamp in UTC |
| `auction_end_date` | string | Auction end, full ISO 8601 timestamp in UTC |
| `auctionDateUtc` | string | Auction start date only, `YYYY-MM-DD`, UTC |
| `auctionTimeUtc` | string | Auction start time only, `HH:MM`, UTC |
| `auctionLocation` | string | Online Auction or Live Auction |
| `occupancy_status` | string | Occupancy at time of listing, such as `VACANT` |
| `interior_access_allowed` | boolean | Whether interior access is offered |
| `buyer_premium_available` | boolean | Whether a buyer premium applies |
| `is_first_look_enabled` | boolean | Whether the First Look program applies |
| `is_direct_offer_enabled` | boolean | Whether direct offers are accepted |
| `listing_photos_count` | number | Number of photos on the listing |
| `scrapedAt` | string | When this row was collected |
| `error` | string | Empty on a successful row |

All timestamps are UTC, and the two derived fields say so in their names, so a date and a time from the same row always refer to the same moment.

#### 📦 Sample record

```json
{
  "imageUrl": "https://adc-tenbox-prod.imgix.net/resi/propertyImages/1133542/1133542_extf_1.v1.jpeg?auto=compress,format",
  "id": "2163875",
  "url": "https://www.auction.com/details/4569-post-ridge-ln-lithonia-ga-2163875",
  "status": "Aug 29 - Aug 31, 2026",
  "address": "4569 POST RIDGE LN, LITHONIA, GA 30038, DEKALB COUNTY",
  "street_description": "4569 POST RIDGE LN",
  "municipality": "LITHONIA",
  "country_secondary_subdivision": "DEKALB",
  "country_primary_subdivision": "GA",
  "postal_code": "30038",
  "latitude": 33.6430584,
  "longitude": -84.1378407,
  "beds": 3,
  "baths": 2.5,
  "sqft": 1587,
  "lot_size_acres": 0.2,
  "year_built": 1998,
  "property_type": "SINGLE_FAMILY_HOME",
  "property_type_group": "SINGLE_FAMILY",
  "saleType": "Bank Owned",
  "starting_bid": 75000,
  "auction_start_date": "2026-08-29T12:00:00Z",
  "auction_end_date": "2026-08-31T17:07:20Z",
  "auctionDateUtc": "2026-08-29",
  "auctionTimeUtc": "12:00",
  "auctionLocation": "Online Auction",
  "occupancy_status": "VACANT",
  "interior_access_allowed": false,
  "buyer_premium_available": true,
  "is_first_look_enabled": false,
  "is_direct_offer_enabled": false,
  "listing_photos_count": 16,
  "scrapedAt": "2026-08-27T15:29:49.047Z",
  "error": null
}
```

***

### ✨ Why choose this Actor

- ⚡ **Fast.** It calls the same data service the Auction.com website calls, instead of driving a browser. A small search finishes in seconds.
- 🗺️ **Coordinates included.** Plot results on a map or join them to your own geodata without a separate geocoding step.
- 📐 **Honest units.** Lot size is reported in acres and named `lot_size_acres`, so there is no guessing what the number means.
- 🧱 **Stable columns.** Every row has the same keys in the same order, so exports load cleanly into a spreadsheet or a database.
- 🔒 **Nothing hidden.** The Actor collects listing data and nothing else. It sends no analytics anywhere.

***

### 🚀 How to use

1. Open the Actor and choose how you want to search.
2. **By URL:** go to Auction.com, apply your filters, copy the address bar, and paste it into the search URL field.
3. **By filters:** type a location such as `Atlanta`, `30301`, or `GA`, then pick your sale types, property types, and any other filters you want.
4. Set how many properties you want, then click **Start**.
5. When the run finishes, open the **Dataset** tab and export to CSV, JSON, Excel, or XML.

Auction.com blocks datacenter traffic, so the Actor uses US residential proxies by default. You do not need to change anything for this to work.

***

### 💵 Pricing

Pay-per-result: one `result-item` per property written to your dataset. The per-property price does not change, and every optional extra below is off by default.

#### Optional extras (from 2026-10-03)

Five opt-in blocks are new. Each one rides the same search request the Actor already makes, so it adds no extra request, no extra proxy traffic and no extra run time. A property that does not receive a block is never charged for it.

| Event | Price | Charged when |
|---|---|---|
| `apify-actor-start` | $0.005 per GB of run memory | the run starts |
| `party-contacts` | $0.012 per property | `includePartyContacts` is on and at least one named party came back |
| `property-media` | $0.008 per property | `includePropertyMedia` is on and a gallery of two or more photos, or at least one document, came back |
| `listing-remarks` | $0.008 per property | `includeListingRemarks` is on and a description, legal description, special note or seller term came back |
| `auction-terms` | $0.008 per property | `includeAuctionTerms` is on and at least one term, fee, valuation or venue detail came back |
| `bid-status` | $0.008 per property | `includeBidStatus` is on and the property has an online auction segment |

New Apify accounts start with $5 in free credit.

### 💼 Business use cases

#### 🏠 Real estate investors and fix-and-flip

Pull every active foreclosure and bank-owned listing in your target counties each morning, sorted by auction date. Filter to vacant properties with interior access offered, then match starting bids against your buy-box before the auction window opens.

#### 📊 Brokers and wholesalers

Track new inventory across several markets at once. Because each row carries coordinates, you can map listings against your existing pipeline and spot clusters worth a site visit.

#### 📈 Market analysts and researchers

Build a time series of distressed inventory by county. Run the same search on a schedule and compare starting bids, occupancy rates, and listing volume month over month.

#### 🏢 Acquisitions teams and funds

Screen at state scale rather than city by city. A single state-wide run returns the full active set, ready to filter down to the property types and price bands your mandate allows.

***

### 🌟 Beyond business

#### 🎓 Research and academia

Housing researchers use auction inventory as a leading indicator of local distress. Coordinates and county fields make the output straightforward to join to census tracts or other public datasets.

#### 🤝 Non-profit and civic

Housing advocacy groups track foreclosure volume in specific neighbourhoods to target outreach and counselling before auction dates arrive.

#### 🧪 Experimentation

The output is clean enough to feed straight into a notebook, a mapping tool, or a small dashboard, without a cleaning pass first.

***

### 🔌 Automating this Actor

Schedule the Actor to run daily or weekly and have new listings land automatically. Connect the dataset to Google Sheets, Slack, Airtable, Zapier, Make, or your own service through the Apify API and webhooks. Every run's dataset is available over the API as JSON, CSV, Excel, or XML.

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

The Actor queries the same data service the Auction.com website uses, then flattens each listing into a single row. It does not render pages in a browser, which is why runs finish quickly.

#### 📏 How accurate is the data?

Values come straight from Auction.com and are not edited or estimated. Where Auction.com does not publish a value, the field is empty rather than guessed. Auction details can change up to the auction date, so re-run before acting on a listing.

#### 📦 How does it get past the 500-listing limit?

The website shows a limited set per search. The Actor pages through the full result set, so a search with thousands of matches returns all of them, up to the limit you set.

#### 🗺️ Can I search a whole state?

Yes. Enter a state code such as `GA` or a state name such as `California` as the location and the Actor searches state-wide with no county filter.

#### ⏰ Can I schedule regular runs?

Yes. Use the Schedules tab in Apify Console to run the Actor on any cadence, and connect a webhook to be notified when new data is ready.

#### ⚖️ Is this data legal to use?

The Actor collects publicly visible listing information. You are responsible for using the data in line with Auction.com's terms and any laws that apply to you. Do not use it to contact people in ways that break marketing or privacy rules.

#### 🔁 What happens if a run is interrupted?

Rows are written to the dataset as they are collected, not held until the end, so an interrupted run still leaves you with everything gathered up to that point. If one sale type fails partway through, the properties it already returned are kept and the run reports what stopped early.

#### 🆘 What if I need help?

Open an issue from the Actor's Issues tab. Include your input and the run ID so the problem can be reproduced.

***

### 🔗 Related Actors

Looking for other property and auction sources? Browse the rest of the ParseForge collection on Apify for scrapers covering additional real estate marketplaces and auction platforms.

[Get started on Apify](https://console.apify.com/sign-up?fpr=vmoqkp)

# Actor input Schema

## `startUrl` (type: `string`):

Paste any Auction.com search URL. Apply your filters on the website, copy the address bar, and the Actor reads every filter from it. Leave this empty to use the search fields below instead.

## `searchTerm` (type: `string`):

City, ZIP code, or US state to search. Examples: Atlanta, 30301, GA, California. Ignored when a search URL is provided above.

## `saleTypes` (type: `array`):

Which kinds of sale to include. Defaults to all three.

## `propTypes` (type: `array`):

Which property types to include. Defaults to all four.

## `buyingTypes` (type: `array`):

How the property can be bought. Defaults to all methods.

## `minBeds` (type: `integer`):

Only return properties with at least this many bedrooms.

## `minBaths` (type: `integer`):

Only return properties with at least this many bathrooms.

## `sqftMin` (type: `integer`):

Only return properties at or above this interior square footage.

## `sqftMax` (type: `integer`):

Only return properties at or below this interior square footage.

## `conditionFlags` (type: `array`):

Extra condition filters offered by Auction.com. Leave empty for no condition filtering.

## `featuredFlags` (type: `array`):

Auction.com marketing tags such as Price Drop or $1 Opening Bid. Leave empty for no tag filtering.

## `maxItems` (type: `integer`):

Maximum number of properties to collect. Free users: limited to 10 items (preview). Paid users: optional, up to 1,000,000.

## `proxyConfiguration` (type: `object`):

Auction.com blocks datacenter IPs, so US residential proxies are used by default. Change this only if you know your own proxies reach the site.

## `includePartyContacts` (type: `boolean`):

Adds a partyContacts list to each property: every named party on the file with their role, name, email, phone and licence number (asset manager, listing agent, broker, foreclosure attorney, servicer, trustor, beneficiary). It rides the same search request, so it is no extra request. Charged only for a row that receives it.

## `includePropertyMedia` (type: `boolean`):

Adds a propertyMedia block to each property: the full photo gallery URLs, not just the cover shot, plus the published WEB documents with their download links. It rides the same search request, so it is no extra request. Charged only for a row that receives it.

## `includeListingRemarks` (type: `boolean`):

Adds a listingRemarks block to each property: the marketing description, the recorded legal description, special notes and additional seller terms. It rides the same search request, so it is no extra request. Charged only for a row that receives it.

## `includeAuctionTerms` (type: `boolean`):

Adds an auctionTerms block to each property: buyer's premium and earnest money minimums and rates, deed types, title provider and insurance, financing, estimated debt, final judgement and credit bid amounts, HOA dues, APN, seller valuation, the auction event code, the courthouse or venue with its directions and URL, the local bid start and end times, and the page view count. It rides the same search request, so it is no extra request. Charged only for a row that receives it.

## `includeBidStatus` (type: `boolean`):

Adds a bidStatus block to each property that has an online auction segment: starting bid, live bid count, bid increment, reserve amount and reserve status, segment status, the current highest bid and the winning bid. Properties sold at a courthouse have no online segment and are never charged. It rides the same search request, so it is no extra request. Charged only for a row that receives it.

## Actor input object example

```json
{
  "startUrl": "https://www.auction.com/residential/GA/Atlanta_ct/active_lt/online,in_person,remote_bid,offer_af/single-family,multi-family,condos-townhouses,land_pt/auction_date_order,resi_sort_v2_st/y_nbs/bank-owned,foreclosures,private-seller_at",
  "searchTerm": "Atlanta",
  "saleTypes": [
    "foreclosures",
    "bank-owned",
    "private-seller"
  ],
  "propTypes": [
    "single-family",
    "multi-family",
    "condos-townhouses",
    "land"
  ],
  "buyingTypes": [
    "online",
    "in_person",
    "remote_bid",
    "offer"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "countryCode": "US"
  },
  "includePartyContacts": false,
  "includePropertyMedia": false,
  "includeListingRemarks": false,
  "includeAuctionTerms": false,
  "includeBidStatus": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrl": "https://www.auction.com/residential/GA/Atlanta_ct/active_lt/online,in_person,remote_bid,offer_af/single-family,multi-family,condos-townhouses,land_pt/auction_date_order,resi_sort_v2_st/y_nbs/bank-owned,foreclosures,private-seller_at",
    "saleTypes": [
        "foreclosures",
        "bank-owned",
        "private-seller"
    ],
    "propTypes": [
        "single-family",
        "multi-family",
        "condos-townhouses",
        "land"
    ],
    "buyingTypes": [
        "online",
        "in_person",
        "remote_bid",
        "offer"
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "countryCode": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/auction-com-property-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrl": "https://www.auction.com/residential/GA/Atlanta_ct/active_lt/online,in_person,remote_bid,offer_af/single-family,multi-family,condos-townhouses,land_pt/auction_date_order,resi_sort_v2_st/y_nbs/bank-owned,foreclosures,private-seller_at",
    "saleTypes": [
        "foreclosures",
        "bank-owned",
        "private-seller",
    ],
    "propTypes": [
        "single-family",
        "multi-family",
        "condos-townhouses",
        "land",
    ],
    "buyingTypes": [
        "online",
        "in_person",
        "remote_bid",
        "offer",
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "countryCode": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/auction-com-property-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrl": "https://www.auction.com/residential/GA/Atlanta_ct/active_lt/online,in_person,remote_bid,offer_af/single-family,multi-family,condos-townhouses,land_pt/auction_date_order,resi_sort_v2_st/y_nbs/bank-owned,foreclosures,private-seller_at",
  "saleTypes": [
    "foreclosures",
    "bank-owned",
    "private-seller"
  ],
  "propTypes": [
    "single-family",
    "multi-family",
    "condos-townhouses",
    "land"
  ],
  "buyingTypes": [
    "online",
    "in_person",
    "remote_bid",
    "offer"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "countryCode": "US"
  }
}' |
apify call parseforge/auction-com-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/auction-com-property-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/DI837yLYBfu34xhSL/builds/Dy1xypQI4hmh60npN/openapi.json
