ServiceSeeking Scraper - Australian Tradie Leads with ABN avatar

ServiceSeeking Scraper - Australian Tradie Leads with ABN

Pricing

from $3.50 / 1,000 per business returneds

Go to Apify Store
ServiceSeeking Scraper - Australian Tradie Leads with ABN

ServiceSeeking Scraper - Australian Tradie Leads with ABN

From $3.50 per 1,000 businesses, no start fee. Australian tradies and service businesses from ServiceSeeking.com.au: ABN with ATO checksum, website, suburb, state, postcode, coordinates, licences, rating, reviews, times hired, last quoted and services. By trade, state or whole directory.

Pricing

from $3.50 / 1,000 per business returneds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

🧰 ServiceSeeking Scraper - Australian Tradie Leads with ABN

Australian tradies and service businesses from ServiceSeeking.com.au, one row per business profile. Every row carries the business's ABN, checked with the ATO's own checksum. It also has the website, suburb, state and postcode, map coordinates, trade licence numbers, rating and review count, how many times the business has been hired, when it last sent a quote, the year it joined, and the services it offers.

Pull a trade (plumbers, electricians, cleaners and about a thousand more), cut it to one or more states, or walk the whole directory of 10,312 profiles. No API key, no login and no browser.

What does this actor do?

ServiceSeeking is an Australian marketplace where homeowners and businesses post jobs and local businesses quote for them. Each business keeps a public profile. This actor finds the profiles you ask for and reads each one:

  • By trade: it walks ServiceSeeking's own category listing for each trade you name (/plumbers, /electricians, ...) to its last page. Businesses listed under two of your trades are fetched and charged once.
  • Whole directory: it reads ServiceSeeking's profile sitemap (10,312 profiles on 2026-09-23), most recently updated first. Filter the result by service keyword and state.
  • By URL: pass profile URLs or bare profile IDs.

Who uses it

  • Trade suppliers and wholesalers (plumbing, electrical, building supplies) building territory lists of active tradies, with the ABN to match their own account records.
  • Tradie software (job management, quoting, invoicing) prospecting businesses that already win work online. hiredCount and lastQuotedText show who is active.
  • Trade insurers and brokers checking a business against its ABN and its published licence numbers.
  • Home-services lead-gen and marketing agencies finding businesses by suburb and trade, with the website as the enrichment hook.

📋 What you get per business

Fill rates are measured on two live runs on 2026-09-23 (build 0.1.3). Trade frame: every electrician ServiceSeeking lists (333 cards, 320 live profiles delivered, 13 listed profiles no longer exist). Directory frame: 300 profiles from the whole directory, most recently updated first. A third, offline frame of 30 profiles drawn at random from the sitemap shows the long tail of dormant profiles.

FieldWhat it isTrade frameDirectory frameRandom 30
businessNameBusiness name as shown on the profile100%100%100%
abnAustralian Business Number, exactly as printed (spaces removed)100%100%80%
abnFormattedThe ABN as 44 685 187 544100%100%80%
abnChecksumValidtrue when the ABN passes the ATO checksum. It is never repaired.100% of ABNs100% of ABNs100% of ABNs
websiteWebsite the business entered, shown on its profile40.0%48.3%20%
websiteTypeown-site, social (Facebook, Instagram...) or maps-or-search (a Google link)own-site 36.9% of rowsown-site 43.7% of rows-
websiteDomainHost of the website, www. removedas websiteas website-
aboutPhonesPhone numbers the business wrote into its own public About text7.5%13.7%13%
aboutEmailsE-mail addresses the business wrote into its own public About text2.2%4.3%7%
phone, phoneE164, phoneTypeContact phone - see "The phone number" below0% by default0% by default0% by default
undisplayedContactIncludedtrue when the row carries a phone or website the site does not display (option on only; billed as the add-on)false by defaultfalse by defaultfalse by default
licencesTrade licences: number + issuer (e.g. 252716C, NSW Fair Trading)73.4%18.3%3%
suburb, state, postcode, locationTextBase location99.7%100%100%
latitude, longitudeMap coordinates from the profile's structured data100%100%100%
rating, reviewCountServiceSeeking rating (1-5) and number of reviews. No reviews gives a null rating, never a 0.62.8%82.7%20%
latestReviewDateDate of the newest review62.8%81.7%-
hiredCountTimes hired through ServiceSeeking48.8%70.7%7%
lastQuotedText, lastQuotedApproxDaysAgoWhen they last quoted ("20 days ago"), and that phrase as approximate days100%100%100%
responseTimeThe profile's stated response timeas shownas shown-
memberSince, memberSinceYearWhen the business joined ServiceSeeking100%100%100%
contactFirstNameThe first name the profile shows as its contact100%100%100%
serviceCategories, servicesService categories and the individual services listed100%100%100%
badges, awards, awardsCountIdentity / ABN / Licenced / Insured badges, and awards such as "2025 Top 10 Plumber in Brisbane"as shownas shown-
abnVerifiedBadge, identityVerifiedBadgeServiceSeeking's "Provided a valid ABN" and "Provided proof of name and address" badgesas shownas shown-
pricingStated rate, e.g. $180/hour Excludes GST24.4%26.3%-
aboutThe business's own descriptionas shownas shown-
fullProfileDisplayedtrue when ServiceSeeking shows the website and licences on this profile--43%
onlineBookingAvailable, logoUrlOnline-booking link present; logo image---
profileId, profileUrlServiceSeeking's id and the canonical profile URL100%100%100%
listedInCategories, discoveredVia, sitemapLastModifiedHow the row was found; the sitemap's last-modified date in whole-directory mode100%100%-

The trade frame holds every electrician ServiceSeeking lists. The directory frame is the 300 most recently updated profiles. That is why rating, hires and websites run higher there. Profiles deep in the sitemap are often dormant: in the random 30, 15 had never sent a quote. Use quotedWithinDays or minReviews to keep only live businesses.

☎️ The phone number

ServiceSeeking's page data holds a contact phone for every profile we sampled (55 of 55). Its profile pages do not show that number to visitors unless the business has made it viewable, and none of the 55 had. The site's own profile code draws the "Call Now" button only when a viewableMobilePhone flag is true. It also shows the website and licences only on full profiles (fullProfileDisplayed).

This actor follows the site's display rule by default:

  • phone is null unless the profile displays it. phoneWithheld: true tells you a number exists.
  • website and licences come only from profiles that display them. websiteWithheld and licencesWithheld flag the rest.
  • Numbers and e-mails the business wrote into its own public About text are always delivered, in aboutPhones and aboutEmails.

includeUndisplayedContacts: true also delivers the phone and website the page data carries but the site does not display. With it on, phone is filled on 100% of rows (55 of 55 sampled), along with phoneE164 (for mobiles and landlines) and phoneType (mobile, landline, local-rate for 13/1300, freecall for 1800).

Price with this option on: $0.0035 per business, plus $0.001 for each row that actually carries such a phone or website. That is $0.0045 for those rows. Such rows have undisplayedContactIncluded: true. Rows without a hidden phone or website still cost $0.0035. With the option off, the add-on is never charged.

Example row (real, from a live run on 2026-09-23)

{
"profileId": 124130,
"profileUrl": "https://www.serviceseeking.com.au/profile/124130-kjb-electricians",
"businessName": "KJB Electricians",
"contactFirstName": "Jay",
"phone": null,
"phoneE164": null,
"phoneType": null,
"phoneDisplayedOnProfile": false,
"phoneWithheld": true,
"website": "https://www.google.co.uk/search?q=kjb+electrical+contractors&ie=UTF-8&oe=UTF-8&hl=en-gb&client=safari#trex=m_t:lcl_akp,rc_f:nav,rc_ludocids:7364676222621268368,rc_q:KJB%2520Electrical%2520Contractors,ru_q:KJB%2520Electrical%2520Contractors,trex_id:AJR6kf",
"websiteDomain": "google.co.uk",
"websiteType": "maps-or-search",
"websiteWithheld": false,
"aboutPhones": ["0416339882"],
"aboutEmails": [],
"abn": "62680360284",
"abnFormatted": "62 680 360 284",
"abnChecksumValid": true,
"abnVerifiedBadge": true,
"identityVerifiedBadge": true,
"licences": [{ "number": "252716C", "issuer": "NSW Fair Trading Government Licensing Service" }],
"licencesWithheld": false,
"suburb": "Randwick",
"state": "NSW",
"postcode": "2031",
"locationText": "Randwick, NSW, 2031",
"latitude": -33.913164,
"longitude": 151.241993,
"rating": 5,
"reviewCount": 22,
"latestReviewDate": "2022-11-23T14:35:10+11:00",
"hiredCount": 33,
"lastQuotedText": "20 days ago",
"lastQuotedApproxDaysAgo": 20,
"responseTime": "Within minutes",
"memberSince": "February 2016",
"memberSinceYear": 2016,
"badges": ["Identity", "Licenced", "ABN"],
"awards": [],
"awardsCount": 0,
"serviceCategories": ["Electrician"],
"services": ["Electrician", "Electrical safety inspection", "Light switch installation and repair", "Smoke alarm installation and replacement", "Cabling"],
"pricing": null,
"about": "Hello. I'm Jay, the owner and operator of KJB, a business I started 8 years ago. [...] Contact me today for a quote.\nJay 0416339882",
"fullProfileDisplayed": true,
"onlineBookingAvailable": false,
"logoUrl": "https://s3-ap-southeast-2.amazonaws.com/uploads2.serviceseeking.com.au/provider_accounts/124130/small.png",
"listedInCategories": ["electricians"],
"discoveredVia": "category:electricians",
"sitemapLastModified": null,
"scrapedAt": "2026-09-23T05:23:36.818Z"
}

This row comes from build 0.1.3. websiteType and undisplayedContactIncluded (here false) were added in later builds, so the values shown for them here were computed from the same fields. about is shortened at [...]. The business entered a Google search link as its "website", and the row delivers it as entered. websiteType: "maps-or-search" flags it so you can skip it when enriching. This happens on 6 of 273 websites measured (another 18 are Facebook or Instagram pages).

⚙️ Input

InputDefaultWhat it does
categories["plumbers"]Trades by name or URL slug: plumbers, electricians, cleaners, builders, painters, air-conditioner-installation... A full category URL works too.
statesallNSW, VIC, QLD, WA, SA, TAS, ACT, NT. In trade mode this is checked against the listing card before the profile is fetched.
wholeDirectoryfalseWalk every profile in ServiceSeeking's sitemap instead of trades, most recently updated first.
profileUrls-Specific profiles, as URLs or bare IDs.
serviceKeywords-Keep businesses whose services contain any of these words (hot water, solar, strata). "plumbers" also matches "Plumber".
requireWebsite / requireAbn / requireContactfalseKeep only rows with a website, with an ABN, or with any delivered phone, website or About-text contact.
minReviews0Minimum number of ServiceSeeking reviews.
quotedWithinDays0Liveness filter: last quote within about N days. Businesses that never quoted are excluded.
memberSinceFrom0Joined in this year or later, e.g. 2025 for newly listed businesses.
includeUndisplayedContactsfalseSee "The phone number" above.
maxResults50Cap on businesses delivered and charged. 0 = no cap.
maxPagesPerCategory0Stop each trade after N listing pages (10 businesses each).
proxyConfigurationoffServiceSeeking needs no proxy. Turn one on only if direct requests start failing.

Example: every NSW and VIC electrician who quoted in the last 3 months and has a website:

{
"categories": ["electricians"],
"states": ["NSW", "VIC"],
"quotedWithinDays": 90,
"requireWebsite": true,
"maxResults": 0
}

💰 Pricing

Two options, pay per event, no start fee:

OptionPriceWhat you get
Default (includeUndisplayedContacts off)$0.0035 per business ($3.50 per 1,000)Every field, with the phone and website only where the profile displays them
includeUndisplayedContacts on$0.0035 per business + $0.001 per row carrying a hidden phone or website (= $0.0045 for those rows)Also the phone (100% of rows in a 150-row live run) and the website the site does not display

The per-business price is charged once per business delivered to your dataset. The $0.001 add-on (undisplayed-contact-unlocked) is charged once per delivered row with undisplayedContactIncluded: true. Neither is charged for any of these:

  • a business listed under two of your trades (fetched and charged once)
  • a profile that no longer exists (13 of 333 listed electricians)
  • a profile unreachable after retries
  • a business your filters excluded

An empty-input run delivers at most 50 plumbers: $0.175 (the option is off by default). Every electrician ServiceSeeking lists (320) costs $1.12. The whole directory of about 10,300 profiles costs at most about $36. Profiles that no longer exist are not charged, so the real bill is lower.

⏱️ Speed

ServiceSeeking rate-limits each IP. Above about 1.5 requests a second it answers HTTP 429. This actor paces every request through one shared gate (about 1.4 requests a second). A 429 pauses the whole run and is then retried. Any profile or listing page still failing is retried once more at the end of the run. Measured speeds:

  • 50 businesses (the default): about a minute
  • all 320 electricians: 7.5 minutes
  • 300 directory profiles: 6 minutes
  • the whole directory (10,312 profiles): about 3.5 hours at that pace. The default run timeout is 5 hours. If you set a shorter one, every row delivered before it is kept and charged, and nothing else is.

Both measured runs finished with 0 unreachable profiles and 0 lost listing pages, after 17 and 21 rate-limit pauses.

🛡️ What the actor guarantees

  • Pagination is floor-checked. A trade crawled to its end must reach the last page its own pager links. If it stops short, the run fails loudly and does not hand you a partial list. It also fails if more than 10% of a trade's listing pages stay unreachable.
  • Pages are checked before parsing. A page without its closing </html> or its own data markers is a transport failure and is retried. It is never parsed as half a record.
  • Deduplicated on ServiceSeeking's own business id across trades, pages and retries, before anything is charged.
  • Three kinds of nothing are kept apart in the RUN_SUMMARY record: notFound (the profile id no longer exists; ServiceSeeking answers with its homepage), unreachable (failed after retries) and rejectedByFilter. None is charged.
  • Nothing is invented. ABNs, phone numbers and postcodes come out exactly as printed. A Darwin postcode printed as 800 stays 800. A placeholder website such as https://N/A becomes null. A business with no reviews has a null rating, not 0. Platform e-mail addresses are never delivered as a business's own.

Limits (measured, not guessed)

  • No e-mail field. ServiceSeeking publishes no business e-mail. aboutEmails holds only what businesses wrote into their About text (2.2% to 4.3% of rows).
  • The phone is off by default. See above. Without the switch, reachable contact means website (40% to 48%) plus About-text phones and e-mails. In the measured frames, 45.0% to 53.3% of rows carry at least one of these.
  • A trade listing is ServiceSeeking's list, not every business with that skill. /plumbers listed 188 businesses. Another 82 profiles in the sitemap have "plumb" in their name but are not in that listing. To catch those, use wholeDirectory with serviceKeywords.
  • lastQuotedApproxDaysAgo is approximate. The site prints phrases like "About 1 month ago" (30 days) or "Over 2 years ago" (730 days).

Where the data comes from

Public pages on www.serviceseeking.com.au: the category listings, the business profile pages and the profile sitemap.

FAQ

Is there another ServiceSeeking actor? Not as of 2026-09-23. We searched the Apify Store and its full sitemap census, and none targets ServiceSeeking.

Can I monitor new businesses? Yes. Run wholeDirectory with memberSinceFrom set to this year, on a schedule, and diff on profileId.

Why is the ABN on rows where the website is hidden? ServiceSeeking prints the ABN in every profile's page description, including profiles that hide the website.