Maton

Google Business Profile

Access the Google Business Profile APIs with managed OAuth authentication. Manage business accounts and locations, read and reply to reviews, publish local posts and photos, and pull performance metrics.

Reference

Google splits Business Profile across several APIs. Most resources are v1; reviews, media, and local posts are v4, and their v4 paths need both the account and the location.

List Accounts

GET /google-business-profile/v1/accounts

The name field (accounts/{accountId}) is the account reference used by the other endpoints.

List Locations

GET /google-business-profile/v1/accounts/{accountId}/locations?readMask=name,title

Get Location

GET /google-business-profile/v1/locations/{locationId}?readMask=name,title,storefrontAddress,phoneNumbers,websiteUri,categories,regularHours,metadata

Update Location

PATCH /google-business-profile/v1/locations/{locationId}?updateMask=profile.description
Content-Type: application/json

{
  "profile": {
    "description": "New business description"
  }
}

Only the fields named in updateMask are changed. A field named in updateMask but missing from the body is cleared.

Search Google Locations

Searches every location Google knows about, not only the ones the account manages. Use it to check whether a listing already exists before creating one.

POST /google-business-profile/v1/googleLocations:search
Content-Type: application/json

{
  "query": "starbucks seattle",
  "pageSize": 3
}

List Categories

GET /google-business-profile/v1/categories?regionCode=US&languageCode=en&view=BASIC&pageSize=100

Daily Metrics

GET /google-business-profile/v1/locations/{locationId}:fetchMultiDailyMetricsTimeSeries?dailyMetrics=WEBSITE_CLICKS&dailyMetrics=CALL_CLICKS&dailyRange.start_date.year=2026&dailyRange.start_date.month=7&dailyRange.start_date.day=1&dailyRange.end_date.year=2026&dailyRange.end_date.month=7&dailyRange.end_date.day=28

Search Keywords

GET /google-business-profile/v1/locations/{locationId}/searchkeywords/impressions/monthly?monthlyRange.start_month.year=2026&monthlyRange.start_month.month=6&monthlyRange.end_month.year=2026&monthlyRange.end_month.month=7

List Reviews

GET /google-business-profile/v4/accounts/{accountId}/locations/{locationId}/reviews?pageSize=50&orderBy=updateTime%20desc

Reply to Review

PUT /google-business-profile/v4/accounts/{accountId}/locations/{locationId}/reviews/{reviewId}/reply
Content-Type: application/json

{
  "comment": "Thank you for the feedback."
}

List Local Posts

GET /google-business-profile/v4/accounts/{accountId}/locations/{locationId}/localPosts

Create Local Post

POST /google-business-profile/v4/accounts/{accountId}/locations/{locationId}/localPosts
Content-Type: application/json

{
  "languageCode": "en-US",
  "summary": "Post text shown on the listing",
  "topicType": "STANDARD",
  "callToAction": {
    "actionType": "LEARN_MORE",
    "url": "https://example.com"
  }
}

List Media

GET /google-business-profile/v4/accounts/{accountId}/locations/{locationId}/media

List Verifications

GET /google-business-profile/v1/locations/{locationId}/verifications

Notes:

  • Start from GET /v1/accounts, then list the account's locations. Both IDs are needed for every v4 path.
  • readMask is required on location reads, and updateMask on location updates.
  • A wrong version or HTTP method returns Google's HTML 404 page instead of a JSON error. googleLocations:search is a POST; the performance methods are GET.
  • Several list endpoints return {} instead of an empty array when there is nothing to list.
  • Location edits, review replies, local posts, and photos are public as soon as they are written.

Daily Quota

Maton enforces a daily quota of 5,000 units per account, weighted by request cost:

RequestCost
Create a location (POST /v1/accounts/{accountId}/locations)500
Search Google locations (POST /v1/googleLocations:search)250
Every other request1

The window is 24 hours and starts with your first request; responses report what is left in the RateLimit header. See Daily quotas for details. To increase this limit, reach out to support@maton.ai.

Resources

On this page