REST Resource: accounts.locations

Resource: Location

A location. See the help center article for a detailed description of these fields, or the category endpoint for a list of valid business categories.

JSON representation
{
  "name": string,
  "languageCode": string,
  "storeCode": string,
  "title": string,
  "phoneNumbers": {
    object (PhoneNumbers)
  },
  "categories": {
    object (Categories)
  },
  "storefrontAddress": {
    object (PostalAddress)
  },
  "websiteUri": string,
  "regularHours": {
    object (BusinessHours)
  },
  "specialHours": {
    object (SpecialHours)
  },
  "serviceArea": {
    object (ServiceAreaBusiness)
  },
  "labels": [
    string
  ],
  "adWordsLocationExtensions": {
    object (AdWordsLocationExtensions)
  },
  "latlng": {
    object (LatLng)
  },
  "openInfo": {
    object (OpenInfo)
  },
  "metadata": {
    object (Metadata)
  },
  "profile": {
    object (Profile)
  },
  "relationshipData": {
    object (RelationshipData)
  },
  "moreHours": [
    {
      object (MoreHours)
    }
  ],
  "serviceItems": [
    {
      object (ServiceItem)
    }
  ]
}
Fields
name

string

Identifier. Google identifier for this location in the form: locations/{locationId}.

languageCode

string

Immutable. The language of the location. Set during creation and not updateable.

storeCode

string

Optional. External identifier for this location, which must be unique within a given account. This is a means of associating the location with your own records.

title

string

Required. Location name should reflect your business's real-world name, as used consistently on your storefront, website, and stationery, and as known to customers. Any additional information, when relevant, can be included in other fields of the resource (for example, Address, Categories). Don't add unnecessary information to your name (for example, prefer "Google" over "Google Inc. - Mountain View Corporate Headquarters"). Don't include marketing taglines, store codes, special characters, hours or closed/open status, phone numbers, website URLs, service/product information, location/address or directions, or containment information (for example, "Chase ATM in Duane Reade").

phoneNumbers

object (PhoneNumbers)

Optional. The different phone numbers that customers can use to get in touch with the business.

categories

object (Categories)

Optional. The different categories that describe the business.

storefrontAddress

object (PostalAddress)

Optional. A precise, accurate address to describe your business location. PO boxes or mailboxes located at remote locations are not acceptable. At this time, you can specify a maximum of five addressLines values in the address. This field should only be set for businesses that have a storefront. This field should not be set for locations of type CUSTOMER_LOCATION_ONLY but if set, any value provided will be discarded.

websiteUri

string

Optional. A URL for this business. If possible, use a URL that represents this individual business location instead of a generic website/URL that represents all locations, or the brand.

regularHours

object (BusinessHours)

Optional. Operating hours for the business.

specialHours

object (SpecialHours)

Optional. Special hours for the business. This typically includes holiday hours, and other times outside of regular operating hours. These override regular business hours. This field cannot be set without regular hours.

serviceArea

object (ServiceAreaBusiness)

Optional. Service area businesses provide their service at the customer's location. If this business is a service area business, this field describes the area(s) serviced by the business.

labels[]

string

Optional. A collection of free-form strings to allow you to tag your business. These labels are NOT user facing; only you can see them. Must be between 1-255 characters per label.

adWordsLocationExtensions

object (AdWordsLocationExtensions)

Optional. Additional information that is surfaced in AdWords.

latlng

object (LatLng)

Optional. User-provided latitude and longitude. When creating a location, this field is ignored if the provided address geocodes successfully. This field is only returned on get requests if the user-provided latlng value was accepted during create, or the latlng value was updated through the Google Business Profile website. This field can only be updated by approved clients.

openInfo

object (OpenInfo)

Optional. A flag that indicates whether the location is currently open for business.

metadata

object (Metadata)

Output only. Additional non-user-editable information.

profile

object (Profile)

Optional. Describes your business in your own voice and shares with users the unique story of your business and offerings.

This field is required for all categories except lodging categories (e.g., hotels, motels, inns).

relationshipData

object (RelationshipData)

Optional. All locations and chain related to this one.

moreHours[]

object (MoreHours)

Optional. More hours for a business's different departments or specific customers.

serviceItems[]

object (ServiceItem)

Optional. List of services supported by merchants. A service can be haircut, install water heater, etc. Duplicated service items will be removed automatically.

PhoneNumbers

A collection of phone numbers for the business. During updates, both fields must be set. Clients may not update just the primary or additional phone numbers using the update mask. International phone format is preferred, such as "+1 415 555 0132", see more in (https://developers.google.com/style/phone-numbers#international-phone-numbers).

JSON representation
{
  "primaryPhone": string,
  "additionalPhones": [
    string
  ]
}
Fields
primaryPhone

string

Required. A phone number that connects to your individual business location as directly as possible. Use a local phone number instead of a central, call center helpline number whenever possible.

additionalPhones[]

string

Optional. Up to two phone numbers (mobile or landline, no fax) at which your business can be called, in addition to your primary phone number.

Categories

A collection of categories that describes the business. During updates, both fields must be set. Clients are prohibited from individually updating the primary or additional categories using the update mask.

JSON representation
{
  "primaryCategory": {
    object (Category)
  },
  "additionalCategories": [
    {
      object (Category)
    }
  ]
}
Fields
primaryCategory

object (Category)

Required. Category that best describes the core business this location engages in.

additionalCategories[]

object (Category)

Optional. Additional categories to describe your business. Categories help your customers find accurate, specific results for services they're interested in. To keep your business information accurate and live, make sure that you use as few categories as possible to describe your overall core business. Choose categories that are as specific as possible, but representative of your main business.

Category

A category describing what this business is (not what it does). For a list of valid category IDs, and the mappings to their human-readable names, see categories.list.

JSON representation
{
  "name": string,
  "displayName": string,
  "serviceTypes": [
    {
      object (ServiceType)
    }
  ],
  "moreHoursTypes": [
    {
      object (MoreHoursType)
    }
  ]
}
Fields
name

string

Required. A stable ID (provided by Google) for this category. The value must be specified when modifying the category (when creating or updating a location).

displayName

string

Output only. The human-readable name of the category. This is set when reading the location. When modifying the location, category_id must be set.

serviceTypes[]

object (ServiceType)

Output only. A list of all the service types that are available for this business category.

moreHoursTypes[]

object (MoreHoursType)

Output only. More hours types that are available for this business category.

ServiceType

A message describing a service type that the business offers.

JSON representation
{
  "serviceTypeId": string,
  "displayName": string
}
Fields
serviceTypeId

string

Output only. A stable ID (provided by Google) for this service type.

displayName

string

Output only. The human-readable display name for the service type.

MoreHoursType

More hours types that a business can offers, in addition to its regular hours.

JSON representation
{
  "hoursTypeId": string,
  "displayName": string,
  "localizedDisplayName": string
}
Fields
hoursTypeId

string

Output only. A stable ID provided by Google for this hours type.

displayName

string

Output only. The human-readable English display name for the hours type.

localizedDisplayName

string

Output only. The human-readable localized display name for the hours type.

BusinessHours

Represents the time periods that this location is open for business. Holds a collection of [TimePeriod][google.mybusiness.mybusinessinformation.v1.TimePeriod] instances.

JSON representation
{
  "periods": [
    {
      object (TimePeriod)
    }
  ]
}
Fields
periods[]

object (TimePeriod)

Required. A collection of times that this location is open for business. Each period represents a range of hours when the location is open during the week.

TimePeriod

Represents a span of time that the business is open, starting on the specified open day/time and closing on the specified close day/time. The closing time must occur after the opening time, for example later in the same day, or on a subsequent day.

JSON representation
{
  "openDay": enum (DayOfWeek),
  "openTime": {
    object (TimeOfDay)
  },
  "closeDay": enum (DayOfWeek),
  "closeTime": {
    object (TimeOfDay)
  }
}
Fields
openDay

enum (DayOfWeek)

Required. Indicates the day of the week this period starts on.

openTime

object (TimeOfDay)

Required. Valid values are 00:00-24:00, where 24:00 represents midnight at the end of the specified day field. Note: In Proto3 JSON mapping, default zero values (00:00) are omitted, producing {} for openTime.

closeDay

enum (DayOfWeek)

Required. Indicates the day of the week this period ends on.

closeTime

object (TimeOfDay)

Required. Valid values are 00:00-24:00, where 24:00 represents midnight at the end of the specified day field. Note: In Proto3 JSON mapping, default zero values (00:00) are omitted, producing {} for closeTime.

SpecialHours

Represents a set of time periods when a location's operational hours differ from its normal business hours.

JSON representation
{
  "specialHourPeriods": [
    {
      object (SpecialHourPeriod)
    }
  ]
}
Fields
specialHourPeriods[]

object (SpecialHourPeriod)

Required. A list of exceptions to the business's regular hours.

SpecialHourPeriod

Represents a single time period when a location's operational hours differ from its normal business hours. A special hour period must represent a range of less than 24 hours. The openTime and startDate must predate the closeTime and endDate. The closeTime and endDate can extend to 11:59 a.m. on the day after the specified startDate. For example, the following inputs are valid:

startDate=2015-11-23, openTime=08:00, closeTime=18:00
startDate=2015-11-23, endDate=2015-11-23, openTime=08:00,
closeTime=18:00 startDate=2015-11-23, endDate=2015-11-24,
openTime=13:00, closeTime=11:59

The following inputs are not valid:

startDate=2015-11-23, openTime=13:00, closeTime=11:59
startDate=2015-11-23, endDate=2015-11-24, openTime=13:00,
closeTime=12:00 startDate=2015-11-23, endDate=2015-11-25,
openTime=08:00, closeTime=18:00
JSON representation
{
  "startDate": {
    object (Date)
  },
  "openTime": {
    object (TimeOfDay)
  },
  "endDate": {
    object (Date)
  },
  "closeTime": {
    object (TimeOfDay)
  },
  "closed": boolean
}
Fields
startDate

object (Date)

Required. The calendar date this special hour period starts on.

openTime

object (TimeOfDay)

Optional. Valid values are 00:00-24:00 where 24:00 represents midnight at the end of the specified day field. Must be specified if closed is false.

endDate

object (Date)

Optional. The calendar date this special hour period ends on. If endDate field is not set, default to the date specified in startDate. If set, this field must be equal to or at most 1 day after startDate.

closeTime

object (TimeOfDay)

Optional. Valid values are 00:00-24:00, where 24:00 represents midnight at the end of the specified day field. Must be specified if closed is false.

closed

boolean

Optional. If true, endDate, openTime, and closeTime are ignored, and the date specified in startDate is treated as the location being closed for the entire day.

ServiceAreaBusiness

Service area businesses provide their service at the customer's location (for example, a locksmith or plumber).

JSON representation
{
  "businessType": enum (BusinessType),
  "places": {
    object (Places)
  },
  "regionCode": string
}
Fields
businessType

enum (BusinessType)

Required. Indicates the [type] [google.mybusiness.businessinfo.v1.ServiceAreaBusiness.BusinessType] of the service area business.

places

object (Places)

Optional. The area that this business serves defined through a set of places.

regionCode

string

Immutable. CLDR region code of the country/region that this service area business is based in. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: "CH" for Switzerland.

This field is required for CUSTOMER_LOCATION_ONLY businesses, and is ignored otherwise.

The region specified here can be different from regions for the areas that this business serves (e.g. service area businesses that provide services in regions other than the one that they are based in).

If this location requires verification after creation, the address provided for verification purposes must be located within this region, and the business owner or their authorized representative must be able to receive postal mail at the provided verification address.

BusinessType

Indicates whether this business only offers services onsite at a customer location (for example, a tow truck), or at both an address and onsite (for example, a pizza store with a dining area, that also delivers to customers).

Enums
BUSINESS_TYPE_UNSPECIFIED Output only. Not specified.
CUSTOMER_LOCATION_ONLY Offers service only in the surrounding area (not at the business address). If a business is being updated from a CUSTOMER_AND_BUSINESS_LOCATION to a CUSTOMER_LOCATION_ONLY, the location update must include field mask storefrontAddress and set the field to empty.
CUSTOMER_AND_BUSINESS_LOCATION Offers service at the business address and the surrounding area.

Places

Defines the union of areas represented by a set of places.

JSON representation
{
  "placeInfos": [
    {
      object (PlaceInfo)
    }
  ]
}
Fields
placeInfos[]

object (PlaceInfo)

Optional. The areas represented by place IDs. Limited to a maximum of 20 places.

PlaceInfo

Defines an area that's represented by a place ID.

JSON representation
{
  "placeName": string,
  "placeId": string
}
Fields
placeName

string

Required. The localized name of the place. For example, Scottsdale, AZ.

placeId

string

Required. The ID of the place. Must correspond to a region. (https://developers.google.com/places/web-service/supported_types#table3)

AdWordsLocationExtensions

Additional information that is surfaced in AdWords.

JSON representation
{
  "adPhone": string
}
Fields
adPhone

string

Required. An alternate phone number to display on AdWords location extensions instead of the location's primary phone number.

OpenInfo

Information related to the opening state of the business.

JSON representation
{
  "status": enum (OpenForBusiness),
  "canReopen": boolean,
  "openingDate": {
    object (Date)
  }
}
Fields
status

enum (OpenForBusiness)

Required. Indicates whether or not the Location is currently open for business. All locations are open by default, unless updated to be closed.

canReopen

boolean

Output only. Indicates whether this business is eligible for re-open.

openingDate

object (Date)

Optional. The date on which the location first opened. If the exact day is not known, month and year only can be provided. The date must be in the past or be no more than one year in the future.

OpenForBusiness

Indicates the status of a location.

Enums
OPEN_FOR_BUSINESS_UNSPECIFIED Not specified.
OPEN Indicates that the location is open.
CLOSED_PERMANENTLY Indicates that the location has been permanently closed.
CLOSED_TEMPORARILY Indicates that the location has been temporarily closed.

Metadata

Additional non-user-editable information about the location.

JSON representation
{
  "hasGoogleUpdated": boolean,
  "hasPendingEdits": boolean,
  "canDelete": boolean,
  "canOperateLocalPost": boolean,
  "canModifyServiceList": boolean,
  "canHaveFoodMenus": boolean,
  "canOperateHealthData": boolean,
  "canOperateLodgingData": boolean,
  "placeId": string,
  "duplicateLocation": string,
  "mapsUri": string,
  "newReviewUri": string,
  "canHaveBusinessCalls": boolean,
  "hasVoiceOfMerchant": boolean,
  "isParticularlyPersonalPlace": boolean
}
Fields
hasGoogleUpdated

boolean

Output only. Indicates whether the place ID associated with this location has updates that need to be updated or rejected by the client. If this boolean is set, you should call the getGoogleUpdated method to look up information that's needs to be verified.

hasPendingEdits

boolean

Output only. Indicates whether any of this Location's properties are in the edit pending state.

canDelete

boolean

Output only. Indicates whether the location can be deleted using the API.

canOperateLocalPost
(deprecated)

boolean

Output only. Deprecated: This field is no longer populated and will be removed in a future version.

canModifyServiceList

boolean

Output only. Indicates if the listing can modify the service list.

canHaveFoodMenus

boolean

Output only. Indicates if the listing is eligible for food menu.

canOperateHealthData

boolean

Output only. Indicates whether the location can operate on Health data.

canOperateLodgingData

boolean

Output only. Indicates whether the location can operate on Lodging data.

placeId

string

Output only. If this locationappears on Google Maps, this field is populated with the place ID for the location. This ID can be used in various Places APIs.

This field can be set during Create calls, but not for Update.

duplicateLocation

string

Output only. The location resource that this location duplicates.

mapsUri

string

Output only. A link to the location on Maps.

newReviewUri

string

Output only. A link to the page on Google Search where a customer can leave a review for the location.

canHaveBusinessCalls

boolean

Output only. Indicates if the listing is eligible for business calls.

hasVoiceOfMerchant

boolean

Output only. Indicates if the listing has Voice of Merchant. If this boolean is false, you should call the locations.getVoiceOfMerchantState API to get details as to why they do not have Voice of Merchant.

isParticularlyPersonalPlace

boolean

Output only. Indicates whether the location is classified as a particularly personal place. This means there are restrictions on Location History features. If you believe this was a mistake, see the help center article.

Profile

All information pertaining to the location's profile.

JSON representation
{
  "description": string
}
Fields
description

string

Required. Description of the location in your own voice, not editable by anyone else.

RelationshipData

Information of all parent and children locations related to this one.

JSON representation
{
  "parentLocation": {
    object (RelevantLocation)
  },
  "childrenLocations": [
    {
      object (RelevantLocation)
    }
  ],
  "parentChain": string
}
Fields
parentLocation

object (RelevantLocation)

Optional. The parent location that this location has relations with.

childrenLocations[]

object (RelevantLocation)

Optional. The list of children locations that this location has relations with.

parentChain

string

Optional. The resource name of the Chain that this location is member of. [How to find Chain ID] [Locations.SearchChains]

RelevantLocation

Information about another location that is related to current one. The relation can be any one of DEPARTMENT_OF or INDEPENDENT_ESTABLISHMENT_OF, and the location specified here can be on either side (parent/child) of the location.

JSON representation
{
  "placeId": string,
  "relationType": enum (RelationType)
}
Fields
placeId

string

Required. Specify the location that is on the other side of the relation by its placeID.

relationType

enum (RelationType)

Required. The type of the relationship.

RelationType

The type relations to be specified.

Enums
RELATION_TYPE_UNSPECIFIED Type unspecified.
DEPARTMENT_OF This represents a relation between 2 locations which share one physical area, same brand/upper management/organization, but with different key attributes like store hours or phone numbers. For example, Costco Pharmacy is a department in Costco Wholesale.
INDEPENDENT_ESTABLISHMENT_IN This represents the cases where 2 locations are co-located in the same physical location, but from different companies (e.g., Starbucks in a Safeway, shops in a mall).

MoreHours

The time periods during which a location is open for certain types of business.

JSON representation
{
  "hoursTypeId": string,
  "periods": [
    {
      object (TimePeriod)
    }
  ]
}
Fields
hoursTypeId

string

Required. Type of hours. Clients should call {#link businessCategories:BatchGet} to get supported hours types for categories of their locations.

periods[]

object (TimePeriod)

Required. A collection of times that this location is open. Each period represents a range of hours when the location is open during the week.

ServiceItem

A message that describes a single service item. It is used to describe the type of service that the merchant provides. For example, haircut can be a service.

JSON representation
{
  "price": {
    object (Money)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "structuredServiceItem": {
    object (StructuredServiceItem)
  },
  "freeFormServiceItem": {
    object (FreeFormServiceItem)
  }
  // End of mutually exclusive fields.
}
Fields
price

object (Money)

Optional. Represents the monetary price of the service item. We recommend that currencyCode and units should be set when including a price. This will be treated as a fixed price for the service item.

One of the following fields should always be set. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response:
structuredServiceItem

object (StructuredServiceItem)

Optional. This field will be set case of structured services data.

freeFormServiceItem

object (FreeFormServiceItem)

Optional. This field will be set case of free-form services data.

End of mutually exclusive fields.

StructuredServiceItem

Represents a structured service offered by the merchant. For eg: toilet_installation.

JSON representation
{
  "serviceTypeId": string,
  "description": string
}
Fields
serviceTypeId

string

Required. The serviceTypeId field is a Google provided unique ID that can be found in ServiceType. This information is provided by BatchGetCategories rpc service.

description

string

Optional. Description of structured service item. The character limit is 300.

FreeFormServiceItem

Represents a free-form service offered by the merchant. These are services that are not exposed as part of our structure service data. The merchant manually enters the names for such services using a geomerchant surface.

JSON representation
{
  "category": string,
  "label": {
    object (Label)
  }
}
Fields
category

string

Required. This field represents the category name (i.e. the category's stable ID). The category and serviceTypeId should match the possible combinations provided in the Category message.

label

object (Label)

Required. Language-tagged labels for the item. We recommend that item names be 140 characters or less, and descriptions 250 characters or less. This field should only be set if the input is a custom service item. Standardized service types should be updated using serviceTypeId.

Label

Label to be used when displaying the price list, section, or item.

JSON representation
{
  "displayName": string,
  "description": string,
  "languageCode": string
}
Fields
displayName

string

Required. Display name for the price list, section, or item.

description

string

Optional. Description of the price list, section, or item.

languageCode

string

Optional. The BCP-47 language code that these strings apply for. Only one set of labels may be set per language.

Methods

create

Creates a new Location that will be owned by the logged in user.

list

Lists the locations for the specified account.