Yellow Pages APIyellowpages.com.au ↗
Search and retrieve Australian business listings from yellowpages.com.au. Get contact details, addresses, emails, opening hours, and categories via 2 endpoints.
What is the Yellow Pages API?
The Yellow Pages Australia API exposes business directory data from yellowpages.com.au across 2 endpoints. Use search_listings to query businesses by category and location — returning up to 30 listings per page with name, phone, address, website, and category — then pass any details_url to get_business_details to retrieve structured fields including email, opening hours, suburb, postcode, and state.
curl -X GET 'https://api.parse.bot/scraper/1023d981-309a-4218-98cc-60b327124263/search_listings?clue=Plumbers&page=1&location=Sydney+NSW&max_pages=1' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace yellowpages-com-au-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.yellow_pages_australia_api import YellowPages, Listing, ListingSummary, ListingNotFound
client = YellowPages()
# Search for plumbers in Sydney - auto-paginates
results = client.listingsummaries.search(clue="Plumbers", location="Sydney NSW")
for summary in results:
print(summary.name, summary.phone, summary.address)
# Drill into full details for the first result
detail = summary.details()
print(detail.name, detail.phone, detail.email, detail.suburb, detail.state, detail.postcode)
break
Search for business listings on Yellow Pages Australia by category and location. Returns up to 30 listings per page with name, address, phone, website, category, and a details URL for fetching full business information. Paginates via an integer page counter; each page returns up to 30 results.
| Param | Type | Description |
|---|---|---|
| cluerequired | string | Business category or name to search for (e.g. 'Restaurants', 'Dentists', 'Plumbers'). Used as a URL slug so multi-word terms are hyphenated internally. |
| page | integer | Page number (1-based). |
| location | string | Location to search within, formatted as 'City STATE' (e.g. 'Sydney NSW', 'Melbourne VIC', 'Brisbane QLD'). Omitting searches all of Australia. |
| max_pages | integer | Number of pages to fetch per request. Each page returns up to 30 listings. |
{
"type": "object",
"fields": {
"count": "integer total number of listings returned in this response",
"listings": "array of listing objects with name, address, phone, website, details_url, and category",
"start_page": "integer the starting page number",
"pages_scraped": "integer number of pages actually fetched",
"total_available": "integer total number of listings available for this search, or null if unavailable"
},
"sample": {
"data": {
"count": 30,
"listings": [
{
"name": "Mother Chu's Vegetarian Kitchen",
"phone": "+1 (555) 012-3456",
"address": "367 Pitt Street, Sydney, NSW 2000",
"website": "https://www.motherchusvegetarian.com.au",
"category": "Restaurants",
"details_url": "https://www.yellowpages.com.au/sydney-nsw/bpp/mother-chus-vegetarian-kitchen-579735703?lid=1002194714742"
}
],
"start_page": 1,
"pages_scraped": 1,
"total_available": 2986
},
"status": "success"
}
}About the Yellow Pages API
Endpoints and What They Return
The search_listings endpoint accepts a clue parameter (a business category or name slug such as Plumbers or Restaurants), an optional location string in City STATE format (e.g. Sydney NSW), and pagination controls via page and max_pages. Each page returns up to 30 listing objects containing name, address, phone, website, category, and a details_url. The response also includes total_available, which indicates how many listings exist for the query, and pages_scraped to confirm how many pages were actually fetched.
Business Detail Fields
The get_business_details endpoint takes a url — typically the details_url value from a search_listings result — and returns a richer record. Fields include name, phone, email (or null if not listed), website, address, suburb, state, postcode, category, and opening_hours. Opening hours are returned as an array of strings in schema.org format, or null when the business has not published hours.
Coverage and Pagination
The API covers Australian business listings across all states and territories indexed on yellowpages.com.au. Multi-page retrieval is handled by setting max_pages alongside a starting page number, making bulk collection straightforward. The total_available field lets callers estimate the full result set size before deciding how many pages to fetch. Location filtering is optional — omitting it returns national results for the given category.
The Yellow Pages API is a managed, monitored endpoint for yellowpages.com.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when yellowpages.com.au changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official yellowpages.com.au API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a lead list of plumbers or electricians in a specific Australian city using the
clueandlocationparams. - Verify or enrich a business database by checking current phone numbers and addresses against yellowpages.com.au records.
- Collect email addresses for local businesses in a given category using
get_business_details. - Audit trading hours for businesses in a suburb by extracting
opening_hoursfrom detail records. - Compile a map dataset of businesses with
suburb,postcode, andstatefields for geographic analysis. - Discover all businesses listed under a niche category (e.g. 'Naturopaths') nationally by omitting the location filter.
- Cross-reference business website URLs across a category to identify which operators maintain an online presence.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Yellow Pages Australia have an official developer API?+
What does `get_business_details` return that `search_listings` does not?+
search_listings returns a summary record per business: name, address, phone, website, category, and a details URL. get_business_details adds email, structured address components (suburb, state, postcode as separate fields), and opening_hours as a schema.org-formatted array. It is designed to be called after search_listings using the details_url from each result.Does `search_listings` always return a `total_available` count?+
total_available is returned as an integer when Yellow Pages exposes a total result count for that query, but it can be null for some category and location combinations. pages_scraped and count are always present and reflect what was actually fetched.Does the API return customer reviews or ratings for businesses?+
Is there a way to search by postcode rather than city and state?+
location parameter accepts a City STATE format (e.g. Brisbane QLD). Postcode-based location filtering is not a supported input format in the current API. You can fork this API on Parse and revise the location parameter handling to accept postcode inputs if needed.