How to Build a Local Business List from Yelp
The Yelp Business Scraper collects business listings for a category or keyword and location, including available phone, address, coordinates, and opening hours. I maintain the Actor. This guide builds a list of plumbers around Austin for local-business research.
A plumber may serve an area without a public storefront. The export can help find candidates, but the address fields need to be read in that context.

Start with one service and one place
Use search for the business category or keyword and location for a city, neighborhood, or address. maxItems is the total business cap and defaults to 50. Zero removes the Actor cap but does not guarantee every business in the area is accessible through Yelp search.
The example requests Plumber in Austin, TX. More specific neighborhoods can be useful later, but overlapping searches require deduplication. This Actor does not currently return each business's own website.
Phone and other contact fields share the business-result price rather than a separate contact-enrichment event. Field availability still depends on the source; a missing field should remain unknown.
Budget for the sample
Pricing as of September 6, 2026. The active price is $0.0025 per business listing. Fifty returned businesses would cost $0.125. Contact fields are included in the same event. Check current Actor pricing and the run charge breakdown; these calculations describe Actor events, and separately billed platform or proxy resources may also apply.
Collect fifty Austin businesses
Open the Actor on Apify. In Input, switch to the JSON editor and paste:
{
"search": "Plumber",
"location": "Austin, TX",
"maxItems": 50
}
Click Start, then open the completed run’s output dataset.
After completion, inspect categories and location fields before treating the rows as a qualified business list. A search match may be in a neighboring area or offer only part of the service you need.
Check sponsored alongside rank. Paid placements are marked sponsored and carry a null organic rank in the documented output. Do not turn their dataset order into an organic search position.
Read the returned fields
| Field | How to use it |
|---|---|
name | Business name |
rating | Displayed star rating |
reviewCount | Review count |
phone | Published phone |
address | Full address fields |
openingHours | Weekly hours when available |
The historical plumbing sample has street: null and an address consisting of city, state, and postal code. That is consistent with a service-area business, not necessarily a broken address extraction. Coordinates should not automatically be presented as a customer-accessible shop entrance.
priceRange can be null for trades that do not have a Yelp price level. It is not an hourly quote. reviewCount and rating describe the displayed review summary, not a guarantee of service quality.

Prepare a clean local-business review sheet
Export CSV with encBizId, name, Yelp URL, categories, phone, address components, rating, review count, and scrapedAt. Retain JSON for arrays such as categories and weekly opening hours.
Deduplicate by encBizId across searches. Preserve multiple locations of the same brand if they have distinct business IDs and addresses. Normalize phone formatting into a separate column while keeping the original value and country context.
Filter to the relevant trade, then add columns for service-area confirmation, current operating status, and review notes. Open the Yelp page for each candidate to check identity and coverage. A nearby listing or postal code is not proof that the company will serve your exact address.
If you need a business website, find and verify it separately rather than manufacturing one from the company name. Keep the evidence link and date beside that added value. Use opening hours as published context and confirm time-sensitive availability directly before relying on it.
For a local market overview, group businesses by category and area after deduplication. Keep sponsored status separate from organic rank. A capped Yelp search is a discovery sample, not a census of every operating contractor.
For outreach, export only relevant, reviewed businesses and minimize personal data. Public listing information still needs to be used appropriately for your purpose and applicable requirements.
Resolve missing streets and sparse searches
If a business has city and postal code but no street, check whether it is listed as a service-area business before marking the row incomplete. Keep the null street rather than inserting a guessed address.
For no matches, verify the service wording and location on Yelp, then try a nearby neighborhood or broader category. If results reach the cap, use narrower geographic searches with ID deduplication when that serves the task. Missing website fields are a documented limitation, not a reason to rerun at a higher limit.
To compare another local-business source, see 2GIS listings or Google Maps leads. Match identities before merging counts or contacts.
For exporting local Yelp business lists, see the Node.js example. Use the current input fields above if the example differs.
Frequently asked questions
Why is street null for some businesses?
Service-area businesses may have no public storefront. The documented output can use city, state, and postal code while leaving street null.
Are sponsored results included?
Yes. They are marked with sponsored: true and have no organic rank in the documented output.
Does the Actor return business websites?
Not currently. Find and verify a website separately if your workflow needs it.
