Veterinarian Lead Scraper avatar

Veterinarian Lead Scraper

Pricing

Pay per event

Go to Apify Store
Veterinarian Lead Scraper

Veterinarian Lead Scraper

Find veterinarian clinics, animal hospitals, and emergency vet leads from Google Maps with ratings, phones, websites, and emails.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Find veterinarian clinics, animal hospitals, emergency vets, mobile vets, and other veterinary practices from Google Maps search pages.

Use this actor when you need structured veterinary lead lists for sales, recruiting, partnerships, local SEO, market mapping, or operations research.


What does Veterinarian Lead Scraper do?

Veterinarian Lead Scraper searches Google Maps for veterinary businesses by search term and location.

It collects public business information and saves each clinic as a structured dataset item.

Typical searches include:

  • 🐾 veterinarian
  • 🏥 animal hospital
  • 🚑 emergency veterinarian
  • 🚐 mobile vet
  • 🐶 veterinary clinic

Who is it for?

This actor is built for teams that sell to, research, or support veterinary practices.

Good fits include:

  • Veterinary supply companies building regional prospect lists
  • Pet-care SaaS vendors looking for clinic contacts
  • Insurance and financing providers mapping animal hospitals
  • Recruiting and staffing agencies finding veterinary employers
  • Marketing agencies targeting local veterinary practices
  • SEO and reputation teams benchmarking nearby clinics
  • Market researchers measuring clinic density by city

Why use this actor?

Generic map scraping can produce broad business data, but veterinary lead generation needs focused defaults and useful lead fields.

This actor is tuned for veterinary searches, includes clinic-friendly examples, and optionally enriches public websites for emails and social profiles.

Data you can extract

FieldDescription
nameBusiness or clinic name
categoryGoogle Maps category when visible
addressFull public address
cityParsed city when available
regionParsed state/region when available
countryParsed country when available
phonePublic phone number
websiteBusiness website URL
googleMapsUrlGoogle Maps place URL
ratingStar rating
reviewCountNumber of reviews
openStatusCurrent opening label when visible
hoursVisible opening hours when available
latitudeLatitude parsed from Maps URL
longitudeLongitude parsed from Maps URL
emailsPublic emails found on the website when enrichment is enabled
socialLinksPublic social links found on the website when enrichment is enabled
searchQuerySearch term used
locationLocation used
scrapedAtTimestamp for the row

How much does it cost to scrape veterinarian leads?

The actor uses pay-per-event pricing.

There is a $0.01 start event for each run and a tiered per-result event for each veterinarian lead saved.

Per-lead prices are: FREE $0.0048679, BRONZE $0.004233, SILVER $0.0033017, GOLD $0.0025398, PLATINUM $0.0016932, DIAMOND $0.0011852.

Keep your first run small by using the prefilled example and maxResultsPerLocation around 10.

How to use it

  1. Open the actor on Apify.
  2. Enter one or more veterinary search terms.
  3. Enter one or more locations.
  4. Choose how many leads to save per query/location pair.
  5. Keep website enrichment disabled for the fastest first run.
  6. Start the actor.
  7. Download results from the dataset as JSON, CSV, Excel, XML, or RSS.

Input example

{
"queries": ["veterinarian", "animal hospital"],
"locations": ["New York, NY", "Austin, TX"],
"maxResultsPerLocation": 10,
"enrichEmails": false,
"includeSocialLinks": true,
"proxyType": "none",
"proxyCountryCode": "US",
"language": "en"
}

Output example

{
"searchQuery": "veterinarian",
"location": "New York, NY",
"name": "Example Veterinary Clinic",
"category": "Veterinarian",
"address": "123 Main St, New York, NY 10001, United States",
"city": "New York",
"region": "NY",
"country": "United States",
"phone": "+1 555-0100",
"website": "https://examplevet.com",
"googleMapsUrl": "https://www.google.com/maps/place/...",
"rating": 4.7,
"reviewCount": 128,
"openStatus": "Open",
"hours": ["Monday 8 AM–6 PM"],
"latitude": 40.7128,
"longitude": -74.006,
"emails": ["info@examplevet.com"],
"socialLinks": ["https://www.facebook.com/examplevet"],
"scrapedAt": "2026-05-27T00:00:00.000Z"
}

Search term tips

Use specific terms when you need a narrower list.

Examples:

  • emergency veterinarian
  • animal hospital
  • mobile veterinarian
  • exotic animal vet
  • equine veterinarian
  • veterinary dermatologist

Location tips

Locations can be cities, ZIP codes, counties, states, or countries.

For sales territory work, use city-level inputs for cleaner results.

For market sizing, use several nearby cities instead of one very broad state query.

Email enrichment

When enrichEmails is enabled, the actor visits each public business website found in Google Maps.

It extracts visible email addresses from the website HTML.

This can improve lead usefulness, but it also increases runtime and bandwidth.

Start with enrichment disabled, verify the base leads, then enable it for production prospecting runs.

Proxy settings

The default proxy setting uses no proxy because direct cloud runs returned Google Maps results most reliably during validation.

If Google Maps blocks a target geography, try residential proxy for a small run first.

Use the proxyCountryCode field to match your target market, such as US, CA, GB, or AU when a proxy is enabled.

Integrations

You can connect the output dataset to common workflows:

  • Export CSV into a CRM such as HubSpot, Pipedrive, or Salesforce.
  • Send rows to Google Sheets using Apify integrations.
  • Trigger Make or Zapier workflows when a run finishes.
  • Join the data with internal territory assignments.
  • Enrich company websites in a separate email verification workflow.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/veterinarian-lead-scraper').call({
queries: ['veterinarian'],
locations: ['Denver, CO'],
maxResultsPerLocation: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('MY_APIFY_TOKEN')
run = client.actor('automation-lab/veterinarian-lead-scraper').call(run_input={
'queries': ['animal hospital'],
'locations': ['Seattle, WA'],
'maxResultsPerLocation': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~veterinarian-lead-scraper/runs?token=MY_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"queries":["veterinarian"],"locations":["Miami, FL"],"maxResultsPerLocation":10}'

MCP usage

Use the Apify MCP server with Claude Code, Claude Desktop, or other MCP clients.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/veterinarian-lead-scraper

Claude Code setup:

$claude mcp add apify-veterinarian-leads https://mcp.apify.com/?tools=automation-lab/veterinarian-lead-scraper

Claude Desktop or other MCP client JSON:

{
"mcpServers": {
"apify-veterinarian-leads": {
"url": "https://mcp.apify.com/?tools=automation-lab/veterinarian-lead-scraper"
}
}
}

Example prompts:

  • “Run the veterinarian lead scraper for emergency vets in Phoenix.”
  • “Find animal hospitals in Toronto and export the results as CSV.”
  • “Scrape 20 mobile veterinarians in Los Angeles and summarize websites with emails.”

Quality notes

Google Maps is a dynamic website and result availability can vary by location, language, proxy country, and query wording.

The actor skips places it cannot parse cleanly and continues with the next result.

Rows include searchQuery and location so you can audit how each lead was found.

Troubleshooting

If a run returns fewer results than expected, try a more specific location or reduce query breadth.

If Google blocks the browser session, try a small run with residential proxy and a matching country code.

If emails are missing, the business may not publish emails on its website or may render them through scripts/images.

Legality

This actor extracts publicly visible business information.

You are responsible for using the data lawfully, respecting privacy rules, and following applicable marketing, outreach, and data protection regulations.

Do not use scraped contact data for spam.

Other automation-lab actors that may fit lead-generation workflows:

FAQ

Can I scrape only emergency vets?

Yes. Use queries: ["emergency veterinarian"] and your target locations.

Can I get emails?

Yes, enable enrichEmails. The actor visits public websites and extracts visible email addresses.

Can I scrape multiple cities in one run?

Yes. Add multiple values to locations. Every query is combined with every location.

Why are some fields empty?

Google Maps and business websites do not expose every field for every practice. Empty optional fields mean the value was not visible or parseable.

Should I use residential proxy?

Use the default no-proxy mode first. Residential is useful only when Google blocks direct sessions for your target geography.

Version notes

The first version focuses on public Google Maps business fields and optional website email/social enrichment.

Future improvements may add more robust place ID parsing, review sampling, or specialty classification if demand justifies it.