You need every dentist in Texas, every auto shop in Ohio, or all restaurants in Florida, as a file you can load into a database or a map. There are three ways to get it, and they differ mostly in how much cleaning you'll do afterwards.
Option 1: open map data
Overture Maps publishes an open dataset of places, including businesses, that you can download and filter by state and category. It's free and covers a lot. We used it to pull 400 random US places for our Google Maps closed-business test.
The catch is freshness. Open map data includes businesses that have since closed or moved. In that test, VOYGR marked 93 of the 400 as closed. Plan to validate before you rely on the file.
Option 2: scrape map listings
Scraping tools pull listings from map sites by search area. You get what the map shows, including its mistakes: in our test, 23 of 86 confirmed closures still showed as open or had no listing on Google Maps. Check each site's terms before you scrape it.
Option 3: query by state and category
VOYGR Prospecting searches 16M+ US places by geography (city, ZIP or state) and category.
Size the query first. Resolving the geography, listing categories, counting and a five-place preview are all free:
# find the geography ID for the state curl -s "https://api.voygr.tech/v1/geo/suggest?q=Texas&limit=5" -H "X-API-Key: $VOYGR_API_KEY" # count matches for free (use the geography_id returned above) curl -s -X POST https://api.voygr.tech/v1/places/count \ -H "X-API-Key: $VOYGR_API_KEY" -H "Content-Type: application/json" \ -d '{"geography_id": "<state id>", "categories_any_level": ["dentist"]}' independents_only: true hides likely national chains, if you only want independents. When the count looks right, save the matches as a list (paid per place imported, up to 10,000 rows per list) and export it as CSV:
curl -s "https://api.voygr.tech/v1/lists/<list_id>/export" -H "X-API-Key: $VOYGR_API_KEY" -o texas-dentists.csv For a state bigger than 10,000 matches, split it by city or ZIP.
The same list can then be filled with open/closed status, hours, phone, website, owners or a custom question, so you don't need a second vendor for enrichment.
From Claude Code, Codex or ChatGPT, the Prospecting plugin does all of this from a prompt such as "count independent dentists in Texas, then build a list of the first 500 in Austin with phone and owner." It checks the cost with you before it spends.
Already have a file?
If you got your data from Option 1 or 2, run it through the Validate API in batches of up to 10,000 to drop closed places. The check_closed_stores example does that for a CSV.
Free key with 2.5K credits: api.voygr.tech/checkout. Prospecting: github.com/voygr-tech/prospecting.

