Map competitors and local demand around any location
Find every business of a type near a location on Google Maps: name, address, phone, website, rating, review count, hours and coordinates, as JSON.
Before you open a second store, pick a franchise territory or decide where to advertise, you need to know who is already there: how many competitors, how well they are rated and how far apart they sit. Clicking through Google Maps gives you a dozen results, not a market. Lovely Router returns the whole picture. Send a business type and a location, get one JSON object per place, pay per place from a prepaid balance. Call it from a notebook, a site-selection model or an AI agent with one API key.
Hand it to your AI agent
Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.
Map competitors and local demand around any location. Use the Lovely Router data tools: each returns JSON and is billed per result.
- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the inputs (links, keywords or accounts) and how many results you need>How it works
Define the market
Choose the business type as
searchTermsand the area aslocation, with aradiusin kilometers if the default is not right.Run the tool with a cap
Send the search to
POST /v1/tools/google-maps-places/runwithmaxResultsandmax_results. The run holds its maximum cost from your balance and returns the places as JSON.Analyze the map
Plot the coordinates, rank by rating and review count, and compare areas. A crowded area with weak ratings is a different opportunity from a sparse one.
Get the places with one request
Search Google Maps places takes searchTerms and a location. One place is one result, and one run returns up to 200:
curl https://lovelyrouter.com/v1/tools/google-maps-places/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"searchTerms": ["coffee shop"],
"location": "Austin, Texas, USA",
"maxResults": 10,
"language": "en"
},
"max_results": 10
}'A run still going after 60 seconds returns 202; Run a tool shows how to poll. Add minRating (2.0 to 4.5 in half steps) to keep only well-rated places, or openNow to keep only places open at the moment.
What each place holds
| Field group | What you get |
|---|---|
| Identity | Name and address |
| Contact | Phone and website |
| Reputation | Average rating and review count |
| Hours | Opening hours |
| Location | Coordinates |
Recipes
Search your category around the address, count the places, and look at the average rating. Many places above 4.5 means customers have good options already.
Run without minRating, sort by rating ascending with a healthy review count, and note where service gaps may exist.
Run the same search for both, and compare place counts and median ratings to choose where to expand.
Pass several searchTerms such as restaurants, cafe and fast food. Results are merged into one deduplicated set, and a single term surfaces only part of the market.
Export name, address and coordinates, and plan visit routes from the coordinates.
Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Find coffee shops in Austin, rank them by review count, and tell me the five with the highest rating and the fewest reviews. Set max_results to 100."
Pair it with other local sources
A place listing is the start. Reviews, other directories and contact details complete it:
Find local businesses on Google Maps by keyword and location: name, address, phone, website, rating, review count, opening hours, coordinates.
Reviews of a Google Maps place (by place ID or URL): text, stars, date, owner replies.
Local businesses from Google Maps plus the emails, phones and social links found on their websites. Built for local lead lists.
Tripadvisor hotels, restaurants and attractions for a location.
google-maps-reviewsreads what customers say about a given place, with stars, dates and owner replies.google-maps-leadsadds emails and social links from each business website, for outreach.tripadvisor-placescovers hotels, restaurants and attractions for travel-oriented markets.
For more on local and travel data, see travel and real estate data.
What you pay
You pay per place: starting a run holds its maximum cost, the per-call fee plus the per-place fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the places it delivered, and a run refused at the start costs nothing.
Mapping 150 places is billed as 150 places. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.
Frequently asked questions
How many places can one search return?+
A nearby search returns about 60 places at most for each search term. One run can return up to 200 places, so use several terms or locations to cover a large area.
How wide is the search area?+
The search covers about radius kilometers around the location. Set radius to widen or narrow it.
Can I filter by rating?+
Yes. minRating accepts 2.0, 2.5, 3.0, 3.5, 4.0 or 4.5 and keeps places with at least that average rating.
Does it return emails?+
No. This tool returns the listing: name, address, phone, website, rating, review count, hours and coordinates. For emails found on business websites, use google-maps-leads.
Do I need a subscription?+
No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.
Researching more than one market? See travel and real estate data, the tool catalog, and pricing.