Google Maps Search API
Search Google Maps for places matching a query and location: up to 20 normalized place records with ratings, addresses, and contact basics per request.
Provider network
Providers ranked by traffic
capped at $0.116 per request1 result$0.0058411 results$0.0636421 results$0.116 capYou are charged for what comes back. Lower the limit to pay less - and no single request can cost more than the cap, however much comes back.
Try it
Make your first request
{
"data": {
"items": [
{
"address": "123 Main St",
"category": "general",
"cid": "a1b2c3d4",
"city": "San Francisco",
"countryCode": "US",
"image": "https://example.com/image.jpg",
"latitude": 37.7749,
"longitude": -122.4194,
"name": "Example title",
"permanentlyClosed": false,
"phone": "+1 555-0142",
"placeId": "a1b2c3d4",
"postalCode": "94107",
"priceLevel": "19.99",
"rating": 4.6,
"reviewCount": 12500,
"state": "CA",
"street": "123 Main St",
"url": "https://example.com/page",
"website": "https://example.com/page"
}
]
},
"found": true
}interface MapsSearchResponse {
data: {
items: {
address?: string;
category?: string;
cid?: string;
city?: string;
countryCode?: string;
image?: string;
latitude?: number;
longitude?: number;
name: string;
permanentlyClosed?: boolean;
phone?: string;
placeId: string;
postalCode?: string;
priceLevel?: string;
rating?: number;
reviewCount?: number;
state?: string;
street?: string;
url: string;
website?: string;
}[];
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-16 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/maps.search \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"limit":3,"location":"Austin, TX","query":"coffee"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| location | string | "Austin, TX"Free-text location to search in, ideally city plus country (e.g. Austin, USA). |
| query | string | "coffee"What you would type in the Google Maps search bar (e.g. coffee shop). |
| categoryFilterWords | array | Optional list of Google Maps place-category names to keep; results are limited to places whose category matches one of these. Use lowercase category names as shown on Google Maps (e.g. ["coffee shop", "restaurant"]). Omit to include all categories and stay on the cheapest price; a category filter routes to a dearer source. |
| language | string | Two-letter language code for the results (e.g. en). |
| limit | integer | 3Maximum number of results to return (1-20, default 20). Pricing depends on the selected provider and may be flat per request. |
| placeMinimumStars | enum | Only return places with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit this field to stay on the cheapest price; a rating floor routes to a dearer source. |
| requireFields | array | Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `cid` or `street`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a place that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge. |
| website | enum | Filter places by whether they list a website: allPlaces (default), withWebsite (only places that have a website), or withoutWebsite (only places without one). Omit this field, or send allPlaces, to stay on the cheapest price; withWebsite and withoutWebsite route to a dearer source. |
| Response | ||
| data | object | The result wrapper, or null when nothing matched. |
| data.items | object[] | Matching Google Maps place records. Populated whenever the provider has data for the entity. |
| data.items[].addresscan require | string | Full formatted street address. |
| data.items[].categorycan require | string | Primary place category (e.g. Coffee shop). |
| data.items[].cidcan require | string | Google customer/place id (cid). |
| data.items[].citycan require | string | City the place is in. |
| data.items[].countryCodecan require | string | Two-letter country code. |
| data.items[].imagecan require | string | Primary place photo URL. |
| data.items[].latitudecan require | number | Latitude of the place in decimal degrees. |
| data.items[].longitudecan require | number | Longitude of the place in decimal degrees. |
| data.items[].name | string | Place name. Populated whenever the provider has data for the entity. |
| data.items[].permanentlyClosedcan require | boolean | True when the place is marked permanently closed. |
| data.items[].phonecan require | string | Business phone number in E.164 format, when listed. |
| data.items[].placeId | string | Google Maps place id (stable identifier for the place). Populated whenever the provider has data for the entity. |
| data.items[].postalCodecan require | string | Postal code of the place. |
| data.items[].priceLevelcan require | string | Relative price level indicator (e.g. $, $10-20). |
| data.items[].ratingcan require | number | Average star rating out of 5. |
| data.items[].reviewCountcan require | number | Total number of reviews. |
| data.items[].statecan require | string | State or region the place is in. |
| data.items[].streetcan require | string | Street line of the address. |
| data.items[].url | string | Canonical Google Maps URL for the place. Populated whenever the provider has data for the entity. |
| data.items[].websitecan require | string | The place's own website URL, when listed. |
| found | boolean | True when the search returned at least one matching place. |
| Price | ||
| Price per request | USD | $0.00175 |
| Price /1k req | USD | $1.75 |
FAQ
About the Google Maps Search API
The AnyAPI Google Maps Search API returns Google Maps search data as normalized JSON from one POST call to /v1/run/maps.search. Search Google Maps for places matching a query and location: up to 20 normalized place records with ratings, addresses, and contact basics per request. AnyAPI routes each request across 3 sources and falls back automatically when one fails. It costs from $1.75 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 99.8% of Google Maps search calls through AnyAPI succeeded, with a median response time of 2.6 seconds across 4,544 measured calls.