<br />

> [!NOTE]
> This feature requires that you enable Places API (New), the next generation of the Places API. For more information, see [Enable APIs](https://developers.google.com/maps/documentation/places/ios-sdk/legacy/cloud-setup#enabling-apis).

<br />

Places SDK for iOS (Legacy) supports
[Place Autocomplete (Legacy)](https://developers.google.com/maps/documentation/places/ios-sdk/autocomplete).
If you are familiar with
Place Autocomplete (Legacy),
[Autocomplete (New)](https://developers.google.com/maps/documentation/places/ios-sdk/place-autocomplete.md.txt)
makes the following changes:

- Uses a new pricing model. For pricing information for all APIs, see
  [Usage and billing](https://developers.google.com/maps/documentation/places/ios-sdk/usage-and-billing.md.txt).

- To make a request, call the new
  [`GMSPlacesClient fetchAutocompleteSuggestionsFromRequest:`](https://developers.google.com/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSPlacesClient.md.txt#-fetchautocompletesuggestionsfromrequest:callback:)
  method.

- Pass to the request:

  - An instance of the new
    [`GMSAutocompleteRequest`](https://developers.google.com/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSAutocompleteRequest.md.txt)
    class that defines all request parameters, such as the query and
    session token.

  - A callback of type
    [`GMSAutocompleteSuggestionsCallback`](https://developers.google.com/maps/documentation/places/ios-sdk/reference/objc/Type-Definitions.md.txt#/c:GMSPlacesClient.h@T@GMSAutocompleteSuggestionsCallback)
    to handle the response.

- The
  [`GMSAutocompleteFilter`](https://developers.google.com/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSAutocompleteFilter.md.txt)
  class now lets you:

  - Set the region code used to determine formatting of the results.
  - Set the prediction offset, a zero-based Unicode character offset of the query.
- The response is defined by the new
  [`GMSAutocompleteSuggestion`](https://developers.google.com/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSAutocompleteSuggestion.md.txt)
  class. This class contains an array of instances of the new type
  [`GMSAutocompletePlaceSuggestion`](https://developers.google.com/maps/documentation/places/ios-sdk/reference/objc/Classes/GMSAutocompletePlaceSuggestion.md.txt)
  representing the suggestions.

- The session now concludes with a call to either
  [Place Details (New)](https://developers.google.com/maps/documentation/places/ios-sdk/details-place.md.txt) or
  [Address Validation](https://developers.google.com/maps/documentation/address-validation/overview.md.txt). For
  more information, see
  [Autocomplete (New) and session pricing](https://developers.google.com/maps/documentation/places/ios-sdk/place-session-pricing).

## Example request

With Autocomplete (New), you make a request and
pass all parameters in the `GMSAutocompleteRequest` instance:

### Swift

```swift
let token = GMSAutocompleteSessionToken()

let northEastBounds = CLLocationCoordinate2DMake(37.38816277477739, -122.08813770258874)
let southWestBounds = CLLocationCoordinate2DMake(37.39580487866437, -122.07702325966572)

let filter = GMSAutocompleteFilter()
filter.types = [kGMSPlaceTypeRestaurant]
filter.locationBias = GMSPlaceRectangularLocationOption(northEastBounds, southWestBounds)

let request = GMSAutocompleteRequest(query:"Sicilian piz")
request.filter = filter
request.sessionToken = token
GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { results, error in
   // Handle response
})
```

### Objective-C

```objective-c
  CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.38816277477739, -122.08813770258874);
  CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.39580487866437, -122.07702325966572);

  GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
  filter.types = @[ kGMSPlaceTypeRestaurant ];
  filter.locationBias = GMSPlaceRectangularLocationOption(northEast, southWest);
  GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
  request.sessionToken = token;
  request.filter = filter;

  [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
    // Handle response
    for (GMSAutocompleteSuggestion *suggestion in results) {
      if (suggestion.placeSuggestion) {
        // Show place suggestion data.
      }
    }
  }];
```