Skip to main content
Discover local businesses like restaurants, retail stores, service providers, and other physical locations using Google Maps data.
const restaurants = await canvas.places.find({
  query: "Italian restaurants",
  location: "Austin, TX",
  radius: 5000,
  minRating: 4.0,
  limit: 50,
});

Parameters

What are you looking for?

query
string
required
Search query (e.g., "coffee shops", "dentists", "yoga studios").
keywords
string[]
Additional keywords to filter results.

Where?

location
string
Location to search around (e.g., "Austin, TX", "90210"). Required if coordinates not provided.
radius
number
default:"5000"
Search radius in meters (max 50,000).
coordinates
object
Exact coordinates to search around. Required if location not provided.
{ lat: 30.2672, lng: -97.7431 }

Filters

minRating
number
Minimum Google rating (1-5).
minReviews
number
Minimum number of reviews.
hasWebsite
boolean
default:"true"
Only return places with a website.
openNow
boolean
Only return places currently open.

How many?

limit
number
default:"20"
Maximum number of places to return.

Returns

Array of places matching the criteria:
FieldTypeDescription
namestringBusiness name
addressstringFull address
phonestringPhone number
websitestringWebsite URL
ratingnumberGoogle rating (1-5)
reviewCountnumberNumber of reviews
placeIdstringGoogle Place ID
typesstring[]Business types
hoursobjectOperating hours
priceLevelnumberPrice level (1-4)

Examples

Find Restaurants

const restaurants = await canvas.places.find({
  query: "sushi restaurants",
  location: "San Francisco, CA",
  minRating: 4.0,
  limit: 25,
});

Find Service Providers

const dentists = await canvas.places.find({
  query: "dentist",
  location: "Brooklyn, NY",
  minRating: 4.5,
  minReviews: 50,
  limit: 20,
});

Find by Coordinates

const nearbyGyms = await canvas.places.find({
  query: "gym fitness center",
  coordinates: { lat: 40.7128, lng: -74.0060 },
  radius: 2000,
  limit: 10,
});

Find Open Businesses

const openCoffeeShops = await canvas.places.find({
  query: "coffee shop",
  location: "Seattle, WA",
  openNow: true,
  minRating: 4.0,
  limit: 15,
});

Use Cases

Local Lead Generation

Find businesses in a specific area that might need your services:
const leads = await canvas.places.find({
  query: "auto repair shop",
  location: "Denver, CO",
  minRating: 3.5,
  hasWebsite: true,
  limit: 100,
});

// Enrich with contact info
const enriched = await canvas.contacts.enrich({
  people: leads.map(place => ({
    company: place.name,
    domain: new URL(place.website).hostname,
  })),
});

Competitive Analysis

Map out competitors in a region:
const competitors = await canvas.places.find({
  query: "yoga studio pilates",
  location: "Austin, TX",
  radius: 15000,
  limit: 50,
});

// Research each competitor
for (const competitor of competitors) {
  const analysis = await canvas.ai.research({
    prompt: "Summarize this business's offerings and reviews",
    data: competitor,
  });
}

Territory Mapping

Find all businesses of a type across multiple locations:
const cities = ["Austin, TX", "Dallas, TX", "Houston, TX", "San Antonio, TX"];

const allPlaces = [];
for (const city of cities) {
  const places = await canvas.places.find({
    query: "commercial real estate agency",
    location: city,
    limit: 30,
  });
  allPlaces.push(...places);
}

return allPlaces;