Google Business Profile

How to Post to Google Business Profile via API

The request flow for publishing to a Google Business Profile location programmatically.

Quick answer

To post to Google Business Profile via API: register your product’s origin, create a hosted connection URL for platform google_business, have an owner or manager of the location authorize via Google OAuth, then send POST /api/posts with topic_type STANDARD under post.options.google_business and read back per-target status. Accounts with only viewer access fail connection validation.

Google Business Profile — the product formerly named Google My Business — lets a location publish short updates that appear directly in Search and Maps results. Publishing to it through PostGate follows the same connect-then-post pattern as every other platform, with one access requirement worth understanding before you start: the connecting account has to actually manage the location.

01

What do you need before you start?

A PostGate API key, a registered connect origin, and a Google account with owner or manager access to an open (not suspended or duplicate-flagged) Business Profile location. An account with only viewer access to the location cannot be used — it will authorize the OAuth grant but the profile connection will fail validation.
02

Step 1: register your product’s origin

Do this once per product before creating any hosted connection URL.
Allow an originPostGate API
curl -X POST https://postgate.studio/api/connect-origins \
  -H "Authorization: Bearer $POSTGATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "origin": "https://app.example.com", "label": "Production SaaS" }'
03

Step 2: connect the location via OAuth

Request a connection URL for platform: "google_business" and redirect the customer's browser to it. They authenticate with Google, pick the specific location if their account manages more than one, and grant access.
Create connection URLPostGate API
curl -X POST https://postgate.studio/api/profiles/connect \
  -H "Authorization: Bearer $POSTGATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "google_business",
    "profile_group_id": "grp_acme123",
    "return_url": "https://app.example.com/settings/social"
  }'
04

Step 3: read the redirect result

A successful grant lands back on your return_url with connected=1&connection_platform=google_business. If the account lacks manager access to the location, or the location isn't yet verified with Google, expect connection_error instead — this is the single most common first-connection failure for this platform.
05

Step 4: publish a local post

Provider-specific fields live under post.options.google_business. A basic update uses topic_type: "STANDARD".
Publish a standard updatePostGate API
curl -X POST "https://postgate.studio/api/posts?profile_group_id=grp_acme123" \
  -H "Authorization: Bearer $POSTGATE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: gbp-launch-001" \
  -d '{
    "post": {
      "body": "We just opened our second location.",
      "options": {
        "google_business": { "topic_type": "STANDARD", "language_code": "en" }
      }
    },
    "profiles": ["pro_google_business123"],
    "media": ["https://cdn.example.com/storefront.jpg"]
  }'
06

Step 5: confirm delivery

Read the post back for per-target status. Google Business Profile posts can take longer to appear live in Search and Maps than the API acknowledgment does — a published target status confirms Google accepted it, not that it's already visible everywhere.
Read post statusPostGate API
curl https://postgate.studio/api/posts/post_01JXYZ \
  -H "Authorization: Bearer $POSTGATE_API_KEY"

Frequently asked questions

What Google account access is needed to post to a Business Profile?

Owner or manager access to an open (not suspended or duplicate-flagged) Business Profile location. An account with only viewer access cannot be used — it will authorize the OAuth grant, but the profile connection will fail validation.

Why did my Google Business Profile connection fail?

The single most common first-connection failure for this platform is an account lacking manager access to the location, or a location that isn’t yet verified with Google. Both come back as connection_error on your return_url instead of connected=1&connection_platform=google_business.

Why isn’t my published post visible in Search and Maps yet?

Google Business Profile posts can take longer to appear live in Search and Maps than the API acknowledgment does. A published target status confirms Google accepted the post — not that it’s already visible everywhere.

What if the Google account manages more than one location?

During the OAuth flow the customer authenticates with Google and picks the specific location to connect if their account manages more than one — the connected profile then represents that location for publishing.

Build it with PostGate

One API for every social platform your customers care about — sandboxed, documented, and ready today.

Start building Read the docs