Yellow Pages AU $1๐ฐ URL | Keywords | Reviews Scraper
Pricing
from $1.00 / 1,000 results
Yellow Pages AU $1๐ฐ URL | Keywords | Reviews Scraper
From $1/1K. Scrape business listings from Yellow Pages Australia by type and location. Get names, contacts, websites, ratings, social links, and more. Supports filters, sorting, and custom output fields. Perfect for lead gen, local SEO, and market research.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
6
Bookmarked
133
Total users
9
Monthly active users
5 days ago
Last modified
Categories
Share
Yellow Pages Australia Scraper: Business Listings, Contacts & Reviews
Yellow Pages Australia Scraper turns Yellow Pages into a clean business data feed. Search by business type and location, or paste a search URL you already refined in a browser, and pull business name, phone, address, website, category, rating, opening hours, slogan and 25+ fields per listing. Turn on detail enrichment for reviews, aggregate rating and extra contact details, then export to JSON, CSV or Excel, or read it straight through the API.
Why This Scraper?
- Two ways to search. Search by business type and location, or paste a Yellow Pages search URL already refined in a browser for complex or filtered queries.
- Rich results with no extra fetch. The default search already returns name, address, phone, website, category, rating, opening hours and slogan, no detail-page visit needed.
- Optional detail enrichment. Turn on Fetch details to add reviews, aggregate rating, extra phone numbers, ABN, accepted payment methods and detail images.
- Structured data, not just the card. JSON-LD fields (structured address, coordinates, schema.org opening hours) are extracted alongside the visible listing card.
- Automatic pagination. Pages through results until your limit is reached, continuing from whatever page a pasted URL points to.
- Built for schedules. Incremental mode returns only new and changed businesses on recurring runs, so monitoring the same search costs less over time.
Use Cases
- Local lead generation: collect business name, phone and address by category and suburb for outreach or CRM enrichment (plus email with Fetch details on).
- Directory and aggregator sites: feed business listings with contact details and ratings into your own site or app.
- Market research: track how many businesses of a given type operate in a city or region, and how their ratings and reviews change over time.
- Reputation monitoring: watch a business or a competitor's rating, review count and claimed status on a schedule.
- Sales prospecting: find businesses without a claimed listing or with sparse online presence as outreach targets.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
listingId / detailsPageUrl | "00000001" / Yellow Pages detail page URL |
name | "Sample Business Pty Ltd" |
address / addressDetails | "1 Example Street, Melbourne, VIC 3000" / structured street, locality, region, postcode (from JSON-LD, when present) |
phone / extraPhones | "(00) 0000 0000" / additional numbers (when fetchDetails is on) |
email | "contact@example.com" (only with fetchDetails on, when the detail page lists one) |
website | "https://www.example.com" |
primaryCategoryName / categoryText | "Electrical Contractors" / all listed categories, comma-joined |
logoUrl | listing logo or thumbnail image URL |
openingHoursToday / openingHoursDetails / openingHoursStructured | "OPEN until 5:30 pm" / day-by-day hours text / schema.org hours from JSON-LD, when present |
rating / reviewCount | "4.5" / 12 |
longDescription / slogan | business description text / business tagline |
isAd / hasPhotos / features / listingType / claimedStatus | sponsored flag / has real photos / analytics tags / "free" / "unclaimed" (when available) |
yearsInBusiness / yearsWithYellowPages | "10 Years" / "5 Years" (when shown) |
servingArea | "Serving Melbourne, VIC" (when present) |
latitude / longitude | search location center point from JSON-LD |
scrapedFromPage | which search-result page this listing was found on in this run |
reviews / reviewsCount / aggregateRating / aggregateReviewCount | detail-page reviews and rating totals (when fetchDetails is on) |
detailImages | detail-page images (when fetchDetails is on) |
abn / paymentMethods | Australian Business Number and accepted payment methods (when fetchDetails is on, and shown) |
acn / staff / ownership / serviceNotes / freeEstimates / otherLinks (array of URLs) / generalInfo / keywords (directory category and locality keywords) | business facts from the detail page (when fetchDetails is on, and shown) |
badges / highlights / faqs | accreditation badges, highlight bullets and FAQ question/answer pairs (when fetchDetails is on, and shown) |
enriched | whether detail-page enrichment succeeded for this record (when fetchDetails is on) |
changeType / changedFields | "UPDATED" / ["phone", "rating"] (incremental mode only) |
firstSeenAt / lastSeenAt | ISO timestamps against the tracked state (incremental mode only) |
How to Use
- Pick a search mode:
keyword(business type + location) orurl(paste a search URL already refined in a browser). - In keyword mode, set the business type and location. In URL mode, paste search result URLs; the keyword fields are ignored.
- Turn on Fetch details if you need reviews, aggregate rating or extra contact fields, and set Result limit to control run size and cost.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
Search by business type and location:
{"mode": "keyword","businessType": "plumber","location": "Sydney, NSW","limit": 30}
Paste a search URL:
{"mode": "url","urls": ["https://www.yellowpages.com.au/search?search_terms=electrician&geo_location_terms=Melbourne"],"limit": 50}
Full detail with reviews and ABN, for a smaller batch:
{"mode": "keyword","businessType": "dentist","location": "Brisbane, QLD","fetchDetails": true,"limit": 20}
Monitor a category on a schedule:
{"mode": "keyword","businessType": "restaurant","location": "Perth, WA","incrementalMode": true,"limit": 100}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/yellow-pages-au-scraper").call(run_input={"mode": "keyword","businessType": "plumber","location": "Sydney, NSW",})for business in client.dataset(run["defaultDatasetId"]).iterate_items():print(business["name"], business["phone"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/yellow-pages-au-scraper').call({mode: 'keyword',businessType: 'plumber',location: 'Sydney, NSW',});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
Resume and recurring updates
- Resume (
resumeFromRunId) continues one interrupted run: paste its run or dataset ID and the actor skips everything already collected there, so you don't pay twice. - Incremental mode (
incrementalMode) is for scheduled runs over the same search. Each business is classifiedNEW,UPDATED(withchangedFields),UNCHANGED(suppressed and not billed unlessemitUnchangedis on),REAPPEAREDorEXPIRED(only after a run that scanned the whole search, and only withemitExpired).stateKeynames or shares the stored state. A business isUPDATEDwhen any returned field changes (name, phone, address, categories, rating, reviews, images, claimed status and so on). Never compared:scrapedFromPage, the rotating image-server number in photo links and the numbered placeholder icon. If a detail fetch fails on a re-run, the last known detail data is carried forward so it is not reported as a change.ignoreFieldsForChangeslists extra fields to leave out of the comparison and out ofchangedFields(they stay in the output); use a dotted path such asaddressDetails.postcodeorreviews.datefor nested fields. Changing the list never causes a one-off wave ofUPDATEDrows. With incremental mode off, output is exactly as before.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each business, not the full JSON. Each item becomes one entry with a title (the business name) and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify โ Settings โ Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | keyword | keyword (business type + location) or url (paste search URLs). |
businessType | string | electrician | Type of business to search for. Keyword mode only. |
location | string | Melbourne, VIC | Location to search in. Keyword mode only. |
urls | array | two example search URLs (plumber, Sydney; electrician, Melbourne, legacy listings form) | Yellow Pages search URLs. URL mode only; the keyword fields above are ignored. |
limit | integer | 20 | Maximum number of businesses to scrape (capped at 100,000 per run). In URL mode this caps the total across all URLs. |
pageNumber | integer | 1 | Keyword mode: page to start scraping from. Ignored in URL mode, where the start page comes from the URL. |
fetchDetails | boolean | false | Visit each business's detail page for reviews, aggregate rating and detail images. Billed per enriched listing. |
resumeFromRunId | string | (none) | Continue one interrupted run. |
incrementalMode | boolean | false | Return only new and changed businesses on recurring runs. |
stateKey | string | (none) | Name or share an incremental-mode monitoring campaign. |
emitUnchanged | boolean | false | Also return (and bill) unchanged businesses. |
emitExpired | boolean | false | Also return (and bill) expired businesses. |
ignoreFieldsForChanges | array | (none) | Fields to leave out of change detection (incremental mode only); dotted paths reach nested fields. |
proxy | object | Residential, AU | Connection settings. A residential proxy is required for reliable results. |
mcpConnectors | array | (none) | Optional: send a summary of each business to apps you authorized under Integrations. |
notionParentPageUrl | string | (none) | Notion connector only: page under which business pages are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run. |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"listingId": "00000001","name": "Sample Business Pty Ltd","address": "1 Example Street, Melbourne, VIC 3000","phone": "(00) 0000 0000","email": "N/A","website": "https://www.example.com","primaryCategoryName": "Electrical Contractors","categoryText": "Electrical Contractors, Electric Contractors-Commercial & Industrial","detailsPageUrl": "https://www.yellowpages.com.au/melbourne-vic/bpp/sample-business-00000001","logoUrl": "https://i2.ypcdn.com/ypau/images/default-thumbnail.jpg","openingHoursToday": "OPEN until 5:30 pm","openingHoursStructured": ["Mo-Fr 08:00-18:00", "Sa 09:00-16:00"],"rating": "4.5","reviewCount": 12,"slogan": "Sample slogan","isAd": false,"hasPhotos": true,"yearsInBusiness": "10 Years","servingArea": "Serving Melbourne, VIC","claimedStatus": "unclaimed","latitude": -37.0,"longitude": 144.0,"scrapedFromPage": 1}
Plan Requirement
The site blocks plain requests: every connection type tried without special handling (a direct connection, the Apify datacenter proxy and the Apify Australian residential proxy) received the site's "Attention Required!" block page. Datacenter connections therefore do not work on their own. The actor handles this itself, but it needs a working Australian residential connection, which is the default proxy setting (Residential, Australia). Apify free plans do not include residential proxies; on a free plan the actor tries a backup connection and logs this notice:
The selected connection is unavailable to this run. Apify free plans do not include residential proxies. Continuing on a backup connection; some pages may still be unavailable. For residential access, upgrade at https://apify.com/pricing or supply your own proxy URLs.
When the backup connection serves pages, the log says: "Served over the backup connection (the default connection was unavailable)."
If no page can be loaded the run fails with one of these messages, so an outage is never mistaken for an empty search:
- Proxy refused for the account: "The proxy connection was refused for this account, so no page could be read. Your Apify plan does not include proxy access; a paid plan is required: https://apify.com/pricing. If you entered your own proxy URLs, check that their credentials are valid."
- Free plan, backup also failed: "No results: residential proxies are unavailable on this run (Apify free plans do not include them), and the backup connection could not load the requested Yellow Pages pages. Upgrade at https://apify.com/pricing or supply your own proxy URLs, then try again."
- No proxy configured: "No proxy is configured, so no page could be read. This actor needs a proxy: turn on Apify Proxy or enter your own proxy URLs in the Proxy section, then try again."
- Any other connection failure: "Could not load any results page (the requests failed), so nothing was collected. This is a connection problem, not an empty search. Please try again later."
FAQ
How much does it cost?
Pay-per-event: a run start event and one result event per business returned, plus one enrich event per listing returned with Fetch details switched on (unit: one enriched listing; charged when the listing is delivered). Incremental UNCHANGED businesses that are suppressed are not charged. The Pricing tab shows the current rates. Use Result limit to cap the cost of any run.
Is it legal to scrape Yellow Pages Australia?
This actor collects only publicly available business listing data. You are responsible for how you use it: follow Yellow Pages Australia's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Business facts are generally public, but logos and photos may be subject to third-party rights.
Can I get only new or changed businesses on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared businesses, and unchanged ones are not billed unless you turn on emitUnchanged.
Which URL shapes does URL mode accept?
| Shape | Example | Handling |
|---|---|---|
| Search results | https://www.yellowpages.com.au/search?search_terms=plumber&geo_location_terms=Sydney | Scraped; pagination continues from ?page=N. |
| Older search form | https://www.yellowpages.com.au/search/listings?clue=electrician&locationClue=Melbourne%2C+VIC | Converted to the search form above, then scraped. |
Business detail page (...-listing.html) | Not scraped; a warning is logged. Search for the business name instead. | |
| Category or locality page | Attempted as-is; a warning is logged because it may return 0 businesses. |
Behaviour change: the urls field now has a non-empty default (two example searches: plumber / Sydney and electrician / Melbourne). Running URL mode with the field untouched scrapes those two example searches instead of failing with "no URLs". Callers who omit mode still get keyword mode: the exact default two-URL list never switches the mode by itself, while any other urls list you supply (including a single plumber / Sydney URL) or the legacy searchUrl still implies URL mode.
Why does URL mode ignore my business type and location?
URL mode takes the search already baked into the pasted URL, so the business type and location fields are ignored to avoid conflicting instructions. Refine your search in a browser first, then paste the resulting URL.
Why did my run return zero businesses?
A search that genuinely has no matches finishes normally with an empty dataset. If no results page could be loaded at all, the run fails with a message explaining why (see Plan Requirement) instead of finishing empty. Re-run in a few minutes, or check that your proxy is set to Residential, Australia.
Which output views are available?
The dataset has Overview, Contacts, Business Details, Map Data, Reviews (one row per business with its reviews array) and Changes (incremental changeType / changedFields) views. The search itself has no filter or sort options beyond what you put in the pasted search URL.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
๐ Want more Yellow data?
Pair this actor with these related scrapers from the same team:
| ๐ Yellow Pages NZ From $0.8/1K. Scrapes business listings from Yellow.co.nz (New Zealand Yellow Pages)... | ๐ PagesJaunes FR From $0.8/1K. Scrapes business listings from PagesJaunes.fr (French Yellow Pages)... |
| ๐ Herold.at Scraper From $0.80/1K. Scrape Herold.at business listings across Austria into clean JSON. Extract... | ๐ Local.ch From $1/1K. Pull structured company data from local.ch, including name, address, GPS... |
| ๐ HiPages Scraper Scrape business listings from HiPages Australia by category, location, or URL. Extract... | ๐ BBB Scraper Scrape bbb.org (Better Business Bureau, USA & Canada) business profiles: BBB rating... |
๐ Browse all abotapi scrapers
๐ฌ Support
- ๐ Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- ๐ ๏ธ Need another site, extra fields or a private build? Email contact@abotapi.com.
- โญ Enjoying it? A quick review on the actor page helps other users find it.
