> [!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/android-sdk/legacy/migrate-overview).

Use this guide to understand the key differences between the Places SDK versions
and migrate to Places SDK for Android (New).

## SDK features available in each version

The following table shows which SDK and API versions are required for each SDK
feature:

| Feature | Places API version | Initialization method | Minimum SDK version |
|---|---|---|---|
| [Autocomplete (New)](https://developers.google.com/maps/documentation/places/android-sdk/place-autocomplete.md.txt) | Places API (New) | [`initializeWithNewPlacesApiEnabled()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initializeWithNewPlacesApiEnabled(android.content.Context,%20java.lang.String)) | 3.5.0 |
| [Place Details (New)](https://developers.google.com/maps/documentation/places/android-sdk/details-place.md.txt) | Places API (New) | [`initializeWithNewPlacesApiEnabled()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initializeWithNewPlacesApiEnabled(android.content.Context,%20java.lang.String)) | 3.3.0 |
| [Nearby Search (New)](https://developers.google.com/maps/documentation/places/android-sdk/nearby-search.md.txt) | Places API (New) | [`initializeWithNewPlacesApiEnabled()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initializeWithNewPlacesApiEnabled(android.content.Context,%20java.lang.String)) | 3.5.0 |
| [Place Photos (New)](https://developers.google.com/maps/documentation/places/android-sdk/place-photos.md.txt) | Places API (New) | [`initializeWithNewPlacesApiEnabled()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initializeWithNewPlacesApiEnabled(android.content.Context,%20java.lang.String)) | 3.4.0 |
| [Text Search (New)](https://developers.google.com/maps/documentation/places/android-sdk/text-search.md.txt) | Places API (New) | [`initializeWithNewPlacesApiEnabled()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initializeWithNewPlacesApiEnabled(android.content.Context,%20java.lang.String)) | 3.3.0 |
| [Place Autocomplete](https://developers.google.com/maps/documentation/places/android-sdk/autocomplete) | Places API (Legacy) | [`initialize()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initialize(android.content.Context,%20java.lang.String)) (Deprecated) |   |
| [Current Place](https://developers.google.com/maps/documentation/places/android-sdk/current-place) | Places API (Legacy) | [`initialize()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initialize(android.content.Context,%20java.lang.String)) (Deprecated) |   |
| [Place Details](https://developers.google.com/maps/documentation/places/android-sdk/place-details) | Places API (Legacy) | [`initialize()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initialize(android.content.Context,%20java.lang.String)) (Deprecated) |   |
| [Place Photos](https://developers.google.com/maps/documentation/places/android-sdk/photos) | Places API (Legacy) | [`initialize()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initialize(android.content.Context,%20java.lang.String)) (Deprecated) |   |

> [!CAUTION]
> **Deprecated:** The `Places.initialize` method is deprecated. Use [`Places.initializeWithNewPlacesApiEnabled()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/Places.md.txt#initializeWithNewPlacesApiEnabled(android.content.Context,java.lang.String,java.util.Locale)) instead. Note that in order to use `Places.initializeWithNewPlacesApiEnabled()`, you need to enable the Places API (New) on your API key in the Google Cloud console.

## Migrate to the new APIs

To migrate to the new APIs, see the following migration guides:

- [Migrate to Place Details (New)](https://developers.google.com/maps/documentation/places/android-sdk/migrate-details)
- [Migrate to Place Photos (New)](https://developers.google.com/maps/documentation/places/android-sdk/migrate-photo)
- [Migrate to Autocomplete (New)](https://developers.google.com/maps/documentation/places/android-sdk/migrate-autocomplete)

## Enhancements in Places SDK for Android (New)

This section covers key features added to Places SDK for Android (New).

### Implemented on the Google Cloud standard platform

Places SDK for Android (New) is implemented on the [service
infrastructure](https://cloud.google.com/service-infrastructure/docs/overview)
on Google Cloud. This implementation brings a more secure and trusted platform.
This standard design brings a level of consistency across the SDKs that improve
the efficiency of development with Places SDK for Android
(New).

### Improved performance

Places SDK for Android (New) provides improved performance, making it
worthwhile to replace apps that use the existing SDK.

### New features

The Places SDK for Android (New) includes the latest versions of all of the SDK
features:

- [Autocomplete (New)](https://developers.google.com/maps/documentation/places/android-sdk/place-autocomplete.md.txt)
- [Place Details (New)](https://developers.google.com/maps/documentation/places/android-sdk/details-place.md.txt)
- [Nearby Search (New)](https://developers.google.com/maps/documentation/places/android-sdk/nearby-search.md.txt)
- [Place Photos (New)](https://developers.google.com/maps/documentation/places/android-sdk/place-photos.md.txt)
- [Text Search (New)](https://developers.google.com/maps/documentation/places/android-sdk/text-search.md.txt)

### Text Search (New)

[Text Search (New)](https://developers.google.com/maps/documentation/places/android-sdk/legacy/text-search) returns information
about a set of places based on a string --- for example "pizza in New York" or
"shoe stores near Ottawa" or "123 Main Street". The service responds with a list
of places matching the text string and any location bias that has been set.

### New response data added to Place Details (New) and Place Photos (New)

- [Place Details (New)](https://developers.google.com/maps/documentation/places/android-sdk/details-place.md.txt)
  now includes the new
  [Review](https://developers.google.com/maps/documentation/places/android-sdk/legacy/reference/com/google/android/libraries/places/api/model/Review)
  class in the response `Place` object. The
  [Place](https://developers.google.com/maps/documentation/places/android-sdk/legacy/reference/com/google/android/libraries/places/api/model/Place) class
  contains the new `getReviews()` method to support this field. Call
  `getReviews()` to return up to five reviews for a place.

- [Place Photos (New)](https://developers.google.com/maps/documentation/places/android-sdk/place-photos.md.txt)
  adds the
  [`AuthorAttributions`](https://developers.google.com/maps/documentation/places/android-sdk/legacy/reference/com/google/android/libraries/places/api/model/AuthorAttributions)
  to the `PhotoMetadata` class. `AuthorAttributions` contains a `List` of
  [`AuthorAttribution`](https://developers.google.com/maps/documentation/places/android-sdk/legacy/reference/com/google/android/libraries/places/api/model/AuthorAttribution)
  objects.

### New URI response added to Place Photos (New)

You can now use
[Place Photos (New)](https://developers.google.com/maps/documentation/places/android-sdk/place-photos.md.txt)
to return a URI to an image bitmap. Previously, you could only return the
image bitmap itself.

### Simplified pricing

Pricing is simplified with Places SDK for Android (New) so that you only
pay for the data you use. Simplified pricing is implemented using field lists,
also called *field masks*.

With Place Details (New) and
Text Search (New), you use field lists to control the list of
fields to return in the response. You are then only billed for the data
requested. Using a field list is a good design practice to ensure that you don't
request unnecessary data, which helps to avoid unnecessary processing time and
billing charges.

For more pricing information, see [Usage and
billing](https://developers.google.com/maps/documentation/places/android-sdk/usage-and-billing).

### Expanded place types

The new SDK includes new place types, which are returned as part of the
Place Details (New) and Text Search (New)
response. You can also use these new types, and the existing types, in a search
with Text Search (New). The new types are included in [Table
A](https://developers.google.com/maps/documentation/places/android-sdk/place-types#table-a).