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
126
Total users
13
Monthly active users
2 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) |
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. 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 | (none) | Yellow Pages search URLs. URL mode only; the keyword fields above are ignored. |
limit | integer | 20 | Maximum number of businesses to scrape. 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. |
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
An Australian residential proxy is required for reliable results; datacenter and default-group IPs are frequently blocked by the site. The default connection setting already uses a residential proxy in Australia.
FAQ
How much does it cost?
You pay per business returned, with detail enrichment (reviews, aggregate rating, extra contacts) billed only when Fetch details is switched on. 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.
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 the site could not be reached at all this run, the run still finishes (not fails) but returns nothing; the run log explains why. Re-run in a few minutes, or check that your proxy is set to Residential, Australia.
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)... |
| ๐ HiPages Scraper Scrape business listings from HiPages Australia by category, location, or URL. Extract... | ๐ TrueLocal AU Directory Listings & Reviews Scraper Scrape TrueLocal.com.au business listings by keyword, location, or URL. Extract names... |
| ๐ BBB Scraper Scrape bbb.org (Better Business Bureau, USA & Canada) business profiles: BBB rating... | ๐ Dealroom Startup & Market Map Scraper Scrape Dealroom.net market maps, company lookup results, live signals, and newly founded... |
๐ Browse all abotapi scrapers
๐ฌ Support & custom scrapers
- ๐ 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 abotapi@proton.me or message Telegram @abotapi.
- โญ Enjoying it? A quick review on the actor page helps other users find it.