Skip to main content

Local Business

Local-business data: Google Maps place search, place detail with popular times, and review history from Google Maps or Yelp.

What it scrapes

SourceData
Google MapsBusiness listings by query + location (name, address, rating, review count, category); place detail including popular times when available
Google Maps / YelpReview history for a place (source = google or yelp)

Endpoints

Router: routers/local_data.py · tag: LocalData

MethodPathSummary
GET/v1/local/places/searchGoogle Maps business search (query, location, limit 1–100, default 20)
GET/v1/local/places/{place_id}Place detail + popular times
GET/v1/local/reviews/{place_id}Review history (source = google | yelp, limit 1–100, default 20)

GET /v1/local/places/search

Query params: query (required, e.g. taco), location (e.g. Austin TX), limit (1–100, default 20).

curl -X GET "http://localhost:8005/v1/local/places/search?query=taco&location=Austin%20TX&limit=5" \
-H "Authorization: Bearer <key>"

Response (200):

{
"success": true,
"query": "taco",
"location": "Austin TX",
"limit": 5,
"data": [
{
"place_id": "ChIJabc123",
"name": "Example Taqueria",
"address": "100 Congress Ave, Austin, TX",
"rating": 4.6,
"review_count": 812,
"category": "Mexican restaurant",
"phone": "+1-512-555-0123",
"url": "https://maps.google.com/?cid=123456789"
}
]
}

GET /v1/local/places/{place_id}

curl -X GET "http://localhost:8005/v1/local/places/ChIJabc123" \
-H "Authorization: Bearer <key>"

Response (200):

{
"success": true,
"place_id": "ChIJabc123",
"data": {
"name": "Example Taqueria",
"address": "100 Congress Ave, Austin, TX",
"rating": 4.6,
"review_count": 812,
"category": "Mexican restaurant",
"hours": {"monday": "10:00–22:00", "tuesday": "10:00–22:00"},
"popular_times": {
"monday": [{"hour": 12, "percent": 82}, {"hour": 13, "percent": 90}],
"saturday": [{"hour": 19, "percent": 95}]
},
"price_level": 2,
"website": "https://example-taqueria.com"
}
}

GET /v1/local/reviews/{place_id}

Query params: source (google — CID/slug — or yelp — biz slug, default google), limit (1–100, default 20).

curl -X GET "http://localhost:8005/v1/local/reviews/ChIJabc123?source=google&limit=5" \
-H "Authorization: Bearer <key>"

Response (200):

{
"success": true,
"place_id": "ChIJabc123",
"source": "google",
"limit": 5,
"data": [
{
"author": "Jane D.",
"rating": 5,
"text": "Best tacos in town, fast service.",
"date": "2026-08-01",
"language": "en"
}
]
}

MCP tools

No dedicated MCP tool for local-data endpoints yet — call REST directly. For agents, pry_scrape + pry_extract can pull custom review/listing pages.

Who uses this

  • Local SEO agencies — review monitoring and rating tracking for clients.
  • Market research — popular-times data for foot-traffic analysis.
  • Competitive intelligence — review sentiment across a category in a city.
  • Reputation management — watch for new 1-star reviews in near real time (pair with monitors).

Next steps