Veterinarian Scraper - Google Maps Vets & Animal Hospitals avatar

Veterinarian Scraper - Google Maps Vets & Animal Hospitals

Pricing

$5.00 / 1,000 veterinarian scrapeds

Go to Apify Store
Veterinarian Scraper - Google Maps Vets & Animal Hospitals

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

Gio

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

3 days ago

Last modified

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",
    "veterinarians accepting new patients"
    ) and location (city, state, ZIP or neighborhood). The actor builds the Google Maps query for you.
  • Custom queries list - the bulk mode. Fill queries with an array of complete Google Maps search strings (one per city, ZIP or niche) and the actor runs each one in sequence, ignoring searchTerm/location. This is how you cover 50 ZIP codes or 20 cities in one run.
  • Country and language - country sets the Google Maps gl parameter (two-letter code: us, br, uk, ca, au, mx, in, de, fr...) and language sets hl, 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
    searchTerm: "emergency veterinarian"
    across a region to build a current list of 24-hour care options.

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

FieldTypeDescription
nameStringClinic or hospital name as listed on Google Maps
addressStringFull street address
phoneStringPhone number in E.164 format
websiteStringDomain, without protocol
websiteLinkStringFull clickable website URL
ratingNumberAverage Google rating (0 to 5)
reviewsCountNumberNumber of Google reviews
categoriesArrayAll categories Google assigns the listing
primaryCategoryStringThe main category
claimedBooleanWhether the business owner claimed the listing
workStatusStringCurrent open/closed status and next change time
placeIdStringGoogle's unique place identifier
latitude / longitudeNumberCoordinates for mapping
attributesObjectService options, accessibility, payments, parking, amenities, as Google Maps exposes them
query / nicheStringWhich input query and niche produced this record

Pricing

EventPrice
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 queries array instead of raising maxPages alone.
  • "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