The Google My Business API provides programmatic access to manage Business Profile resources—including accounts, locations, categories, attributes, reviews and replies, local posts, insights, verification flows, admin invitations, and related chain or insurance data.
Deletes the response to the specified review. This operation is only valid if the specified location is verified.
name(path, required) — The name of the review reply to delete.
PUT
/v4/{name}/reply
Updates the reply to the specified review. A reply is created if one does not exist. This operation is only valid if the specified location is verified.
name(path, required) — The name of the review to respond to.
POST
/v4/{name}:accept
Accepts the specified invitation.
name(path, required) — The name of the invitation that is being accepted.
POST
/v4/{name}:associate
Associates a location to a place ID. Any previous association is overwritten. This operation is only valid if the location is unverified. The association must be valid, that is, it appears in the list of `FindMatchingLocations`.
name(path, required) — The resource name of the location to associate.
POST
/v4/{name}:clearAssociation
Clears an association between a location and its place ID. This operation is only valid if the location is unverified.
name(path, required) — The resource name of the location to disassociate.
POST
/v4/{name}:complete
Completes a `PENDING` verification. It is only necessary for non `AUTO` verification methods. `AUTO` verification request is instantly `VERIFIED` upon creation.
name(path, required) — Resource name of the verification to complete.
POST
/v4/{name}:decline
Declines the specified invitation.
name(path, required) — The name of the account invitation that is being declined.
GET
/v4/accounts
Lists all of the accounts for the authenticated user. This includes all accounts that the user owns, as well as any accounts for which the user has management rights.
filter(query) — A filter constraining the accounts to return. The response includes only entries that match the filter. If `filter` is empty, then no constraints are applied and all accounts (paginated) are retrieved for the requested account. For example, a request with the filter `type=USER_GROUP` will only return user groups.
name(query) — The resource name of the account for which the list of directly accessible accounts is to be retrieved. This only makes sense for Organizations and User Groups. If empty, will return `ListAccounts` for the authenticated user.
pageSize(query, limit) — How many accounts to fetch per page. Default is 20, minimum is 2, and maximum page size is 20.
pageToken(query) — If specified, the next page of accounts is retrieved. The `pageToken` is returned when a call to `accounts.list` returns more results than can fit into the requested page size.
POST
/v4/accounts
Creates an account with the specified name and type under the given parent. - Personal accounts and Organizations cannot be created. - User Groups cannot be created with a Personal account as primary owner. - Location Groups cannot be created with a primary owner of a Personal account if the Personal account is in an Organization. - Location Groups cannot own Location Groups.
primaryOwner(query) — The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.
POST
/v4/{name}:fetchVerificationOptions
Reports all eligible verification options for a location in a specific language.
name(path, required) — Resource name of the location to verify.
POST
/v4/{name}:findMatches
Finds all of the possible locations that are a match to the specified location. This operation is only valid if the location is unverified.
name(path, required) — The resource name of the location to find matches for.
GET
/v4/attributes
Returns the list of available attributes that would be available for a location with the given primary category and country.
categoryId(query) — The primary category stable ID to find available attributes.
country(query) — The ISO 3166-1 alpha-2 country code to find available attributes.
languageCode(query) — The BCP 47 code of language to get attribute display names in. If this language is not available, they will be provided in English.
name(query) — Resource name of the location to look up available attributes.
pageSize(query, limit) — How many attributes to include per page. Default is 200, minimum is 1.
pageToken(query) — If specified, the next page of attribute metadata is retrieved. The `pageToken` is returned when a call to `attributes.list` returns more results than can fit into the requested page size.
GET
/v4/categories
Returns a list of business categories. Search will match the category name but not the category ID. *Note:* Search only matches the front of a category name (that is, 'food' may return 'Food Court' but not 'Fast Food Restaurant').
languageCode(query) — The BCP 47 code of language. If the language is not available, it will default to English.
pageSize(query, limit) — How many categories to fetch per page. Default is 100, minimum is 1, and maximum page size is 100.
pageToken(query) — If specified, the next page of categories will be fetched.
regionCode(query) — The ISO 3166-1 alpha-2 country code.
searchTerm(query) — Optional filter string from user.
view(query) — Optional. Specifies which parts to the Category resource should be returned in the response.
GET
/v4/categories:batchGet
Returns a list of business categories for the provided language and GConcept ids.
categoryIds(query) — Required. At least one name must be set. The GConcept ids the localized category names should be returned for.
languageCode(query) — Required. The BCP 47 code of language that the category names should be returned in.
regionCode(query) — Optional. The ISO 3166-1 alpha-2 country code used to infer non-standard language.
view(query) — Required. Specifies which parts to the Category resource should be returned in the response.
GET
/v4/chains:search
Searches the chain based on chain name.
chainDisplayName(query) — Search for a chain by its name. Exact/partial/fuzzy/related queries are supported. Examples: "walmart", "wal-mart", "walmmmart", "沃尔玛"
resultCount(query) — The maximum number of matched chains to return from this query. The default is 10. The maximum possible value is 500.
POST
/v4/googleLocations:search
Search all of the possible locations that are a match to the specified request.
DELETE
/v4/{name}
Deletes a specific question written by the current user.
name(path, required) — The name of the question to delete.
GET
/v4/{name}
Gets the specified chain. Returns `NOT_FOUND` if the chain does not exist.
name(path, required) — The chain's resource name, in the format `chains/{chain_place_id}`.
PATCH
/v4/{name}
Updates a specific question written by the current user.
name(path, required) — The name of the question to update.
updateMask(query) — The specific fields to update. If no mask is specified, then this is treated as a full update and all editable fields are set to the values passed in.
PUT
/v4/{name}
Sets the pubsub notification settings for the account informing Business Profile which topic to send pubsub notifications for: - New reviews for locations administered by the account. - Updated reviews for locations administered by the account. - New `GoogleUpdates` for locations administered by the account. An account will only have one notification settings resource, and only one pubsub topic can be set.
name(path, required) — The notification settings resource name.
POST
/v4/{name}/localPosts:reportInsights
Returns insights for a set of local posts associated with a single listing. Which metrics and how they are reported are options specified in the request proto. *Note:* Insight reports are limited to 100 `local_post_names` per call.
name(path, required) — Required. The name of the location for which to fetch insights.
POST
/v4/{name}/locations:batchGet
Gets all of the specified locations in the given account.
name(path, required) — The name of the account from which to fetch locations.
POST
/v4/{name}/locations:batchGetReviews
Returns the paginated list of reviews for all specified locations. This operation is only valid if the specified locations are verified. *Note:* Reviews are limited to a batch size of 200 `location_names` per call.
name(path, required) — The name of the account from which to retrieve a list of reviews across multiple locations.
POST
/v4/{name}/locations:reportInsights
Returns a report containing insights on one or more metrics by location. *Note:* Insight reports are limited to a batch size of 10 `location_names` per call.
name(path, required) — The account resource name.
POST
/v4/{name}:generateAccountNumber
Generates an account number for this account. The account number is not provisioned when an account is created. Use this request to create an account number when it is required.
name(path, required) — The name of the account to generate an account number for.
GET
/v4/{name}:getGoogleUpdated
Returns the Google updated Lodging of a specific location.
name(path, required) — Required. Google identifier for this location in the form: `accounts/{account_id}/locations/{location_id}/lodging`
readMask(query) — Optional. The specific fields to return. If no mask is specified, then it returns the full Lodging (same as "*"). Repeated field items cannot be individually specified.
GET
/v4/{name}:googleUpdated
Gets the Google-updated version of the specified location. Returns `NOT_FOUND` if the location does not exist.
name(path, required) — The name of the location to fetch.
GET
/v4/{name}:recommendGoogleLocations
List all the GoogleLocations that have been recommended to the specified Business Profile account. Recommendations are provided for personal accounts and location groups only, requests for all other account types will result in an error. The recommendations for location groups are based on the locations in that group. The recommendations for personal accounts are based on all of the locations that the user has access to on Business Profile (which includes locations they can access through location groups), and is a superset of all recommendations generated for the user.
name(path, required) — Name of the account resource to fetch recommended Google locations for.
pageSize(query, limit) — How many locations to fetch per page. Default is 25, minimum is 1, and maximum page size is 100.
pageToken(query) — If specified, the next page of locations is retrieved.
POST
/v4/{name}:report
Report a GoogleLocation.
name(path, required) — Resource name of a [GoogleLocation], in the format `googleLocations/{googleLocationId}`.
POST
/v4/{name}:transfer
Moves a location from an account that the user owns to another account that the same user administers. The user must be an owner of the account the location is currently associated with and must also be at least a manager of the destination account. Returns the Location with its new resource name.
name(path, required) — The name of the location to transfer.
POST
/v4/{name}:verify
Starts the verification process for a location.
name(path, required) — Resource name of the location to verify.
GET
/v4/{parent}/admins
Lists all of the admins for the specified location.
parent(path, required) — The name of the location to list admins of.
POST
/v4/{parent}/admins
Invites the specified user to become an administrator for the specified location. The invitee must accept the invitation in order to be granted access to the location. See AcceptInvitation to programmatically accept an invitation.
parent(path, required) — The resource name of the location this admin is created for.
GET
/v4/{parent}/answers
Returns the paginated list of answers for a specified question.
parent(path, required) — The name of the question to fetch answers for.
orderBy(query) — The order to return the answers. Valid options include 'update_time desc' and 'upvote_count desc', which will return the answers sorted descendingly by the requested field. The default sort order is 'update_time desc'.
pageSize(query, limit) — How many answers to fetch per page. The default and maximum `page_size` values are 10.
pageToken(query) — If specified, the next page of answers is retrieved.
DELETE
/v4/{parent}/answers:delete
Deletes the answer written by the current user to a question.
parent(path, required) — The name of the question to delete an answer for.
POST
/v4/{parent}/answers:upsert
Creates an answer or updates the existing answer written by the user for the specified question. A user can only create one answer per question.
parent(path, required) — The name of the question to write an answer for.
GET
/v4/{parent}/insuranceNetworks
Returns a list of all insurance networks supported by Google.
parent(path, required) — Required. The name of the location whose insurance networks will be listed. The name is in the form: accounts/{account_id}/locations/{location_id}
languageCode(query) — Optional. The BCP 47 code for the language. If a language code is not provided, it defaults to English. Right now only 'en' is supported.
pageSize(query, limit) — How many insurance networks to return per page. The default value is 5000. Maximum page size is 10000.
pageToken(query) — If specified, returns the next page of insurance networks.
GET
/v4/{parent}/invitations
Lists pending invitations for the specified account.
parent(path, required) — The name of the account from which the list of invitations is being retrieved.
targetType(query) — Specifies which target types should appear in the response.
GET
/v4/{parent}/localPosts
Returns a list of local posts associated with a location.
parent(path, required) — The name of the location whose local posts will be listed.
pageSize(query, limit) — How many local posts to return per page. Default of 20. The minimum is 1, and maximum page size is 100.
pageToken(query) — If specified, returns the next page of local posts.
POST
/v4/{parent}/localPosts
Creates a new local post associated with the specified location, and returns it.
parent(path, required) — The name of the location in which to create this local post.
GET
/v4/{parent}/locations
Lists the locations for the specified account.
parent(path, required) — The name of the account to fetch locations from. If the Account is of AccountType PERSONAL, only Locations that are directly owned by the Account are returned, otherwise it will return all accessible locations from the Account, either directly or indirectly.
filter(query) — A filter constraining the locations to return. The response includes only entries that match the filter. If `filter` is empty, then constraints are applied and all locations (paginated) are retrieved for the requested account. For more information about valid fields and example usage, see [Work with Location Data Guide](https://developers.google.com/my-business/content/location-data#filter_results_when_you_list_locations).
languageCode(query) — The BCP 47 code of language to get display location properties in. If this language is not available, they will be provided in the language of the location. If neither is available, they will be provided in English. Deprecated. After August 15th, 2020, this field will no longer be applied. Instead, the language of the location will always be used.
orderBy(query) — Sorting order for the request. Multiple fields should be comma-separated, following SQL syntax. The default sorting order is ascending. To specify descending order, a suffix " desc" should be added. Valid fields to order_by are location_name and store_code. For example: "location_name, store_code desc" or "location_name" or "store_code desc"
pageSize(query, limit) — How many locations to fetch per page. Default is 100, minimum is 1, and maximum page size is 100.
pageToken(query) — If specified, it fetches the next `page` of locations. The page token is returned by previous calls to `ListLocations` when there were more locations than could fit in the requested page size.
POST
/v4/{parent}/locations
Creates a new location owned by the specified account, and returns it.
parent(path, required) — The name of the account in which to create this location.
requestId(query) — A unique request ID for the server to detect duplicated requests. We recommend using UUIDs. Max length is 50 characters.
validateOnly(query) — If true, the request is validated without actually creating the location.
GET
/v4/{parent}/media
Returns a list of media items associated with a location.
parent(path, required) — The name of the location whose media items will be listed.
pageSize(query, limit) — How many media items to return per page. The default value is 100, which is also the maximum supported number of media items able to be added to a location with the Google My Business API. Maximum page size is 2500.
pageToken(query) — If specified, returns the next page of media items.
POST
/v4/{parent}/media
Creates a new media item for the location.
parent(path, required) — The resource name of the location where this media item will be created.
GET
/v4/{parent}/media/customers
Returns a list of media items associated with a location that have been contributed by customers.
parent(path, required) — The name of the location whose customer media items will be listed.
pageSize(query, limit) — How many media items to return per page. The default value is 100, the maximum supported page size is 200.
pageToken(query) — If specified, returns the next page of media items.
POST
/v4/{parent}/media:startUpload
Generates a `MediaItemDataRef` for media item uploading.
parent(path, required) — The resource name of the location this media item is to be added to.
GET
/v4/{parent}/questions
Returns the paginated list of questions and some of its answers for a specified location.
parent(path, required) — The name of the location to fetch questions for.
answersPerQuestion(query) — How many answers to fetch per question. The default and maximum `answers_per_question` values are 10.
filter(query) — A filter constraining the questions to return. The only filter currently supported is "ignore_answered=true"
orderBy(query) — The order to return the questions. Valid options include 'update_time desc' and 'upvote_count desc', which will return the questions sorted descendingly by the requested field. The default sort order is 'update_time desc'.
pageSize(query, limit) — How many questions to fetch per page. The default and maximum `page_size` values are 10.
pageToken(query) — If specified, the next page of questions is retrieved.
POST
/v4/{parent}/questions
Adds a question for the specified location.
parent(path, required) — The name of the location to write a question for.
GET
/v4/{parent}/reviews
Returns the paginated list of reviews for the specified location. This operation is only valid if the specified location is verified.
parent(path, required) — The name of the location to fetch reviews for.
orderBy(query) — Specifies the field to sort reviews by. If unspecified, the order of reviews returned will default to `update_time desc`. Valid orders to sort by are `rating`, `rating desc` and `update_time desc`.
pageSize(query, limit) — How many reviews to fetch per page. The maximum `page_size` is 50.
pageToken(query) — If specified, it fetches the next page of reviews.
GET
/v4/{parent}/verifications
List verifications of a location, ordered by create time.
parent(path, required) — Resource name of the location that verification requests belong to.
pageSize(query, limit) — How many verification to include per page. If not set, return all.
pageToken(query) — If specified, returns the next page of verifications.