# AuctionZip Auctions Scraper (`automation-lab/auctionzip-auction-listings`) Actor

Search AuctionZip auctions by keyword, ZIP and radius; export dated auction cards with auctioneer, location, and source URL.

- **URL**: https://apify.com/automation-lab/auctionzip-auction-listings.md
- **Developed by:** [Automation Lab](https://apify.com/automation-lab) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.24 / 1,000 item extracteds

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

## AuctionZip Auctions Scraper

Search public **AuctionZip auctions** by keyword, US ZIP code, and radius. This Actor checks consecutive calendar dates and exports upcoming auction listing titles, dates, listing URLs, and the auctioneer and location displayed on the search cards. Use it for recurring estate-sale discovery, regional auction research, or a dated auction feed in a spreadsheet.

### Who is it for?

- Estate-sale buyers track upcoming sales near their ZIP code.
- Auction researchers assemble a dated list of sales from one geographic market.
- Local dealers repeat a search for a particular category and compare listing IDs between scheduled runs.

### Why use it?

One run checks up to 31 consecutive calendar dates without requiring individual auction URLs. Every saved row has a stable AuctionZip listing ID and canonical URL so downstream automation can identify new listings on the next run. The Actor returns listing cards, not lots or historical sold-price records.

### What data is extracted?

| Field | Meaning |
| --- | --- |
| `listingId`, `url` | Source listing ID and canonical auction URL |
| `title`, `auctionDate` | Card title and calendar date searched (`YYYY-MM-DD`) |
| `displayedDate` | Source's displayed date/time and place text, when available |
| `auctioneer`, `location` | Auctioneer and place as displayed on the card; either can be null |
| `keyword`, `zipCode`, `radiusMiles` | Search parameters for the row |
| `scrapedAt` | Collection time in UTC |

The default dataset contains one row per distinct listing ID within a run. Use its JSON, CSV, or Excel export in the Apify Console.

### Getting started

1. Enter a keyword such as `estate`, and a five-digit ZIP such as `10001`.
2. Set the AuctionZip-supported radius (30, 50, 100, 150, 200, 250, or 500 miles).
3. Choose the first date and number of days, or omit the date to start today (UTC).
4. Limit the results with `maxItems`; run the Actor and inspect the default dataset.
5. To monitor recurring auctions, schedule the same input and compare listing IDs between runs in your own storage.

### Input fields

| Input | Required | Default | Meaning |
| --- | --- | --- | --- |
| `keyword` | Yes | — | AuctionZip search keyword, 1–100 characters |
| `zipCode` | Yes | — | Five-digit US center ZIP |
| `radiusMiles` | No | 50 | Supported source radius in miles |
| `startDate` | No | Today UTC | First date in `YYYY-MM-DD` format |
| `days` | No | 7 | Consecutive dates, 1–31 |
| `maxItems` | No | 25 | Maximum distinct listing records, 1–500 |

The source determines search matches and geographic coverage. A broad radius is not a guarantee that listings exist on each date. Use `startDate` for a repeatable historical snapshot only when the source still exposes those listings.

### Example input

```json
{"keyword":"estate","zipCode":"10001","radiusMiles":50,"days":7,"maxItems":25}
```

For a wider regional search try `{"keyword":"farm","zipCode":"19019","radiusMiles":100,"days":14,"maxItems":50}`. These are real ZIPs; results depend on the date and live inventory.

### Example output

A local run searching `estate` within 50 miles of `10001` across a seven-day window returned seven listings. One actual record (snapshot from September 26, 2026):

```json
{
  "listingId": "4177701",
  "title": "ALL STARTING PRICES JUST DRASTICALLY REDUCED!",
  "auctionDate": "2026-09-26",
  "displayedDate": "Sat Sep 26 - 10:00AM - Otisville, NY",
  "auctioneer": "Orange County Estate Liquidators",
  "location": "Otisville, NY",
  "url": "https://www.auctionzip.com/Listings/4177701.html",
  "keyword": "estate",
  "zipCode": "10001",
  "radiusMiles": 50,
  "scrapedAt": "2026-09-26T20:10:52.352Z"
}
```

### How much does it cost to search AuctionZip auctions?

The Actor charges one $0.005 `start` event per valid run and one `item` event for each saved listing. At BRONZE, each item costs $0.003732; estimated BRONZE totals (start plus items) are 0.008732 USD for 1 listing, 0.04232 USD for 10, and 0.0983 USD for 25. FREE is $0.0042918 per item, SILVER $0.002911, and GOLD/PLATINUM/DIAMOND $0.0022392. Empty searches have no item charge. The applicable item price depends on your Apify tier; check the Pricing tab for current prices. Search more days only when necessary: runtime and source availability vary. Charges and developer payout are estimates until settled; refunds, fraud, disputes, taxes, corrections and contractual clawbacks may apply.

### Integrations and recurring monitoring

Schedule a run weekly or daily in Apify with `startDate` omitted to search from the current day. Export the dataset to Google Sheets, a webhook, or a database. Compare `listingId` to records from earlier runs to identify newly observed auctions; this Actor does not send alerts or maintain a cross-run history. Search a second ZIP in a separate run if you need another center point.

### API: cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~auctionzip-auction-listings/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"keyword":"estate","zipCode":"10001","radiusMiles":50,"days":7,"maxItems":25}'
```

The synchronous endpoint can time out for longer searches; use asynchronous runs and fetch the run's default dataset for larger windows.

### API: JavaScript

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/auctionzip-auction-listings').call({
  keyword: 'estate', zipCode: '10001', radiusMiles: 50, days: 7, maxItems: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API: Python

```python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/auctionzip-auction-listings').call(run_input={
    'keyword': 'estate', 'zipCode': '10001', 'radiusMiles': 50, 'days': 7, 'maxItems': 25,
})
print(client.dataset(run['defaultDatasetId']).list_items().items)
```

### MCP access

In Claude Code, add the Apify MCP server with this Actor's tool:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/auctionzip-auction-listings"
```

For Claude Desktop, Cursor, or VS Code, configure the HTTP MCP endpoint in the client's MCP settings (client-specific transport support varies):

```json
{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=automation-lab/auctionzip-auction-listings"}}}
```

Example prompts: “Search estate auctions near ZIP 10001 over the next seven days and list source URLs” and “Find auctioneers for upcoming estate auctions within 100 miles of 08802.” MCP access depends on your Apify account and client configuration.

### Limitations and reliability

AuctionZip can change its search markup, inventory, or access policy. The Actor rejects unexpected pages instead of silently returning an empty dataset. Search results are date-scoped; `days` is a calendar window, not a pagination count. The Actor does not open detail pages, scrape auction lots, deliver historical prices, or guarantee all auctions in a market. Duplicated listings across days appear once per run. Source-local time zones may differ from the UTC date default.

### Troubleshooting

- **No rows?** Try `estate`, a larger supported radius, and a longer date window. A valid empty source page produces zero items, but a challenge or unexpected page fails the run.
- **Invalid ZIP or radius?** Supply exactly five digits and one supported radius value. Invalid dates and out-of-range limits fail before requesting the source.
- **Source error?** Inspect the run log for the date and status. Retry later rather than assuming a source block is a true empty result.

### Legality and responsible use

Only collect public listings for legitimate use, honor the source's terms and applicable law, and avoid excessive scheduling or onward distribution of personal data. You are responsible for your use of auctioneer information and exported data. This tool is independent of AuctionZip. It uses no AI and sends search inputs only to AuctionZip's public search pages. No independent retention, persistent session cache, third-party analytics, or external API is configured by this Actor; output datasets and logs follow your Apify account's retention/deletion settings. Delete sensitive results through your Apify storage controls. For support, use the Actor's Issues tab.

### Related automation-lab Actors

For vehicle-auction results rather than regional AuctionZip sale cards, see [Bring a Trailer Auctions & Results Scraper](https://apify.com/automation-lab/bring-a-trailer-auctions-results-scraper). For foreclosure-property inventory, see [Auction.com Foreclosure Listings Scraper](https://apify.com/automation-lab/auction-com-foreclosure-listings-scraper). Neither is an AuctionZip listing substitute.

### FAQ

**Does a repeated run report only new listings?** No. Compare `listingId` in your own storage between runs.

**Can I supply an individual listing URL?** No. This Actor searches the AuctionZip calendar by keyword, ZIP, radius, and date.

**Are auctioneer and location always present?** No. Missing card fields are returned as null rather than invented values.

# Changelog

This Actor's version history is a separate document: https://apify.com/automation-lab/auctionzip-auction-listings/changelog.md

# Actor input Schema

## `keyword` (type: `string`):

Keyword to send to AuctionZip's auction calendar search (for example, estate).

## `zipCode` (type: `string`):

Five-digit center ZIP for the AuctionZip radius search.

## `radiusMiles` (type: `integer`):

AuctionZip-supported search radius around the ZIP code.

## `startDate` (type: `string`):

First calendar date to search in YYYY-MM-DD; defaults to today in UTC.

## `days` (type: `integer`):

Number of consecutive auction dates to search, including the first date (maximum 31).

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

Stop when this many distinct AuctionZip listing IDs have been saved.

## Actor input object example

```json
{
  "keyword": "estate",
  "zipCode": "10001",
  "radiusMiles": 50,
  "days": 7,
  "maxItems": 20
}
```

# Actor output Schema

## `overview` (type: `string`):

View dated auction listings, displayed auctioneers, locations, and canonical source URLs.

# 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 = {
    "keyword": "estate",
    "zipCode": "10001"
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/auctionzip-auction-listings").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 = {
    "keyword": "estate",
    "zipCode": "10001",
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/auctionzip-auction-listings").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 '{
  "keyword": "estate",
  "zipCode": "10001"
}' |
apify call automation-lab/auctionzip-auction-listings --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/auctionzip-auction-listings"
        }
    }
}
```

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/n77WTBAxA5weIB6IG/builds/1ShyKjkyrILfeYT4T/openapi.json
