Google Business Performance API has a NEW API method that allows fetching multiple `DailyMetrics` in a single API request. Review the deprecation schedule and instructions to migrate over from v4 reportInsights API method to Google Business Profile Performance API.
Before you use the Google My Business API, you need to register your application
and obtain OAuth 2.0 credentials.
For details on how to get started with the Google My Business API, see Basic
setup.
Event Posts
Notify your customers about the next event at your business with a Post. Your
Post for an event includes start and end dates and times, which display
prominently on the Post.
Posts with a call to action include a button. The text on the call to action
button is determined by the actionType field of the Post. A link to a
user-provided URL is added to the button.
To create a Post with a call to action button, use the following:
The call to action Posts can have different action types that determine the type
of call to action Post.
The following are the supported call to action types:
Action types
BOOK
Creates a Post that prompts a user to book an appointment, table, or
something similar.
ORDER
Creates a Post that prompts a user to order something.
SHOP
Creates a Post that prompts a user to browse a product
catalog.
LEARN_MORE
Creates a Post that prompts a user to see additional details on a
website.
SIGN_UP
Creates a Post that prompts a user to register, sign up, or join
something.
CALL
Creates a Post that prompts a user to call a business.
Offer Posts
To create an Offer Post, use the following:
HTTP
$POST
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/localPosts
{"languageCode":"en-US",
"summary":"Buy one Google jetpack, get a second one free!!",
"offer":{"couponCode":“BOGO-JET-CODE”,
"redeemOnlineUrl":“https://www.google.com/redeem”,
"termsConditions":“Offeronlyvalidifyoucanproveyouareatimetraveler”
},
"media":[{"mediaFormat":"PHOTO",
"sourceUrl":"https://www.google.com/real-jetpack-photo.jpg",
}],
"topicType":"OFFER"}
Edit Posts
Once a post is created, you can edit it with a PATCH request.
To edit a Post, use the following:
HTTP
$PATCH
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/localPosts/{localPostId}?updateMask=summary
{"summary":"Order your Christmas turkeys now!!"}
Delete Posts
After a Post is created, you can delete it with a DELETE request.
[[["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-05-07 UTC."],[[["\u003cp\u003eThe Google My Business API allows you to create and manage posts for your business directly on Google Search and Maps, including Event, Call to Action, and Offer posts, to engage with your customers.\u003c/p\u003e\n"],["\u003cp\u003eBefore using the API, you must register your application and obtain OAuth 2.0 credentials, following the setup instructions provided in the documentation.\u003c/p\u003e\n"],["\u003cp\u003eYou can create posts with various features, like event schedules, call-to-action buttons with customizable actions (book, order, shop, etc.), and offer details like coupon codes and terms.\u003c/p\u003e\n"],["\u003cp\u003eAfter creating posts, the API enables you to edit their content or delete them entirely using dedicated HTTP methods and specifying the desired changes or target post ID.\u003c/p\u003e\n"],["\u003cp\u003eProduct posts cannot be created using the Google My Business API at this time.\u003c/p\u003e\n"]]],[],null,["\u003cbr /\u003e\n\nThe Google My Business API provides you with the ability to create Posts in\nGoogle Search within several categories, such as news, events, and offers.\n\nThis tutorial shows you how to do the following:\n\n- Create [Event Posts](#event_posts).\n- Create [Call to action Posts](#call_to_action_posts).\n- Create [Offer Posts](#offer_posts).\n- [Edit Posts](#edit_posts).\n- [Delete Posts](#delete_posts).\n\n| **Note:** Product Posts cannot be created via the Google My Business API at this time.\n\nBefore you begin\n\nBefore you use the Google My Business API, you need to register your application\nand obtain OAuth 2.0 credentials.\n\nFor details on how to get started with the Google My Business API, see [Basic\nsetup](/my-business/content/basic-setup).\n| **Note:** Small businesses and large chains are eligible to create Posts.\n\nEvent Posts\n\nNotify your customers about the next event at your business with a Post. Your\nPost for an event includes start and end dates and times, which display\nprominently on the Post.\n\nTo make a Post to an account associated with a user, use the\n[`accounts.locations.localPosts`](/my-business/reference/rest/v4/accounts.locations.localPosts#LocalPost) API.\n\nTo create a Post for an authenticated user, use the following:\nHTTP \n\n```bash\n$ POST\nhttps://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/localPosts\n{\n \"languageCode\": \"en-US\",\n \"summary\": \"Come in for our spooky Halloween event!\",\n \"event\": {\n \"title\": \"Halloween Spook-tacular!\",\n \"schedule\": {\n \"startDate\": {\n \"year\": 2017,\n \"month\": 10,\n \"day\": 31,\n },\n \"startTime\": {\n \"hours\": 9,\n \"minutes\": 0,\n \"seconds\": 0,\n \"nanos\": 0,\n },\n \"endDate\": {\n \"year\": 2017,\n \"month\": 10,\n \"day\": 31,\n },\n \"endTime\": {\n \"hours\": 17,\n \"minutes\": 0,\n \"seconds\": 0,\n \"nanos\": 0,\n },\n }\n },\n \"media\": [\n {\n \"mediaFormat\": \"PHOTO\",\n \"sourceUrl\": \"https://www.google.com/real-image.jpg\",\n }\n ],\n \"topicType\": \"EVENT\"\n}\n```\n\nCall to action Posts\n\nPosts with a call to action include a button. The text on the call to action\nbutton is determined by the `actionType` field of the Post. A link to a\nuser-provided URL is added to the button.\n\nTo create a Post with a call to action button, use the following:\nHTTP \n\n```bash\n$ POST\nhttps://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/localPosts\n{\n \"languageCode\": \"en-US\",\n \"summary\": \"Order your Thanksgiving turkeys now!!\",\n \"callToAction\": {\n \"actionType\": \"ORDER\",\n \"url\": \"http://google.com/order_turkeys_here\",\n },\n \"media\": [\n {\n \"mediaFormat\": \"PHOTO\",\n \"sourceUrl\": \"https://www.google.com/real-turkey-photo.jpg\",\n }\n ],\n \"topicType\": \"OFFER\"\n}\n```\n\nAction types\n\nThe call to action Posts can have different action types that determine the type\nof call to action Post.\n\nThe following are the supported call to action types:\n\n| Action types ||\n|--------------|-----------------------------------------------------------------------------------------|\n| `BOOK` | Creates a Post that prompts a user to book an appointment, table, or something similar. |\n| `ORDER` | Creates a Post that prompts a user to order something. |\n| `SHOP` | Creates a Post that prompts a user to browse a product catalog. |\n| `LEARN_MORE` | Creates a Post that prompts a user to see additional details on a website. |\n| `SIGN_UP` | Creates a Post that prompts a user to register, sign up, or join something. |\n| `CALL` | Creates a Post that prompts a user to call a business. |\n\nOffer Posts\n\nTo create an Offer Post, use the following:\nHTTP \n\n```bash\n$ POST\nhttps://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/localPosts\n{\n \"languageCode\": \"en-US\",\n \"summary\": \"Buy one Google jetpack, get a second one free!!\",\n \"offer\": {\n \"couponCode\": “BOGO-JET-CODE”,\n \"redeemOnlineUrl\": “https://www.google.com/redeem”,\n \"termsConditions\": “Offer only valid if you can prove you are a time traveler”\n },\n \"media\": [\n {\n \"mediaFormat\": \"PHOTO\",\n \"sourceUrl\": \"https://www.google.com/real-jetpack-photo.jpg\",\n }\n ],\n \"topicType\": \"OFFER\"\n}\n```\n\nEdit Posts\n\nOnce a post is created, you can edit it with a `PATCH` request.\n\nTo edit a Post, use the following:\nHTTP \n\n```bash\n$ PATCH\nhttps://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/localPosts/{localPostId}?updateMask=summary\n{\n \"summary\": \"Order your Christmas turkeys now!!\"\n}\n```\n\nDelete Posts\n\nAfter a Post is created, you can delete it with a `DELETE` request.\n\nTo delete a Post, use the following:\nHTTP \n\n```bash\n$ DELETE\nhttps://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/localPosts/{localPostId}\n```"]]