# Google Maps Places

Search Google Maps places for address, rating, reviews, contact info, opening hours, and images

**Pricing:** $2 / 1k places

**Endpoint:** `POST /api/v1/agents/google-maps/places/run`

**Auth:** `Authorization: Bearer mk_live_...`

## Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `keywords` | array | No | What to search for (e.g. 'italian restaurants'). Use this together with Location to discover places. — OR — leave blank and pass specific URLs in the Place URLs field below. |
| `location` | string | No | Where to search (e.g. 'New York, USA'). Required when Search Terms is used; ignored when passing Place URLs. |
| `urls` | array | No | Specific Google Maps place URLs or Place IDs (e.g. ChIJreV9aqYWdkgROM_boL6YbwA). Use this when you already know the places — alternative to Search Terms + Location. |
| `maxResults` | integer | No | Maximum number of places to return per search term or URL. Use 0 for all. |
| `minimumRating` | string | No | Skip places rated below this. Leave empty for no filter. |
| `websiteFilter` | string | No | Filter by website presence. Useful for lead generation (find places without a website). |
| `maxImages` | integer | No | Number of images to fetch per place. 0 = none, 999 = all. Slows down the run. |

## Example

```bash
curl -X POST https://api.mindcase.co/api/v1/agents/google-maps/places/run \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"params":{}}'
```

```python
import requests

resp = requests.post(
    "https://api.mindcase.co/api/v1/agents/google-maps/places/run",
    headers={"Authorization": "Bearer mk_live_YOUR_API_KEY"},
    json={"params": {}},
)
data = resp.json()
```

## Get the results

`run` is async and returns a `job_id`. Poll until `status` is `completed`, then read the rows:

```bash
# 1) check status
curl https://api.mindcase.co/api/v1/jobs/JOB_ID \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"

# 2) when status == completed, fetch the rows
curl https://api.mindcase.co/api/v1/jobs/JOB_ID/results \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"
```

Full API reference (auth, jobs, balance, SDKs, MCP): https://mindcase.co/skills.md

## Response columns

| Field | Display name | Type |
|-------|--------------|------|
| `searchQuery` | Search Query | text |
| `location` | Location | text |
| `placeUrl` | Place URL | url |
| `businessName` | Business Name | text |
| `category` | Category | text |
| `allCategories` | All Categories | text |
| `rating` | Rating | rating |
| `reviews` | Reviews | number |
| `priceRange` | Price Range | text |
| `address` | Address | text |
| `phone` | Phone | phone |
| `website` | Website | url |
| `description` | Description | text |
| `photo` | Photo | url |
| `photoCount` | Photo Count | number |
| `neighborhood` | Neighborhood | text |
| `city` | City | text |
| `state` | State | text |
| `postalCode` | Postal Code | text |
| `country` | Country | text |
| `street` | Street | text |
| `latitude` | Latitude | number |
| `longitude` | Longitude | number |
| `permanentlyClosed` | Permanently Closed | boolean |
| `temporarilyClosed` | Temporarily Closed | boolean |
| `unclaimed` | Unclaimed | boolean |
| `topTag` | Top Tag | text |
| `topTagCount` | Top Tag Count | number |
| `5StarReviews` | 5-Star Reviews | number |
| `4StarReviews` | 4-Star Reviews | number |
| `3StarReviews` | 3-Star Reviews | number |
| `2StarReviews` | 2-Star Reviews | number |
| `1StarReviews` | 1-Star Reviews | number |
| `placeId` | Place ID | text |
| `additionalInfo` | Additional Info | object |
| `openingHours` | Opening Hours | object |
