Veterinarian Scraper - Google Maps Vets & Animal Hospitals
Pricing
$5.00 / 1,000 veterinarian scrapeds
Veterinarian Scraper - Google Maps Vets & Animal Hospitals
Scrape vet clinics and animal hospitals from Google Maps by city or ZIP: name, address, phone, website, rating, accessibility, payments. No login. $0.005/place.
Pricing
$5.00 / 1,000 veterinarian scrapeds
Rating
0.0
(0)
Developer
Gio
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape veterinary clinics and animal hospitals straight from Google Maps, by city, ZIP code or search term, with no login, no API key and no browser on your side.
Why use this scraper
Pet pharma reps, vet software vendors, pet insurance sales teams and vet equipment suppliers all start the same way: a list of clinics in a territory, with a working phone number and website to qualify the lead. Google Maps has that data for almost every veterinary clinic and animal hospital in the world, but pulling it by hand, city by city, does not scale past a handful of territories.
This actor automates that pull. Give it a search term and a location (or a list of pre-built queries for bulk runs), and it returns structured records with name, address, phone, website, rating, review count, opening status, accessibility, payment and parking attributes. It runs over plain HTTP, no Playwright, no browser fingerprint to maintain, which keeps it fast and keeps the price down.
Overview
The actor queries Google Maps search for your term and location (or your
own custom queries), paginates through the results, and parses each place
card into a flat JSON record. A typical run for one city and one niche
("veterinarian in Los Angeles, CA") returns 20 to 60 clinics in under a
minute, depending on maxPages. Output lands in the default dataset, one
record per clinic, ready to export as CSV, JSON or Excel from the Apify
console or pull straight into a CRM via the API.
Cost is $0.005 per place scraped, pay-per-result: a 60-place run costs $0.30, a 1,000-place batch across many cities costs $5.
Supported inputs
- Search term + location - the simple mode. Set
searchTerm(e.g."veterinarian","emergency veterinarian",) and"veterinarians accepting new patients"location(city, state, ZIP or neighborhood). The actor builds the Google Maps query for you. - Custom queries list - the bulk mode. Fill
querieswith an array of complete Google Maps search strings (one per city, ZIP or niche) and the actor runs each one in sequence, ignoringsearchTerm/location. This is how you cover 50 ZIP codes or 20 cities in one run. - Country and language -
countrysets the Google Mapsglparameter (two-letter code:us,br,uk,ca,au,mx,in,de,fr...) andlanguagesetshl, so results and labels come back in the right market and language. - Pagination depth and retries -
maxPages(1 to 5, default 2) controls how many result pages the actor pulls per query; Google Maps caps a single query around 20 unique places per page before it needs a narrower query to go deeper.maxRetries(1 to 6, default 3) controls retry attempts if an individual request gets blocked upstream.
Use cases
- Pet pharma and vet equipment sales - build a territory list of clinics by niche and city, with phone and website to start outreach the same day.
- Pet insurance lead generation - identify clinics by region to partner with for referrals, using review count and rating as a quick quality signal.
- Vet software and practice-management vendors - find independent clinics (not chain-owned) by filtering on category and address pattern, for demo outreach.
- Market research - count clinics per niche in a metro area, compare review volume and ratings across neighborhoods, track how many are "claimed" listings versus unclaimed.
- Emergency-care directories - run with across a region to build a current list of 24-hour care options.searchTerm: "emergency veterinarian"
How it works
The actor sends the search term and location straight to Google Maps' search endpoint and reads the place results from the response Google Maps itself returns, the same structured data the map view renders from. It does not open a browser or render any page: it reads the server's own response and maps each field (name, address, coordinates, category, attributes, rating) into the output schema below. That is also why it stays fast and cheap per place compared to approaches that render a full browser per result.
Input configuration
Mode 1: simple search term + location
{"searchTerm": "veterinarian","location": "Los Angeles, CA","country": "us","language": "en","maxPages": 3}
Mode 2: niche search, emergency care
{"searchTerm": "emergency veterinarian","location": "Austin, TX","country": "us","maxPages": 2,"maxRetries": 4}
Mode 3: bulk custom queries across cities
{"queries": ["animal hospital in Brooklyn, NY","veterinarian in Queens, NY","animal hospital in Miami, FL"],"country": "us","language": "en","maxPages": 2}
Output sample
Real output from a run against "veterinarian in Los Angeles, CA":
{"rank": 1,"name": "Modern Animal Downtown LA","address": "301 W Olympic Blvd, Los Angeles, CA 90015","phone": "+12133352199","website": "modernanimal.com","websiteLink": "https://www.modernanimal.com/clinics/downtown-la","rating": 4.7,"reviewsCount": 138,"latitude": 34.0419297,"longitude": -118.2585017,"categories": ["Veterinarian", "Animal hospital"],"primaryCategory": "Veterinarian","claimed": true,"workStatus": "Open · Closes 6 PM","placeId": "ChIJzezDyJjHwoARTJe8AFuc6Jk","attributes": {"Service options": ["Onsite services"],"Accessibility": ["Wheelchair accessible entrance", "Wheelchair accessible parking lot", "Wheelchair accessible restroom"],"Planning": ["Appointment required", "Appointments recommended"],"Parking": ["Free parking lot", "On-site parking", "Paid parking lot"]},"query": "veterinarian in Los Angeles, CA","niche": "veterinarian"}
A second real record from the same run, a smaller clinic with a different category mix:
{"rank": 3,"name": "Veterinary Care Center","address": "6455 Santa Monica Blvd, Los Angeles, CA 90038","phone": "+13239196666","website": "veterinarycarecenter.com","rating": 4.2,"reviewsCount": 511,"categories": ["Veterinarian"],"primaryCategory": "Veterinarian","claimed": true,"workStatus": "Open · Closes 7 PM"}
Key output fields
| Field | Type | Description |
|---|---|---|
name | String | Clinic or hospital name as listed on Google Maps |
address | String | Full street address |
phone | String | Phone number in E.164 format |
website | String | Domain, without protocol |
websiteLink | String | Full clickable website URL |
rating | Number | Average Google rating (0 to 5) |
reviewsCount | Number | Number of Google reviews |
categories | Array | All categories Google assigns the listing |
primaryCategory | String | The main category |
claimed | Boolean | Whether the business owner claimed the listing |
workStatus | String | Current open/closed status and next change time |
placeId | String | Google's unique place identifier |
latitude / longitude | Number | Coordinates for mapping |
attributes | Object | Service options, accessibility, payments, parking, amenities, as Google Maps exposes them |
query / niche | String | Which input query and niche produced this record |
Pricing
| Event | Price |
|---|---|
| Veterinarian/place scraped | $0.005 |
Pay-per-result, no platform usage charge on top. A run of 60 places costs $0.30; 1,000 places across multiple cities costs $5.
What makes this richer than the competition
- mukeshrana90/healthcare-google-maps-scraper (110 users/30d) covers healthcare clinics broadly, including vets, but at a higher per-result price once email and social-media enrichment events are added on top of the base charge.
- crawlerbros/vetlocator-scraper (1 user/30d) is vet-specific like this actor, but prices on a tiered scale by Apify plan ($0.005 Free down to $0.003 Diamond) instead of one flat price for every user.
This actor charges one flat $0.005 per place regardless of plan tier, no enrichment upsell, and returns the full set of Google Maps attributes (accessibility, parking, payments, service options) that a generic healthcare scraper built for doctors and dentists does not always surface for veterinary listings.
Notes & limitations
- Results depend on what Google Maps itself has published for a listing: if a clinic has no attributes or no claimed profile, those fields come back empty, not invented.
- A single query returns roughly 20 unique places per page before Google
Maps stops paginating; to cover a whole metro area, split the search into
several queries (per ZIP code or neighborhood) using the
queriesarray instead of raisingmaxPagesalone. - "Accepting new patients" or "emergency care" is inferred only when it appears explicitly in the listing's own text or attributes; absence of the phrase does not mean the clinic does not offer it, just that Google Maps does not say either way.
- No email address is scraped. Email enrichment is not part of this actor.
FAQ
Does this need a Google API key? No. It reads Google Maps' own search response directly, no key, no OAuth.
Can I search for a specific niche, not just "veterinarian"?
Yes. Set searchTerm to any niche, e.g. "emergency veterinarian",
"exotic animal vet", "veterinary dentist".
How do I cover an entire state or country?
Use the queries array with one entry per city or ZIP code you want to
cover, rather than relying on a single broad query.
Does it work outside the US?
Yes, set country and language to the target market, e.g.
country: "br", language: "pt" for Brazil.
Why do some records have no website field?
Because the clinic has no website listed on Google Maps. The actor never
invents a value; empty fields reflect what Google Maps actually has.
Does maxPages guarantee that many pages of results?
No, Google Maps stops returning new places once it runs out, typically
around 20 unique places per query regardless of maxPages. Use more
targeted queries to get more total results.
For AI Agents & LLM Apps
This actor is callable from any MCP-compatible AI assistant through the Apify MCP server, and directly from code through the Apify API.
Via MCP (mcp.apify.com): add the Apify MCP server to your AI
assistant (Claude, ChatGPT, or any MCP client) and call the
gio21/veterinarian-scraper actor by name with a searchTerm and
location. The assistant gets back structured JSON it can reason over
directly.
Via API (run-sync-get-dataset-items), for a synchronous call that
returns the dataset items in the same request:
curl "https://api.apify.com/v2/acts/gio21~veterinarian-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"searchTerm": "veterinarian", "location": "Los Angeles, CA", "country": "us", "maxPages": 2}'
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google or Google Maps. All trademarks mentioned are the property of their respective owners.
SEO Keywords
veterinarian scraper, vet clinic scraper, google maps veterinarian scraper, animal hospital leads, pet clinic lead generation, veterinary leads scraper, vet contact scraper, emergency vet directory scraper