# Hubzu Auction Scraper \[$0.9/1k💰] | Foreclosures | REO & Bids (`ahmed_jasarevic/hubzu-scraper`) Actor

Scrape foreclosure, REO, short-sale and auction property listings from Hubzu — current and starting bids, list prices, specs and auction dates — for distressed-property leads and real estate market analysis.

- **URL**: https://apify.com/ahmed\_jasarevic/hubzu-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 results

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

## Hubzu Auction Property Scraper

Scrape **foreclosure, bank-owned (REO), short-sale and auction property listings from Hubzu.com** — current bids, starting bids, list prices, beds/baths, auction dates and county data — for **distressed-property leads and real estate market analysis**, no account or API key required.

### Main Use Cases

- **Foreclosure & REO property leads** — build investment pipelines from Hubzu's distressed inventory (bank-owned, foreclosure, short-sale, non-bank-owned, commercial).
- **Real estate auction monitoring** — track current bids, bid counts, reserve status and auction end dates across states and cities.
- **Distressed property market research** — analyze REO/foreclosure supply, starting-bid levels and occupancy by state and county.
- **Investment screening** — filter by event type and location to find fix-and-flip or buy-and-hold candidates with `beds`, `baths`, `sqft`, `listPrice` and `ownItNowPrice`.
- **Competitive data for agent & brokerage research** — `agentCompanyName` on active listings.

### How It Works

Hubzu's search page is a React SPA that loads results from an internal JSON API (`/api/portal/...`). This actor calls that endpoint directly — the same one the website uses — and paginates cleanly through the entire result set at 100 listings/page. It is Cloudflare-aware: the API sits behind Cloudflare and 403s plain HTTP from most IPs, so the **Apify Proxy is enabled by default** and the run fails loudly with proxy guidance instead of silently returning empty results. No browser, no per-listing detail requests, plain HTTP — fast and cheap.

### Build Foreclosure & REO Leads Without an Official Hubzu API

Hubzu has no public API for listing data. This actor exports the full public auction inventory instead: state/city search, event-type filtering (auctions, foreclosures, bank-owned, short-sale, non-bank-owned, commercial, traditional-sale), and per-listing bid, price and property data — the distressed-property inventory that mainstream real-estate scrapers (Zillow/Redfin-style) skip.

### Monitor Real Estate Auctions: Bids, Reserves & Auction Dates

Every record includes `currentBid`, `startingBid`, `listPrice`, `ownItNowPrice`, `bidCount` and `reserveMet`, plus `auctionStartDate`/`auctionEndDate`. Schedule the actor daily or twice-daily to watch active auctions you're interested in and react before they end.

### Input

| Field | Type | Required | Default | Notes |
|-------|------|----------|---------|-------|
| `state` | string | No | — | Two-letter US state code, e.g. `GA`, `TX`, `FL`, `NY`. Empty = scrape nationwide. |
| `city` | string | No | — | Optional city, e.g. `Atlanta` (requires `state`, ignored otherwise). |
| `eventType` | select | No | `auctions` | `auctions` (every live auction), `foreclosures`, `bank-owned`, `short-sale`, `non-bank-owned`, `commercial`, `traditional-sale`. |
| `startUrls` | array | No | — | Hubzu search/landing URLs that override state/city/event, e.g. `https://www.hubzu.com/ga/auctions`, `https://www.hubzu.com/tx/houston/bank-owned`. |
| `maxItems` | integer | No | `100` | Stop after this many listings (max 100,000). Free users preview up to 10. |
| `proxy` | object | No | Apify proxy on | Hubzu's API is behind Cloudflare. Preference: **Residential** groups (paid); default datacenter groups may still be blocked. |

### Example Input

```json
{
  "state": "GA",
  "city": "Atlanta",
  "eventType": "auctions",
  "maxItems": 200,
  "proxy": { "useApifyProxy": true }
}
```

Nationwide foreclosures:

```json
{ "eventType": "foreclosures", "maxItems": 500, "proxy": { "useApifyProxy": true } }
```

### Output

One dataset item per listing. Key columns in the `overview` view: `address`, `city`, `state`, `zip`, `county`, `currentBid`, `startingBid`, `listPrice`, `ownItNowPrice`, `bidCount`, `reserveMet`, `beds`, `baths`, `sqft`, `auctionStartDate`, `auctionEndDate`, `occupancy`, `agentCompanyName`, `url`.

| Field group | Fields |
|-------------|--------|
| Location | `address`, `city`, `state`, `zip`, `county`, `lat`, `lng` |
| Bids & price | `currentBid`, `startingBid`, `listPrice`, `ownItNowPrice`, `bidCount`, `reserveMet`, `reservePriceFlag` |
| Property specs | `beds`, `baths`, `sqft`, `lotSize`, `propertyType`, `propertyCategory` |
| Auction | `auctionStartDate`, `auctionEndDate`, `auctionDuration`, `listingType`, `listingStatus` |
| Context | `occupancy`, `agentCompanyName`, `photoCount`, `imageUrl`, `url`, `propertyId`, `listingId`, `scrapedFrom` |

### Example Output

```json
{
  "propertyId": "9321813267",
  "listingId": "9321813267AUCN2",
  "url": "https://www.hubzu.com/property/9321813267-109-W-Campbell-Drive-Midwest-City-OK-73110",
  "address": "109 W. Campbell Drive",
  "city": "Midwest City",
  "state": "OK",
  "zip": "73110",
  "county": "Oklahoma",
  "lat": 35.482467,
  "lng": -97.396585,
  "currentBid": 163000,
  "startingBid": 148000,
  "listPrice": 185000,
  "ownItNowPrice": null,
  "bidCount": 3,
  "reserveMet": false,
  "beds": 3,
  "baths": 2,
  "sqft": 2003,
  "lotSize": 7200,
  "propertyType": "Single Family",
  "propertyCategory": "REO",
  "listingStatus": "Active",
  "auctionStartDate": "2026-09-14T09:30:04Z",
  "auctionEndDate": "2026-09-21T09:30:04Z",
  "auctionDuration": "Sep. 14 - Sep. 21",
  "occupancy": "Vacant/Unknown",
  "agentCompanyName": "Realty Experts Inc",
  "photoCount": 6,
  "scrapedFrom": "hubzu.com"
}
```

Download results as **JSON, HTML, CSV or Excel**, or via the Apify API.

### Scrape Distressed Property Listings for Investment Screening

Use event-type + state/city filters to target inventory: `bank-owned` and `foreclosures` for fix-and-flip candidates, `commercial` for income properties, `short-sale` for below-market opportunities. Every record carries the bid ladder (`currentBid` → `startingBid` → `listPrice` → `ownItNowPrice`) and `reserveMet`, so you can screen where the market actually is versus the seller's ask.

### Integrations & Automation

- **Apify API** — pipe listings into your investment CRM or spreadsheets.
- **Webhooks** — get notified when a monitored auction run finishes.
- **Scheduling** — run daily (or twice daily) to watch auctions closing soon.
- **Export** — JSON, CSV, HTML, Excel.

*Recommended schedule:* **daily** for auction monitoring; **weekly** for market research snapshots.

### Related Actors

- [Hubzu Scraper - Foreclosure & Auction Real Estate](https://apify.com/jongoose/hubzu-scraper) — direct competitor, same data source (verified on web + Store).
- [Auction Property Leads - Sheriff Sales, Trustee Sales, Online](https://apify.com/seibs.co/property-auction-leads) — Zillow auction properties with flip scores (auction cluster authority by feature count).
- [HUD Foreclosure Listings Scraper](https://apify.com/martc03/hud-foreclosures) — HUD-owned foreclosure inventory (related distressed-property cluster).
- [Hubzu Property Search Scraper](https://apify.com/stealth_mode/hubzu-property-search-scraper) — 90+ field Hubzu extraction (direct competitor).
- [Indeed Jobs Scraper](https://apify.com/kaix/indeed-scraper) — cluster-adjacent (data/lead-gen) authority for Store discovery.

### FAQ

#### Why use this actor instead of the official Hubzu API?

Hubzu does not offer a public API for its auction inventory. This actor calls the same internal JSON API the Hubzu website renders (the `/api/portal/...` endpoint behind the React SPA) — no account, no API key, clean pagination through the full result set.

#### What are alternatives to this actor / foreclosure auction data?

- [jongoose/hubzu-scraper](https://apify.com/jongoose/hubzu-scraper) — another Hubzu scraper, $0.001/result.
- [stealth\_mode/hubzu-property-search-scraper](https://apify.com/stealth_mode/hubzu-property-search-scraper) — 90+ fields per Hubzu listing.
- [seibs.co/property-auction-leads](https://apify.com/seibs.co/property-auction-leads) — Zillow auction/sheriff/trustee sales with flip scores.
- [HUD Foreclosure Listings Scraper](https://apify.com/martc03/hud-foreclosures) — government-owned foreclosure inventory.

#### How can I monitor foreclosures in a specific state?

Set `state` (e.g. `FL`) and `eventType: "foreclosures"`, schedule daily, and export `auctionStartDate`/`endDate` + `currentBid` so you can act before auctions close.

#### What is the best way to get distressed property leads for fix-and-flip?

Run `eventType: "bank-owned"` or `"foreclosures"` nationwide with `maxItems` up to 100,000, then screen by `listPrice`, `beds`/`baths`/`sqft`, `occupancy` and `reserveMet`. Use Residential proxy groups for reliable results.

### For AI Agents & LLM Apps

- **Purpose:** returns one structured property record per Hubzu auction listing (location incl. county + coordinates, bid ladder, reserve flag, beds/baths/sqft, auction start/end dates, occupancy, listing agent).
- **Minimal input:**

```json
{ "eventType": "foreclosures", "maxItems": 100 }
```

- **Variant input — state + city scope:**

```json
{ "state": "GA", "city": "Atlanta", "eventType": "auctions", "maxItems": 200 }
```

- **Variant input — exact Hubzu search URL:**

```json
{ "startUrls": [{ "url": "https://www.hubzu.com/ga/atlanta/auctions" }], "maxItems": 200 }
```

Behaviors an agent should know:

- `startUrls` (if provided) overrides state/city/eventType.
- `city` requires `state`; `state` alone is fine (nationwide if empty).
- `eventType` default is `auctions` (all live auctions); use `foreclosures`, `bank-owned`, `short-sale`, `commercial`, etc. to narrow.
- `maxItems` is the hard cap (max 100,000); free-tier limited to 10.
- **Proxy is on by default** because Hubzu's API 403s datacenter IPs — use Residential groups for reliability; if blocked, the run fails loudly rather than returning empty data.
- Only search-endpoint fields are returned — full bid history and tax records (detail-page-only) are not included.
- **Billing:** pay-per-result — `$0.0009` per listing record in the default dataset.

### Legal & Compliance Disclaimer

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Hubzu or Altisource Portfolio Solutions S.A. It collects only publicly available listing data from Hubzu's public search surface — no login bypass, no CAPTCHA solving, no access to non-public bidder or account data. Users are responsible for complying with Hubzu's Terms of Use and applicable law. This data is **not a consumer report** and must **not** be used for FCRA-regulated or tenant-screening purposes; use distressed-property data only for legitimate market research and investment activities.

### SEO Keywords

hubzu scraper, foreclosure data, reo listings, bank owned properties data, distressed property leads, real estate auction data, foreclosure market analysis, short sale listings, property auction scraper, hubzu property data, auction bid data, real estate investment leads, reo foreclosure database, us foreclosure listings, online real estate auctions, auction end dates data, foreclosure inventory, fix and flip data

# Actor input Schema

## `state` (type: `string`):

Two-letter US state code to search, e.g. "GA", "TX", "FL", "NY". Leave empty to scrape nationwide. Combine with City to narrow to one city.

## `city` (type: `string`):

Optional city to narrow the search, e.g. "Atlanta", "San Antonio", "Los Angeles". Requires State. Ignored when State is empty.

## `eventType` (type: `string`):

Which Hubzu inventory to scrape. "auctions" (default) returns every live auction (REO, foreclosure, short-sale, non-bank-owned). The others narrow to one event type.

## `startUrls` (type: `array`):

Optional. Paste one or more Hubzu search/landing URLs instead of State + City, e.g. https://www.hubzu.com/ga/auctions , https://www.hubzu.com/tx/houston/bank-owned , or https://www.hubzu.com/foreclosures . Overrides State/City/Event when provided.

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

Stop after collecting this many listings (across all searches).

## `proxy` (type: `object`):

Select proxies to be used by your crawler. Hubzu sits behind Cloudflare and blocks plain HTTP from most IPs, so the Apify Proxy is enabled by default. For reliable results prefer the RESIDENTIAL groups (paid); the default datacenter groups may still be blocked.

## Actor input object example

```json
{
  "eventType": "auctions",
  "startUrls": [],
  "maxItems": 100,
  "proxy": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "state": "",
    "city": "",
    "eventType": "auctions",
    "startUrls": [],
    "maxItems": 100,
    "proxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/hubzu-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 = {
    "state": "",
    "city": "",
    "eventType": "auctions",
    "startUrls": [],
    "maxItems": 100,
    "proxy": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/hubzu-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 '{
  "state": "",
  "city": "",
  "eventType": "auctions",
  "startUrls": [],
  "maxItems": 100,
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call ahmed_jasarevic/hubzu-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/hubzu-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/eA02AenlosJwO43eU/builds/CqTLDbPXOjw97Ciyq/openapi.json
