AuctionZip Auctioneer Directory Scraper — Leads + Auctions avatar

AuctionZip Auctioneer Directory Scraper — Leads + Auctions

Pricing

$3.00 / 1,000 auctioneer scrapeds

Go to Apify Store
AuctionZip Auctioneer Directory Scraper — Leads + Auctions

AuctionZip Auctioneer Directory Scraper — Leads + Auctions

Scrape the AuctionZip auctioneer directory into US auction-house leads: company, contact name, street address, city/state/ZIP, phone, email, website, bio — plus each auctioneer's upcoming auction calendar (title, date, town, listing URL). Filter by state. No login.

Pricing

$3.00 / 1,000 auctioneer scrapeds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

AuctionZip Auctioneer Directory Scraper — US Auction-House Leads + Their Auction Calendar

Turn the AuctionZip auctioneer directory into a clean US auction-house lead list. One row per auctioneer: companyName, contactName, streetAddress, city, state, zipCode, phone, email, website, bio, licenseNumber — and that auctioneer's upcoming auction calendar nested on the row (title, ISO sale date, town, blurb, listing URL, photo). 100% of rows carry a phone number, a full street address and a ZIP — measured on 100 live profiles, not estimated. No login. No CAPTCHA solving.

Scope: 5,013 auctioneers in the whole directory — counted live by walking all 27 index pages on 2026-08-15, not quoted off a marketing page. 1,893 of them (37.8%) have at least one auction on the calendar right now, and the Actor filters to those by default.

{
"states": [],
"onlyWithUpcomingAuctions": true,
"maxAuctioneers": 100,
"includeAuctionDetails": false,
"requestConcurrency": 4,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Click Try for free and hit Start — that block is literally the input the Actor ships with. A run on those shipped defaults returned 100 auctioneers carrying 377 upcoming auctions in 1 minute 10 seconds, with phone 100%, contactName 100%, city/ZIP 100%, streetAddress 99%, email 86% and website 85%. It costs $0.30.


The wedge: the auctioneer, not just the auction

Every other auction scraper on the Store — including our own hibid, proxibid, estatesales.net, auctionninja and maxsold Actors — returns auctions and lots. This one returns the businesses running them, with a direct phone number and a named human on every single row, and the auctions hanging off that row as context.

That inverts who you can sell to:

You areWhat you do with a row
Auction-software / online-bidding platform5,013 named US auction houses with phone + email = your entire addressable market, and upcomingAuctionCount tells you which ones are actually active
Estate-sale & auction aggregatorSeed your directory with the auctioneer and their live calendar in one pull
Antique / collectibles resellerFilter to a state, get the auctioneers near you and every sale they have coming up
Liquidator, appraiser, shipping/logistics vendorSell services to auction houses that are provably running sales this month
Auctioneer-association / trade mediaA current, deduped roster with contact details

upcomingAuctionCount is the qualification signal: an auctioneer with 7 sales on the calendar is a live business, one with 0 may be dormant. The directory index publishes that count, so the Actor filters on it before spending a request (and before charging you) on the profile.


Measured field fill — read this before you buy

Measured on the 100 rows the shipped default input returned on 2026-08-15. Sorted descending; sparse fields are bold so you know what you are and are not getting.

FieldFillNote
companyName100%the auction business
contactName100%a named human, e.g. "Jed Acker"
phone100%as published, e.g. 330-749-6248
city, state, zipCode100%parsed apart from the raw locality line
fullAddress100%the site's own single-line address
auctioneerId100%AuctionZip's public auctioneer number
upcomingAuctions100%because the default filters to auctioneers who have some
streetAddress99%
email87%a real published mailbox, not a contact form. The other 13% is the site printing the label Email: with no address behind it — verified on the raw HTML, not inferred
website84%the site renders an unset website as a bare http://; the Actor emits null for those rather than a fake URL — verified on the raw HTML
bio53%free-text self-description. The other 47% have the bio container on the page but empty (10 bytes of whitespace) — the auctioneer never wrote one
licenseNumber0% by default · 83% with includeAuctionDetails: truestate licence, e.g. 6232. It lives on the auction listing page, not the profile, so it is null unless you turn that option on

Nested upcomingAuctions[], measured on 367 auctions: listingId, listingUrl, title, dateText, year, location, description, imageUrl all 100%; saleDate 98.6% (the 5 misses are auctions the site itself lists as Date TBA). venueAddress is 0% by default and 100% with includeAuctionDetails: true — same reason as licenseNumber: it only exists on the listing page.

Re-measured on 2026-08-19 across three live runs (100 rows on the shipped defaults, 12 rows with includeAuctionDetails: true, 25 rows with onlyWithUpcomingAuctions: false).

saleDate is a real sortable timestamp (2026-08-21T10:00:00). AuctionZip prints the day and time in one element and hides the year in a separate element, so a naive scrape of this site gets year-less dates; this Actor joins the two before emitting.

What is deliberately NOT here

  • Individual lots. This Actor stops at the auction level. Lot-by-lot catalogue data is a different record shape and belongs in a different Actor — merging the two would give you a dataset where half the rows are auctioneers and half are lots.
  • Auction category. AuctionZip's own Categories attribute was empty on every one of the 35 listings measured. It is not emitted rather than shipped as a permanently-null column. Category only exists on the site's category landing pages, not per listing.
  • Prices realized / bidding data. Behind the login.

How the anti-bot wall was beaten

AuctionZip is served by CloudFront with an AWS WAF challenge rule. This is worth stating precisely, because a casual look at this site says it is wide open and it is not:

  • A burned IP gets HTTP 202 + x-amzn-waf-action: challenge and a 2,243-byte token.awswaf.com interstitial (gokuProps + challenge.js). Not Cloudflare, not DataDome, not PerimeterX.
  • The bucket is exactly 6 requests per IP. Requests 1-6 return 200; request 7 onward is challenged, and that IP then stays burned. Reproduced twice — once on profile pages, once on the A-Z directory pages. That is precisely why a quick probe of this site looks clean and a real crawl collapses on page 7.
  • robots.txt is exempt and always answers 200.

The fix is the one that beat PagineGialle's AWS WAF: lease each proxy IP for at most 4 requests, then rotate to a fresh session, and give every concurrent worker its own lease so parallel requests cannot secretly overshoot one IP's bucket. Measured through Apify:

TransportResult
Apify RESIDENTIAL + US, lease 4, concurrency 4 (the shipped default)40/40 = 100%, all first try
Full shipped-default run, 102 fetches0 WAF challenges
Apify datacenter (auto), lease 4, concurrency 430/30 rows, but ~15% of sessions burned and retried
Contiguous A-Z directory sweep, lease 427/27 = 100%
One pinned session, no rotation6/703 — burned at request 7

Datacenter works but its smaller IP pool keeps getting sessions burned, so the Actor ships on residential and self-escalates to residential if you pick datacenter and it starts failing.


Input

FieldTypeDefaultWhat it does
statesarray[] (all)USPS codes, e.g. ["OH","PA"]. The three biggest are OH (598 auctioneers), PA (587), IN (391)
onlyWithUpcomingAuctionsbooleantrueSkip auctioneers with an empty calendar. Turn off to pull the whole 5,013-row directory as a flat lead list
maxAuctioneersinteger100Row cap — and your budget control, since you are charged per row
includeAuctionDetailsbooleanfalseOpen each auction's listing page to add venueAddress + licenseNumber. Slower, does not change what you are charged
lettersarray[] (all)Advanced: which A-Z index pages to sweep (auctioneers are indexed by surname initial; 1 holds numeric names)
profileUrlsarray[]Advanced: scrape only these profile URLs and skip the sweep entirely
requestConcurrencyinteger4Drop to 2 if you ever see challenges in the log
proxyConfigurationobjectRESIDENTIAL, USRequired — the site is behind a WAF rate rule

Output

One row per auctioneer, upcoming auctions nested:

{
"profileId": "354407",
"auctioneerId": "33491",
"companyName": "Acker Auction Service",
"contactName": "Jed Acker",
"streetAddress": "8393 Millbrook Rd",
"city": "Shreve",
"state": "OH",
"zipCode": "44676",
"fullAddress": "8393 Millbrook Rd, Shreve,OH 44676",
"phone": "330-749-6248",
"email": "jed.acker@gmail.com",
"website": "http://gant-realty.com/auctions-2/",
"licenseNumber": null,
"bio": null,
"upcomingAuctionCount": 4,
"upcomingAuctions": [
{
"listingId": "4165014",
"listingUrl": "https://www.auctionzip.com/Listings/4165014.html",
"title": "Wile Auction - Real Estate & Personal Property",
"dateText": "Fri Aug 21 - 10:00AM - Wooster, OH",
"year": "2026",
"saleDate": "2026-08-21T10:00:00",
"location": "Wooster, OH",
"description": "WILE AUCTION 3 BEDROOM CUSTOM HOME & SHOP ON 2+ ACRES …",
"imageUrl": "https://content.auctionzip.com/listing/4165014/pv",
"venueAddress": "2608 Brenn Rd, Wooster, OH"
}
],
"profileUrl": "https://www.auctionzip.com/OH-Auctioneers/354407.html",
"scrapedAt": "2026-08-15T15:41:02.118Z"
}

Export as JSON, CSV, Excel or XML, or pull it from the API.

Pricing

$3.00 per 1,000 auctioneers ($0.003/row), pay-per-event, nothing else charged — no per-run fee, no per-second compute fee.

You are billed once per auctioneer row delivered. Directory index pages are free. Auction listing pages fetched by includeAuctionDetails are free. A profile that every proxy session failed to fetch is never billed, and rows are deduplicated on the auctioneer's stable profile id before billing — a run asserts 0% duplicates rather than hand you a dirty dataset. If you set a maximum total charge on the run, the Actor trims the batch to what your budget covers before delivering it, so rows delivered always equals rows billed in both directions.

  • The shipped default (100 auctioneers) costs $0.30.
  • Every auctioneer with a live auction (1,893) costs $5.68.
  • The complete 5,013-auctioneer directory costs $15.04.

Notes, limits and compliance

  • A run that returns nothing tells you why. An empty dataset from a silently "successful" run is the canonical broken scraper, so this Actor ends with an explicit status message naming the cause — the WAF rate rule, a filter that matched nobody, or the run's charge limit — rather than handing you an unexplained empty file. A transient block is never turned into a failed run.
  • Run-time budget. The Actor reads the run's own timeout and stops starting new page fetches a safety margin before it, then pushes everything already collected and exits successfully with a status message. A short timeout costs you rows it had not fetched yet — never rows it had. Measured: maxAuctioneers: 10000 under a deliberately brutal 120-second run timeout returns a partial dataset instead of being killed.
  • robots.txt (fetched 2026-08-15 from https://www.auctionzip.com/robots.txt) disallows exactly: /cgi-bin/launcher.cgi, /cgi-bin/readinfo.cgi, /search, /search-results, /aboard, /my-account, /login, /bidNow, /cgi-bin/userpanel.cgi, /cgi-bin/azlogin.cgi, /cgi-bin/favpanel.cgi, /azThankYou.html. Every route this Actor touches — /Auctioneer-Directory/, /<ST>-Auctioneers/, /Listings/ — is outside that list, and the Actor never touches the disallowed search or account routes.
  • The calendar is a snapshot. upcomingAuctions is whatever AuctionZip is showing at the moment of the run. Re-run on a schedule if you need it fresh.
  • Personal data. Many auctioneers are sole traders, so contactName, phone and email can be personal data. You are the data controller for anything you collect: comply with AuctionZip's Terms of Service, and with GDPR/CCPA and applicable anti-spam law (CAN-SPAM, CASL) when you contact anyone. This Actor only reads pages that AuctionZip publishes to anonymous visitors and to search engines.