Google Business
Local SEO posts, events, offers, and updates for your business profile.
Google Business Profile lets you share updates across Google Search and Maps — a valuable tool for local business visibility.
Core Features
Location, Profile, and Maps Data
Beyond posting, you can manage business profile information — hours, attributes,
services, food menus, action links, and media — through
/api/v1/misc/google-business:
- Location & profile (GET/PATCH location fields, with read field selection)
- Hours (regular, special, more hours)
- Attributes
- Service list
- Food menus
- Place action links
- Profile media
Reviews operate separately, via their own async import/reply flow.
Feature Availability by Category and Location
Capabilities vary based on category, country/region, and location eligibility:
- Attributes differ by category and region; retrieve available definitions before updating.
- Service list is available only for eligible categories/locations.
- Food menus are primarily for restaurant-like categories and can be disabled per location.
- Place action links and permitted
placeActionTypevalues vary by profile and category. - Profile media categories and moderation behavior depend on profile type.
Recommended approach: GET/list first, then send PATCH/POST with values confirmed by Google for that exact location.
Supported Content Types
- Standard Posts: text updates with an optional image.
- Events: time-bound events with a title and date range.
- Offers: promotional offers with coupon codes and terms.
- Alerts: special alerts (currently
COVID_19only). - Reviews & Replies: async review import, then owner-reply management.
Quirks & Gotchas
Location Selection Required
After connecting your Google account, you must select a business location — similar to choosing a Facebook Page or LinkedIn Company Page.
Post Types via topicType
STANDARD: regular updates (default).EVENT: time-bound events with title and date range.OFFER: promotional offers with coupon codes and terms.ALERT: special alerts (COVID_19only).
Call-to-Action Options
BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, CALL. Most types require a
callToActionUrl.
Media Limits
| Constraint | Value |
|---|---|
| Files | 0–1 image only (no video) |
| Image max size | 5 MB |
| Image min resolution | 250×250 |
| Text | Max 1,500 characters |
Text & Field Limits
| Field | Limit |
|---|---|
text | Max 1,500 characters |
eventTitle | Max 58 characters |
offerCouponCode | Max 58 characters |
offerTermsConditions | Max 1,500 characters |
Post Options
Standard Post Fields
| Field | Type | Description |
|---|---|---|
text | string | Post content. Max 1,500 characters. |
uploadIds | string[] | Media attachments (images only). |
topicType | enum | Post type: STANDARD, EVENT, OFFER, ALERT. Default: STANDARD. |
languageCode | string | Language code (e.g. en, en-US). Default: en. |
callToActionType | enum | CTA button: BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, CALL. |
callToActionUrl | string | URL for the CTA button. |
alertType | enum | Alert type for ALERT posts. Currently only COVID_19. |
Event-Specific Fields
| Field | Type | Description |
|---|---|---|
eventTitle | string | Event title. Max 58 characters. |
eventStartDate | date | Event start date. |
eventEndDate | date | Event end date. |
Offer-Specific Fields
| Field | Type | Description |
|---|---|---|
offerCouponCode | string | Coupon code. Max 58 characters. |
offerRedeemOnlineUrl | string | URL to redeem the offer online. |
offerTermsConditions | string | Terms and conditions. Max 1,500 characters. |
await bundle.post.create({
teamId: "team_123",
title: "Holiday hours",
status: "SCHEDULED",
postDate: "2026-06-01T15:00:00.000Z",
socialAccountTypes: ["GOOGLE_BUSINESS"],
data: {
GOOGLE_BUSINESS: {
text: "We're open for the holidays! Visit us today.",
callToActionType: "LEARN_MORE",
callToActionUrl: "https://example.com/holiday-hours"
}
}
});Analytics
Profile Analytics (rolling 30-day window)
| Metric | Description | Note |
|---|---|---|
impressions | Total Business Profile impressions | Sum of desktop/mobile Search and Maps impressions |
impressionsUnique | — | Returns 0 (not provided by Google Business Profile API) |
views | — | Returns 0 in the standard response |
viewsUnique | — | Returns 0 (not provided by Google Business Profile API) |
likes | — | Returns 0 (not applicable) |
comments | — | Returns 0 (not applicable) |
postCount | — | Returns 0 |
followers | — | Returns 0 (not applicable) |
following | — | Returns 0 (not applicable) |
Raw analytics also include websiteClicks, callClicks, directionRequests,
and conversations.
Post Analytics
Google Business post analytics are not currently returned through our API. Use the profile/location raw analytics for performance data.