Use field masks, also called field lists, in your requests to specify the list
of fields to return in the response. You are then billed at the highest SKU
applicable to your request. That means if you select fields in both the (Basic)
SKU and the (Advanced) SKU, you are billed based on the (Advanced) SKU.
Using a field mask is a good design practice to ensure that you don't request
unnecessary data, which helps to avoid unnecessary processing time and billing
charges.
About Autocomplete (New) sessions
An Autocomplete (New) session includes one or more Autocomplete (New) requests, and a
Place Details (New) request or Address Validation request. The same session token is passed to the
Autocomplete (New) request and to the subsequent Place Details (New) request or Address Validation
request.
A session starts with the first Autocomplete (New) request. A Place Details (New) request or
Address Validation request is then made when the user has selected one of the Autocomplete (New)
suggestions. If a session is abandoned, meaning no Place Details (New) request or
Address Validation request is made, Autocomplete (New) requests are charged as if no session token
was provided.
After a user has selected a place (meaning a Place Details (New) request or Address Validation
request is made), you must start a new session using a new session token.
A session token is good for one session and cannot be used for more than one
session. If you reuse a session token, the session is considered invalid and the requests are charged as if no session token were provided.
SKU: Autocomplete Requests
This SKU bills for requests to the Autocomplete API that don't use a session. For information on using session to limit the number of requests that are billed during a single Autocomplete session, see Session tokens or SKU: Autocomplete Session Usage.
This SKU is triggered under the following conditions:
Your request does not include a session token.
Your request includes a session token, but you abandon the session.
Your request includes a session token, but you terminate the session under certain conditions. For information about Autocomplete Session Usage, see Session tokens or Autocomplete Session Usage.
This SKU is triggered when you send a request to the Autocomplete (New) API that includes a session token.
This SKU acts as a wrapper for the Autocomplete (New) requests SKU that provides a way for you to
limit the number of requests that are billed during a single Autocomplete session. For information
about Autocomplete Session Usage, see
Session tokens.
Note: If you don't use sessions with Autocomplete (New), you are billed per-request to Autocomplete using the
SKU: Autocomplete Requests.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
If you terminate an Autocomplete session with a Place Details call that
requests any field from the
SKU: Place Details (Basic, Advanced, or Preferred), then the call is billed at
SKU: Place Details (Preferred). For more information, see
SKU: Autocomplete Session Usage.
Field mask billing examples
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
If an Autocomplete session is terminated by a Place Details call that
requests any field from the
SKU: Place Details (Basic, Advanced, or Preferred), then the call is billed at
SKU: Place Details (Preferred). For more information, see
SKU: Autocomplete Session Usage.
Field mask billing examples
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
An Autocomplete session includes some Autocomplete requests (to retrieve suggestions on a
place as the user types), and at most one Places Details request (to retrieve details about
the place selected by the user). The same session token is passed to the Autocomplete and the
subsequent Place Detail request. A session starts with the first Autocomplete request (which
typically happens when the user starts typing). A Places Details call is made when the user
has selected one of the Autocomplete suggestions. If a user does not select a suggestion,
no Places Details call is made.
After a user has selected a place (that is, after a Places Details call is made), you must start a new session using a new session token.
Autocomplete sessions can be generated from the following APIs:
A session token is good for one user session and shouldn't be used for more than one user
session. If you reuse a session token, the session is considered invalid and the requests
are charged as if no session token was provided.
The Autocomplete requests and the Places Details requests using sessions are billed on
different SKUs.
Android: each request to fetchPlace() or findCurrentPlace()
iOS: each call to fetchPlaceFromPlaceID: or findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
Web service: each Places request depending on the fields specified in the request
Data SKUs are always charged in addition to the base SKU for the request triggering
them. For example, a Place Details request including Basic Data fields will be charged both under
the Basic Data SKU and the Place Details SKU.
SKU: Basic Data
This SKU is a Data SKU that bills for Basic Data fields in a Place Details or Find Place request. This SKU is charged in addition to the base SKU for the request that triggered it.
Web service: address_component adr_address business_status formatted_address geometry icon name permanently_closed photo place_id plus_code type url utc_offset vicinity wheelchair_accessible_entrance
Field mask billing examples
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
This SKU is a Data SKU that bills for Contact Data fields in a Place Details or Find Place request. This SKU is charged in addition to the base SKU for the request that triggered it.
Using the fields parameter in your Place Details or Find Place request for web services, or
an array of Place.Fields for Android or iOS, you can
limit the response to only those fields specified. Fields in the Contact
category result in an additional charge.
The Contact Data SKU is triggered
when any of these fields are requested:
Android:Place.Field.CURRENT_OPENING_HOURS,
Place.Field.INTERNATIONAL_PHONE_NUMBER,
Place.Field.OPENING_HOURS,
Place.Field.SECONDARY_OPENING_HOURS, or
Place.Field.WEBSITE_URI
iOS:GMSPlaceFieldOpeningHours,
GMSPlaceFieldPhoneNumber, or GMSPlaceFieldWebsite
Web service:formatted_phone_number,
international_phone_number, opening_hours,
current_opening_hours, secondary_opening_hours, or
website
Field mask billing examples
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
These are examples of how the request is billed based on the fields you select in the field mask.
If your request field mask only includes fields from this SKU: The request is billed at this SKU rate. For example, you can request one or more fields from this SKU, and are billed at this SKU rate.
If your request field mask includes fields from other SKUs: The request is billed at the highest SKU rate for the fields requested. For example, if you include fields from several SKUs, such as an Essentials SKU and an Enterprise SKU, then the request is billed at the Enterprise SKU rate.
This SKU bill for requests that don't include a session token
If you make a request from an invalid Autocomplete session (for example, a session that reuses a session token), you are also charged an Autocomplete – Per Request SKU.
Autocomplete requests from the
Maps JavaScript API
Place Autocomplete Widget may be charged an Autocomplete – Per Request SKU when you make requests
from an invalid Autocomplete session. This situation may happen when a user is typing or copy/pasting multiple different addresses
into the widget and doesn't always select an autocomplete prediction.
The Autocomplete (included with Place Details) – Per Session
SKU is charged for an Autocomplete session
that includes any of the following requests:
Android: a call to fetchPlace()
iOS: a call to fetchPlaceFromPlaceID:
Web service: a Place Details request
A Place Details request generates Data SKUs (Basic,
Contact, and/or Atmosphere)
– depending on the fields that you specify in the request.
If you don't ask for specific fields in the Place Details request, all Data SKUs are triggered (Essentials, Pro, Enterprise, and Enterprise + Atmosphere). Specify only the fields you need to avoid unnecessary charges.
If you request only a refresh of the Place Details ID (your request only specifies the place_id field)
during an autocomplete session, the session is billed as SKU: Autocomplete
without Place Details – Per Session.
Examples
If your application issues the following three calls in a single session:
JavaScript:
Maps JavaScript API Place SearchBox widget: getPlaces() method after the user selects a
place result (icon: pin), *not* a query (icon: magnifier), as illustrated
here:
In the results of the search box widget, after typing "pizza" in the search box,
notice that Pizza Autentico has a pin icon next to it, indicating that it is
a place result (and not a query).
With the web API and services, the Place Details SKU is charged whether you provide a
session token or not.
This SKU also triggers billing for Data SKUs: If you include data fields in your request, it can trigger additional billing for Data SKUs: Basic, Contact, and
Atmosphere.
Specify only the data fields that you want to avoid unnecessary costs. You are billed for this SKU as well as for the data you request.
Examples
Make one of these calls or requests:
Mobile: call fetchPlace() on Android or
fetchPlaceFromPlaceID: on iOS, and specify just the
ADDRESS field
Web API or service: make a Place Details request and specify just the
address field: getPlaceDetails(fields: formatted_address)
Mobile: call fetchPlace() on Android or
fetchPlaceFromPlaceID: on iOS, and specify all the fields
Web API or service: make a Place Details request and specify all the
fields (this type of request is the default if you don't specify any fields):
getPlaceDetails().
This SKU bills for requests to Find Current Place.
This SKU also triggers billing for Data SKUs: If you include data fields in your request, it can trigger additional billing for Data SKUs: Basic, Contact, and
Atmosphere.
Specify only the data fields that you want to avoid unnecessary costs. You are billed for this SKU as well as for the data you request.
This SKU also triggers billing for Data SKUs: If you include data fields in your request, it can trigger additional billing for Data SKUs: Basic, Contact, and
Atmosphere.
Specify only the data fields that you want to avoid unnecessary costs. You are billed for this SKU as well as for the data you request.
Examples
The following examples show what SKUs you are billed for when making a Find Current Place request and specifying fields from the Basic, Contact, and Atmosphere data SKUs. To see the SKUs on your bill, view your bill by SKU as described in Analyze the usage and cost per SKU.
You make a findCurrentPlace() (Android) or findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
(iOS) request and specify just the ADDRESS field. Your bill shows these SKUs:
Find Current Place
Basic Data
You make a findCurrentPlace() (Android) or findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
(iOS) request and specify the PHONE_NUMBER field. Your bill shows these SKUs:
Find Current Place
Contact Data
You make a findCurrentPlace() (Android) or findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
(iOS) request and specify fields from all three data-type buckets. Your bill shows these SKUs:
JavaScript: to
Places Library, Maps JavaScript API's Place Photos service
when requesting data from the URLs returned by PlacePhoto.getUrl() to load
image pixel data. It doesn't trigger billing until the URL is actually used to obtain
pixel data.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-01 UTC."],[[["The Places SDK for Android uses a pay-as-you-go pricing model based on SKUs for different features and data fields."],["Autocomplete sessions are billed differently depending on whether they include a Place Details request and session token usage."],["Data SKUs (Basic, Contact, Atmosphere) incur additional charges based on the fields requested, with Basic Data included in the base SKU cost."],["Field masks are crucial for cost optimization by specifying only the necessary data fields in requests."],["Daily quotas can be set to control API usage and prevent unexpected billing charges by managing requests for the Places SDK for Android."]]],[]]