Skip to main content
Google My Business logo

Overview

Add Google My Business to any ModuleX agent or workflow. Manage Google Business Profile posts, reviews, and replies via the Google My Business API (mybusiness.googleapis.com/v4).
Categories: Marketing & Advertising · Marketing · Local Business · Reviews · Auth: OAuth2 · Actions: 6

Authentication

OAuth2 Authentication

Connect using Google OAuth (recommended)

Required Credentials

FieldDescriptionRequiredFormat
Client IDGoogle OAuth App Client IDYes123456789-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
Client SecretGoogle OAuth App Client SecretYesGOCSPX-xxxxxxxxxxxxxxxxxxxxxxxx

OAuth Configuration

  • Authorization URL: https://accounts.google.com/o/oauth2/v2/auth
  • Token URL: https://oauth2.googleapis.com/token
  • Scopes: https://www.googleapis.com/auth/business.manage

Available Actions

Parameters

account
string
required
Account name/ID for the Google Business Profile account
location
string
required
Location name/ID whose local posts will be created
topic_type
string
required
Topic type of the local post: STANDARD, EVENT, OFFER, or ALERT
language_code
string
Language of the local post (e.g. en-US)
summary
string
Description/body of the local post
call_to_action
object
Action performed when user clicks through the post. Object with actionType and url fields
event
object
Event information. Required for topic types EVENT and OFFER. Object with title, schedule (startDate, startTime, endDate, endTime)
media
array
Media associated with the post. Array of objects with sourceUrl (publicly accessible URL) fields
media_format
string
Format of the media items: PHOTO or VIDEO
alert_type
string
Type of alert for ALERT topic type: ALERT_TYPE_UNSPECIFIED or COVID_19
offer
object
Additional data for offer posts (only for OFFER topic type). Object with couponCode, redeemOnlineUrl, termsConditions

Response

{
  "$defs": {
    "LocalPost": {
      "additionalProperties": false,
      "description": "A Google My Business local post.",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "summary": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "topic_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Topic Type"
        },
        "state": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "create_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Create Time"
        },
        "update_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Update Time"
        },
        "search_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Search Url"
        },
        "event": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Event"
        },
        "offer": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Offer"
        },
        "call_to_action": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Call To Action"
        }
      },
      "title": "LocalPost",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "post": {
      "anyOf": [
        {
          "$ref": "#/$defs/LocalPost"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "success"
  ],
  "title": "CreatePostOutput",
  "type": "object"
}

Parameters

account
string
required
Account name/ID for the Google Business Profile account
location
string
required
Location name/ID of the review
review
string
required
Review name/ID to reply to
comment
string
required
Body of the reply as plain text (max 4096 bytes)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Comment"
    },
    "update_time": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Update Time"
    }
  },
  "required": [
    "success"
  ],
  "title": "CreateUpdateReplyToReviewOutput",
  "type": "object"
}

Parameters

account
string
required
Account name/ID for the Google Business Profile account
location_names
array
required
List of location name/ID strings to get reviews from
page_size
integer
Number of reviews to return per location (max 50) (Default: 50)
order_by
string
How to order reviews: ‘createTime desc’, ‘createTime asc’, ‘updateTime desc’, or ‘updateTime asc’
ignore_rating_only_reviews
boolean
If true, only return reviews that have textual content (Default: false)

Response

{
  "$defs": {
    "LocationReview": {
      "additionalProperties": false,
      "description": "A review associated with a location in a batch response.",
      "properties": {
        "location_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location Name"
        },
        "reviews": {
          "items": {
            "$ref": "#/$defs/Review"
          },
          "title": "Reviews",
          "type": "array"
        }
      },
      "title": "LocationReview",
      "type": "object"
    },
    "Review": {
      "additionalProperties": false,
      "description": "A Google My Business review.",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "review_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Review Id"
        },
        "reviewer_display_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reviewer Display Name"
        },
        "star_rating": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Star Rating"
        },
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Comment"
        },
        "create_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Create Time"
        },
        "update_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Update Time"
        },
        "review_reply": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReviewReply"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "Review",
      "type": "object"
    },
    "ReviewReply": {
      "additionalProperties": false,
      "description": "A reply to a review.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Comment"
        },
        "update_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Update Time"
        }
      },
      "title": "ReviewReply",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "location_reviews": {
      "items": {
        "$ref": "#/$defs/LocationReview"
      },
      "title": "Location Reviews",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetReviewsMultipleLocationsOutput",
  "type": "object"
}

Parameters

account
string
required
Account name/ID for the Google Business Profile account
location
string
required
Location name/ID of the review
review
string
required
Review name/ID to retrieve

Response

{
  "$defs": {
    "Review": {
      "additionalProperties": false,
      "description": "A Google My Business review.",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "review_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Review Id"
        },
        "reviewer_display_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reviewer Display Name"
        },
        "star_rating": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Star Rating"
        },
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Comment"
        },
        "create_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Create Time"
        },
        "update_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Update Time"
        },
        "review_reply": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReviewReply"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "Review",
      "type": "object"
    },
    "ReviewReply": {
      "additionalProperties": false,
      "description": "A reply to a review.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Comment"
        },
        "update_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Update Time"
        }
      },
      "title": "ReviewReply",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "review": {
      "anyOf": [
        {
          "$ref": "#/$defs/Review"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "success"
  ],
  "title": "GetSpecificReviewOutput",
  "type": "object"
}

Parameters

account
string
required
Account name/ID for the Google Business Profile account
location
string
required
Location name/ID whose reviews will be listed

Response

{
  "$defs": {
    "Review": {
      "additionalProperties": false,
      "description": "A Google My Business review.",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "review_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Review Id"
        },
        "reviewer_display_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reviewer Display Name"
        },
        "star_rating": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Star Rating"
        },
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Comment"
        },
        "create_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Create Time"
        },
        "update_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Update Time"
        },
        "review_reply": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReviewReply"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "title": "Review",
      "type": "object"
    },
    "ReviewReply": {
      "additionalProperties": false,
      "description": "A reply to a review.",
      "properties": {
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Comment"
        },
        "update_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Update Time"
        }
      },
      "title": "ReviewReply",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "reviews": {
      "items": {
        "$ref": "#/$defs/Review"
      },
      "title": "Reviews",
      "type": "array"
    },
    "next_page_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Next Page Token"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListAllReviewsOutput",
  "type": "object"
}

Parameters

account
string
required
Account name/ID for the Google Business Profile account
location
string
required
Location name/ID whose local posts will be listed
max_results
integer
Max number of posts to retrieve (each request retrieves up to 100, maximum 1000) (Default: 100)

Response

{
  "$defs": {
    "LocalPost": {
      "additionalProperties": false,
      "description": "A Google My Business local post.",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "summary": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "topic_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Topic Type"
        },
        "state": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "create_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Create Time"
        },
        "update_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Update Time"
        },
        "search_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Search Url"
        },
        "event": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Event"
        },
        "offer": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Offer"
        },
        "call_to_action": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Call To Action"
        }
      },
      "title": "LocalPost",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "posts": {
      "items": {
        "$ref": "#/$defs/LocalPost"
      },
      "title": "Posts",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "ListPostsOutput",
  "type": "object"
}

Limits & Quotas

  • Google My Business API is subject to Google Cloud project quotas (typically 60 requests/minute per project by default).
  • Some endpoints may return 429 status if quota is exceeded.
  • Error model: non-2xx responses and timeouts are caught and returned as success=False + error rather than raising.

Ahrefs

Google Ad Manager

Google Search Console