Google Business Profile API · post · schedule · analyze

The Google Business Profile API built for developers

Publish posts, events and offers to Google Business Profile with one API call — no location-ID plumbing, no structured-payload assembly, no token expiry. We handle the Google plumbing so you ship in hours, not weeks.

PostsEventsOffersSchedulingAnalytics

✓ 5 minutes to first post ✓ 99.92% uptime ✓ Posts, events & offers

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Now serving fresh pastries every morning 🥐",
    "accounts": ["google_business"],
    "media": [{ "url": "https://media.outstand.so/pastry.jpg", "filename": "pastry.jpg" }],
    "google_business": {
      "topicType": "STANDARD",
      "callToAction": { "actionType": "LEARN_MORE", "url": "https://example.com/menu" }
    }
  }'

A STANDARD post with a call-to-action button. Switch topicType to EVENT or OFFER for richer posts.

Google's Business Profile API is powerful — and gated

Posting through the Google Business Profile API means a Google Cloud project, OAuth, and explicit allow-listing — Google must approve your project for API access. Local posts attach to a location ID, and event and offer posts need structured date and offer payloads. Outstand turns all of it into a single request.

Google must allow-list your Cloud project for API access
Use our approved access for instant posting, or bring your own once allow-listed
Local posts must attach to a specific location ID
Connect once via OAuth — we resolve your Business Profile location
Event and offer posts need structured date / offer payloads
Send topicType + event/offer; we build the payload for you
Call-to-action buttons are a separate structured field
Set callToAction; we attach the BOOK/ORDER/LEARN_MORE button
OAuth tokens expire and need refresh
Automatic token refresh — you never see a 401

Everything Google Business Profile supports, through one endpoint

Every content type and capability available on Google Business Profile via Outstand today.

Standard posts

Event posts

Offer posts

CTA buttons

PublishingSchedulingAnalyticsMedia handlingComments

Plus call-to-action buttons and structured event & offer posts. Posting requires a verified Business Profile location.

Copy, paste, ship

The same accounts array also fans out to Instagram, Facebook, LinkedIn and more — one request, many platforms.

Publish an event post

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Join us for our grand opening!",
    "accounts": ["google_business"],
    "google_business": {
      "topicType": "EVENT",
      "event": {
        "title": "Grand Opening",
        "startDate": { "year": 2026, "month": 7, "day": 10 },
        "startTime": { "hours": 9, "minutes": 0 },
        "endDate": { "year": 2026, "month": 7, "day": 10 },
        "endTime": { "hours": 17, "minutes": 0 }
      }
    }
  }'

Publish an offer post

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "20% off this week only!",
    "accounts": ["google_business"],
    "google_business": {
      "topicType": "OFFER",
      "offer": {
        "couponCode": "SAVE20",
        "redeemOnlineUrl": "https://example.com/redeem",
        "termsConditions": "Valid until July 31, 2026."
      }
    }
  }'

Schedule a post (up to 30 days out)

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "New seasonal menu drops Monday 🍂",
    "accounts": ["google_business"],
    "google_business": { "topicType": "STANDARD" },
    "scheduledAt": "2026-07-06T13:00:00Z"
  }'

Read analytics

bash
curl https://api.outstand.so/v1/posts/{id}/analytics \
  -H "Authorization: Bearer $OUTSTAND_API_KEY"
# → views, searches, calls, direction_requests, website_clicks

Read & reply to reviews

bash
# Read the comments on a published post
curl "https://api.outstand.so/v1/posts/{id}/replies?network=google_business" \
  -H "Authorization: Bearer $OUTSTAND_API_KEY"

# Reply to a comment (or comment on your own post)
curl https://api.outstand.so/v1/posts/{id}/replies \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "content": "Thank you for the kind words — see you soon!", "account_username": "yourbrand" }'

Live in three steps

From signup to your first published post in about five minutes.

1

Connect Google Business

Your user authorizes via OAuth and selects a location. We store and refresh the token. Use our approved access, or bring your own Google app.

2

Call POST /v1/posts/

Send text and media with accounts: ["google_business"]. Set topicType to STANDARD, EVENT or OFFER, or add scheduledAt to schedule.

3

We do the Business Profile work

Location resolution, payload assembly, CTA buttons and retries — returned as a unified response with the published post ID.

More than a Google Business wrapper

One integration that grows with everything you ship next.

One API, 10+ platforms

One request publishes to Google Business and 10 more networks. Same JSON shape everywhere — learn one API, ship them all.

Managed Keys or BYOK

Google must allow-list apps for the Business Profile API — use our approved access, or bring your own once Google approves it.

Built for scale

Intelligent rate limiting, automatic token refresh, webhook events and media processing.

Honest pricing

$19/mo includes 3,000 posts, then from $0.007/post. No seats, no annual lock-in.

What you can build

Same endpoints, same data shapes — pick what you ship.

Social schedulers

Let your users queue and auto-publish Google Business content from your app.

AI agents

Give Claude or GPT a tool to post to Google Business. MCP server included.

Analytics dashboards

Pull Google Business reach and engagement alongside every other platform.

Agencies & white-label

Run Google Business posting for clients under your own brand and app.

Google Business API FAQ

The questions developers ask before they build.

Does Google Business Profile have an official API?

Yes — the Google Business Profile API (formerly Google My Business) lets allow-listed apps publish local posts, events and offers and read insights for verified locations. Outstand is a managed layer on top of it, so you skip the allow-listing and payload assembly.

Can I post to Google Business Profile via API?

Yes. Send POST /v1/posts/ with accounts: ["google_business"] and a google_business.topicType. Outstand attaches the post to your verified location.

Can I publish event and offer posts via the API?

Yes. Set topicType to EVENT and pass an event object with start/end dates, or set OFFER and pass an offer object with a coupon code, redeem URL and terms.

Can I add a call-to-action button?

Yes. Pass google_business.callToAction with an actionType (BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP or CALL) and a URL, and Outstand attaches the button to the post.

Can I schedule Google Business posts via the API?

Yes. Add a scheduledAt ISO-8601 timestamp (up to 30 days ahead) and Outstand publishes the post automatically — no cron or queue on your side.

Can I read and reply to reviews via the API?

Yes. Read review replies on a published post with GET /v1/posts/{id}/replies?network=google_business and post a reply with POST /v1/posts/{id}/replies.

Do I need a verified Business Profile?

Yes — Google only allows API publishing for verified Business Profile locations (a Google requirement, not ours). Once your location is verified and connected, posting works through one endpoint.

Ship Google Business posting today

Grab an API key and publish your first post in the next five minutes. 3,000 posts included, then from $0.005/post.