**European Economic Area (EEA) developers**

> [!NOTE]
> If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](https://developers.google.com/maps/comms/eea/faq.md.txt).

> [!NOTE]
> This product is in [Legacy status](https://developers.google.com/maps/legacy.md.txt). As of October 2026, Places API (Legacy) can no longer be enabled for new Google Cloud projects. Existing projects remain fully supported. For new features and improved performance, [migrate to Places API
> (New)](https://developers.google.com/maps/documentation/places/web-service/legacy/migrate-overview).

**Note: Server-side
and client-side libraries**

The Places API is also available with the
[Java Client,
Python Client, Go Client and Node.js Client for Google Maps Services](https://developers.google.com/maps/documentation/places/web-service/client-library).
The Places API and the client libraries are for
use in server applications.

If you're building a client-side
application, take a look at the
[Places SDK for Android (New)](https://developers.google.com/maps/documentation/places/android-sdk), the
[Places SDK for iOS (New)](https://developers.google.com/maps/documentation/places/ios-sdk), and the
[Places Library, Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/places).

A Find Place (Legacy) request takes a text input and returns a place. The input
can be any kind of Places text data, such as a name, address, or phone
number. The request must be a string. A Find Place (Legacy) request using non-string data
such as a lat/lng coordinate or plus code generates an error.

> [!WARNING]
> A Find Place (Legacy) request returns a subset of the fields that are returned by a [Place Details (Legacy)](https://developers.google.com/maps/documentation/places/web-service/details) request. For more information about the fields that are unavailable in a Find Place (Legacy) request, see [Places API fields support](https://developers.google.com/maps/documentation/places/web-service/place-data-fields#places-api-fields-support). If the field you want is not returned, you can use Find Place (Legacy) to get a `place_id`, then use that ID to make a Place Details (Legacy) request.

## Find Place (Legacy) requests

A Find Place (Legacy) request is an HTTP URL of the following form:

```
https://maps.googleapis.com/maps/api/place/findplacefromtext/output?parameters
```

where `output` can be either of the following values:

- `json` (recommended) indicates output in JavaScript Object Notation (JSON)
- `xml` indicates output as XML

Certain parameters are required to initiate a Find Place (Legacy) request. As is
standard in URLs, all parameters are separated using the ampersand
(`&`) character.

## Required parameters

### input


The text string on which to search. This must be a place name, address, or phone number
(for example, "123 Main Street" or "City Hall").
**Important:** `input` must be a string. A Find Place (Legacy) request using non-string data, such as latitude and longitude coordinates or a plus code, generates an error.

### inputtype


The type of input. This can be one of either `textquery` or
`phonenumber`. Phone numbers must be in international format
(prefixed by a plus sign ("+"), followed by the country code, then the
phone number itself). See
[E.164 ITU recommendation](https://en.wikipedia.org/wiki/E.164)
for more information.

## Optional parameters

### fields

**Caution:** Place Search (Legacy) requests and Place Details (Legacy) requests don't return the same fields. Place Search (Legacy) requests return a subset of the fields that are returned by Place Details (Legacy) requests. If the field you want is not returned by Place Search (Legacy), you can use Place Search (Legacy) to get a `place_id`, then use that Place ID to make a Place Details (Legacy) request. For more information about the fields that are unavailable in a Place Search (Legacy) request, see [Places API fields support](https://developers.google.com/maps/documentation/places/web-service/place-data-fields#places-api-fields-support).


Use the fields parameter to specify a comma-separated list of place data
types to return. For example:
`fields=formatted_address,name,geometry`. Use a forward slash
when specifying compound values. For example:
`opening_hours/open_now`.


Fields are divided into three billing categories:
[Basic](https://developers.google.com/maps/billing-and-pricing/sku-details/legacy.md.txt#basic-data-legacy-ess-sku),
[Contact](https://developers.google.com/maps/billing-and-pricing/sku-details/legacy.md.txt#contact-data-legacy-ent-sku), and
[Atmosphere](https://developers.google.com/maps/billing-and-pricing/sku-details/legacy.md.txt#atmosphere-data-legacy-ent-sku).
Basic fields are billed at base rate, and Contact and Atmosphere fields are billed at a higher
rate. **Basic, Contact, and Atmosphere SKUs are charged in addition to the base SKU (Places
Details, Find Place, Nearby Search, or Text Search) for the request that triggered them.** For
more information, see the
[pricing sheet](https://developers.google.com/maps/billing-and-pricing/pricing.md.txt).

**Basic**


The Basic category includes the following fields:
`address_components`, `adr_address`,
`business_status`, `formatted_address`,
`geometry`, `icon`, `icon_mask_base_uri`,
`icon_background_color`, `name`,
`permanently_closed` ([deprecated](https://developers.google.com/maps/deprecations.md.txt)), `photo`, `place_id`, `plus_code`,
`type`, `url`, `utc_offset`,
`vicinity`, `wheelchair_accessible_entrance`.

**Contact**


The Contact category includes the following fields:
`current_opening_hours`, `formatted_phone_number`,
`international_phone_number`, `opening_hours`,
`secondary_opening_hours`, `website`

**Atmosphere**


The Atmosphere category includes the following fields:
`curbside_pickup`, `delivery`, `dine_in`,
`editorial_summary`, `price_level`,
`rating`, `reservable`, `reviews`,
`serves_beer`, `serves_breakfast`,
`serves_brunch`, `serves_dinner`,
`serves_lunch`, `serves_vegetarian_food`,
`serves_wine`, `takeout`,
`user_ratings_total`.
**Note:** Attributions, `html_attributions`, are always returned with every call, regardless of whether the field has been requested.

### language

The language in which to return results.

- See the [list of supported languages](https://developers.google.com/maps/faq.md.txt#languagesupport). Google often updates the supported languages, so this list may not be exhaustive.
- If `language` is not supplied, the API attempts to use the preferred language as specified in the `Accept-Language` header.
- The API does its best to provide a street address that is readable for both the user and locals. To achieve that goal, it returns street addresses in the local language, transliterated to a script readable by the user if necessary, observing the preferred language. All other addresses are returned in the preferred language. Address components are all returned in the same language, which is chosen from the first component.
- If a name is not available in the preferred language, the API uses the closest match.
- The preferred language has a small influence on the set of results that the API chooses to return, and the order in which they are returned. The geocoder interprets abbreviations differently depending on language, such as the abbreviations for street types, or synonyms that may be valid in one language but not in another. For example, *utca* and *tér* are synonyms for street in Hungarian.

### locationbias


Prefer results in a specified area, by specifying either a radius plus
lat/lng, or two lat/lng pairs representing the points of a rectangle. If
this parameter is not specified, the API uses IP address biasing by
default.

- IP bias: Instructs the API to use IP address biasing. Pass the string `ipbias` (this option has no additional parameters).
- Circular: A string specifying radius in meters, plus lat/lng in decimal degrees. Use the following format: `circle:radius@lat,lng`.
- Rectangular: A string specifying two lat/lng pairs in decimal degrees, representing the south/west and north/east points of a rectangle. Use the following format:`rectangle:south,west|north,east`. Note that east/west values are wrapped to the range -180, 180, and north/south values are clamped to the range -90, 90.

> [!NOTE]
> **Note:** If you omit the `fields` parameter from a Find Place (Legacy) request, only the `place_id` for the result will be returned.

## Find Place (Legacy) examples

The following example shows a Find Place (Legacy) request for "Museum of Contemporary
Art Australia", including the `photos`,
`formatted_address`, `name`, `rating`,
`opening_hours`, and `geometry` fields:

### curl

```console
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=Museum%20of%20Contemporary%20Art%20Australia&inputtype=textquery&fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cgeometry&key=YOUR_API_KEY'
```

### HTTP

```console
https://maps.googleapis.com/maps/api/place/findplacefromtext/json
    ?fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cgeometry
    &input=Museum%20of%20Contemporary%20Art%20Australia
    &inputtype=textquery
    &key=YOUR_API_KEY
```

The following example shows a Find Place (Legacy) request for "Mongolian Grill",
using the `locationbias` parameter to prefer results within
2000 meters of the specified coordinates:

### curl

```console
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=Mongolian%20Grill&inputtype=textquery&fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cgeometry&locationbias=circle:2000@−33.866,151.216&key=YOUR_API_KEY'
```

### HTTP

```console
https://maps.googleapis.com/maps/api/place/findplacefromtext/json
    ?fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cgeometry
    &input=Mongolian%20Grill
    &inputtype=textquery
    &locationbias=circle:2000@−33.866,151.216
    &key=YOUR_API_KEY
```


The following example shows a Find Place (Legacy) request for a phone number. Note that the international
call prefix "+" has been encoded to %2B so that this request is a compliant URL.
Left unencoded, the + prefix would be decoded to a space on the server, resulting in an invalid
phone number lookup.

### curl

```console
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=%2B16502530000&inputtype=phonenumber&fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cgeometry&key=YOUR_API_KEY'
```

### HTTP

```console
https://maps.googleapis.com/maps/api/place/findplacefromtext/json
    ?fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cgeometry
    &input=%2B16502530000
    &inputtype=phonenumber
    &key=YOUR_API_KEY
```

## Find Place (Legacy) responses

A Find Place (Legacy) response contains only the data types that were specified using
the [fields](https://developers.google.com/maps/documentation/places/web-service/legacy/search-find-place.md.txt#Fields) parameter, plus
`html_attributions`. The following example shows the response for a
Find Place (Legacy) request for "Museum of Contemporary Art Australia", including the
`formatted_address`, `geometry`, `name`,
`opening_hours`, `photos`, `rating` fields.

### JSON

```json
{
  "candidates":
    [
      {
        "formatted_address": "140 George St, The Rocks NSW 2000, Australia",
        "geometry":
          {
            "location": { "lat": -33.8599358, "lng": 151.2090295 },
            "viewport":
              {
                "northeast":
                  { "lat": -33.85824377010728, "lng": 151.2104386798927 },
                "southwest":
                  { "lat": -33.86094342989272, "lng": 151.2077390201073 },
              },
          },
        "name": "Museum of Contemporary Art Australia",
        "opening_hours": { "open_now": false },
        "rating": 4.4,
      },
    ],
  "status": "OK",
}    
```

### XML

```xml
<?xml version="1.0" encoding="UTF-8"?>
<FindPlaceFromTextResponse>
 <candidates>
  <name>Museum of Contemporary Art Australia</name>
  <formatted_address>140 George St, The Rocks NSW 2000, Australia</formatted_address>
  <geometry>
   <location>
    <lat>-33.8599358</lat>
    <lng>151.2090295</lng>
   </location>
   <viewport>
    <southwest>
     <lat>-33.8609434</lat>
     <lng>151.2077390</lng>
    </southwest>
    <northeast>
     <lat>-33.8582438</lat>
     <lng>151.2104387</lng>
    </northeast>
   </viewport>
  </geometry>
  <rating>4.4</rating>
  <opening_hours>
   <open_now>false</open_now>
  </opening_hours>
 </candidates>
 <status>OK</status>
</FindPlaceFromTextResponse>

    
```

### PlacesFindPlaceFromTextResponse

| Field | Required | Type | Description |
|:---|---|---|---|
| #### `candidates` | **required** | Array\<[Place](https://developers.google.com/maps/documentation/places/web-service/legacy/search-find-place.md.txt#Place "Place")\> | Contains an array of Place candidates. Place Search (Legacy) requests return a subset of the fields that are returned by Place Details (Legacy) requests. If the field you want is not returned by Place Search (Legacy), you can use Place Search (Legacy) to get a place_id, then use that Place ID to make a Place Details (Legacy) request. See [Place](https://developers.google.com/maps/documentation/places/web-service/legacy/search-find-place.md.txt#Place) for more information. |
| #### `status` | **required** | [PlacesSearchStatus](https://developers.google.com/maps/documentation/places/web-service/legacy/search-find-place.md.txt#PlacesSearchStatus "PlacesSearchStatus") | Contains the status of the request, and may contain debugging information to help you track down why the request failed. See [PlacesSearchStatus](https://developers.google.com/maps/documentation/places/web-service/legacy/search-find-place.md.txt#PlacesSearchStatus) for more information. |
| #### `error_message` | optional | string | When the service returns a status code other than `OK<`, there may be an additional `error_message` field within the response object. This field contains more detailed information about the reasons behind the given status code. This field is not always returned, and its content is subject to change. |
| #### `info_messages` | optional | Array\<string\> | When the service returns additional information about the request specification, there may be an additional `info_messages` field within the response object. This field is only returned for successful requests. It may not always be returned, and its content is subject to change. |

### PlacesSearchStatus

Status codes returned by service.

- `OK` indicating the API request was successful.
- `ZERO_RESULTS` indicating that the search was successful but returned no results. This may occur if the search was passed a `latlng` in a remote location.
- `INVALID_REQUEST` indicating the API request was malformed, generally due to missing required query parameter (`location` or `radius`).
- `OVER_QUERY_LIMIT` indicating any of the following:
  - You have exceeded the QPS limits.
  - Billing has not been enabled on your account.
  - The monthly $200 credit, or a self-imposed usage cap, has been exceeded.
  - The provided method of payment is no longer valid (for example, a credit card has expired).

  See the [Maps FAQ](https://developers.google.com/maps/faq.md.txt#over-limit-key-error) for more information about how to resolve this error.
- `REQUEST_DENIED` indicating that your request was denied, generally because:
  - The request is missing an API key.
  - The `key` parameter is invalid.
- `UNKNOWN_ERROR` indicating an unknown error.

### Place


Place Search responses return the following subset of the
[Place](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#Place)
fields. Not all attributes are available for all place types. To retrieve
fields that Place Search doesn't return, such as
`address_components`, `formatted_phone_number`,
`reviews`, or `website`, pass the returned
`place_id` in a
[Place Details (Legacy)](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt)
request. For field availability and pricing tiers across endpoints, see
[Place
Data Fields (Legacy)](https://developers.google.com/maps/documentation/places/web-service/legacy/place-data-fields#places-api-fields).

| Field | Type | Description |
|:---|:---|:---|
| `business_status` | `string` | Indicates the operational status of the place, if it's a business: `OPERATIONAL`, `CLOSED_TEMPORARILY`, or `CLOSED_PERMANENTLY`. Omitted if no status data exists. |
| `formatted_address` | `string` | The human-readable address of this place. Returned by Text Search (Legacy) and Find Place (Legacy). Don't parse the formatted address programmatically; request [`address_components`](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#Place-address_components) in Place Details (Legacy) instead. |
| `geometry` | [`Geometry`](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#Place-geometry) | Contains the geocoded `location` with `lat` and `lng` coordinates, and the preferred `viewport` with `northeast` and `southwest` bounds. |
| `icon` | `string` | The URL of a suggested icon that you can display when indicating this result on a map. |
| `icon_background_color` | `string` | The default hexadecimal color code for the place's category. |
| `icon_mask_base_uri` | `string` | The base URL of a recommended icon, without the SVG or PNG file type extension. |
| `name` | `string` | The human-readable name for the returned result. For `establishment` results, this value is usually the canonicalized business name. |
| `opening_hours` | [`PlaceOpeningHours`](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#PlaceOpeningHours) | Opening hours information. Place Search endpoints return only the `open_now` boolean subfield; request [`opening_hours`](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#PlaceOpeningHours) in Place Details (Legacy) for `periods` and `weekday_text`. |
| `permanently_closed` | `boolean` | **Deprecated:** Use `business_status` to check the operational status of a business. |
| `photos` | `Array<PlacePhoto>` | An array of [`PlacePhoto`](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#PlacePhoto) objects, each containing a `photo_reference`, `height`, `width`, and `html_attributions`. For usage details, see [Place Photos (Legacy)](https://developers.google.com/maps/documentation/places/web-service/legacy/photos.md.txt). |
| `place_id` | `string` | A textual identifier that uniquely identifies a place. Pass this ID in the `place_id` parameter of a [Place Details (Legacy)](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt) request. See the [place ID overview](https://developers.google.com/maps/documentation/places/web-service/place-id.md.txt). |
| `plus_code` | [`PlusCode`](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#Place-plus_code) | An encoded location reference derived from latitude and longitude coordinates, containing a `global_code` and an optional `compound_code`. |
| `price_level` | `integer` | The price level of the place on a scale from `0` to `4`, from least expensive to most expensive. See [`price_level`](https://developers.google.com/maps/documentation/places/web-service/legacy/details.md.txt#Place-price_level). |
| `rating` | `number` | The place's rating, from `1.0` to `5.0`, based on aggregated user reviews. |
| `reference` | `string` | **Deprecated:** Use `place_id` instead. |
| `scope` | `string` | **Deprecated:** Indicates the scope of the `place_id`, which is always `GOOGLE`. Returned by Nearby Search (Legacy). |
| `types` | `Array<string>` | An array of feature types describing the given result. See [Place Types (Legacy)](https://developers.google.com/maps/documentation/places/web-service/legacy/supported_types.md.txt#table2). |
| `user_ratings_total` | `integer` | The total number of ratings, with or without review text, for this place. |
| `vicinity` | `string` | A simplified address for the place, including the street name, street number, and locality, without the state or province, postal code, or country. Returned by Nearby Search (Legacy). |