Skip to content
postpeg

Google Business API

Post updates to Google Business Profiles through one API

postpeg publishes updates to Google Business Profiles alongside nine other networks, from the same POST /v1/posts. A post can carry one image and a button (Learn more, Book, Order, Shop, Sign up or Call) that sends people where you choose.

  • Publish
  • Schedule
  • Google Business93/1500
    image

    Our autumn menu starts Monday: pumpkin spice cold brew, maple oat latte and fresh apple cake.

    Ready

The example below, checked against Google Business’s rules

It suits products that run local businesses’ presence: posting the week’s offer, an event or new opening hours to Google and social networks at the same time.

What you can do on Google Business

  • Publish. Publish to Google Business now with POST /v1/posts, alone or in the same request as any of the other networks. More on the Posting API.
  • Schedule. Schedule up to a year ahead with scheduled_at, and cancel with DELETE /v1/posts/{id} any time before it goes out. More on the Scheduling API.

Not available on Google Business: analytics and comments and direct messages. The coverage table shows what each network supports.

Google Business’s rules, checked before sending

A Google Business post can have up to 1,500 characters, counted as people see them (an emoji is one). Media is optional: 1 image. postpeg runs these checks on every request, so a post that won’t fit Google Business is refused with a 400 before anything is published, on any network.

Google Business limits as postpeg checks them
Max text1,500 characters
MediaOptional
Images1
VideosNone
Images and video togetherNone
Required optionsNone
Connects withHosted OAuth

Connecting Google Business accounts

Call POST /v1/accounts/connect with a profile and "platform": "google_business", and send the account’s owner to the URL you get back. It’s valid for 15 minutes. They approve access on Google Business’s own screen and land on your redirect_url with status=success and the new account_id.

The profile’s owner or manager connects it through the hosted OAuth screen and approves access on Google’s own screen.

If Google Business ever expires a login, the account turns reconnect_required so you can ask its owner to connect again. More in Profiles and accounts.

Example: a scheduled Google Business post

One request, with an Idempotency-Key so a retry on your side never posts twice. To post to Google Business and other networks together, add more ids to account_ids.

curl https://api.postpeg.com/v1/posts \
  -H "Authorization: Bearer $POSTPEG_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: google_business-example-2026-10-01" \
  -d '{
    "account_ids": [
      "acc_mfz27j6n0r4v8z2d6h0l4p8t2x"
    ],
    "content": "Our autumn menu starts Monday: pumpkin spice cold brew, maple oat latte and fresh apple cake.",
    "media": [
      {
        "url": "https://example.com/autumn-menu.jpg",
        "type": "image",
        "alt_text": "Autumn menu"
      }
    ],
    "scheduled_at": "2026-10-01T09:00:00Z",
    "platform_options": {
      "google_business": {
        "call_to_action": "order",
        "link": "https://example.com/order"
      }
    }
  }'
Response · 201 Created
{
  "id": "post_mfz2k3v8q1w5e9r4t7y0u2i6o3",
  "content": "Our autumn menu starts Monday: pumpkin spice cold brew, maple oat latte and fresh apple cake.",
  "media": [
    {
      "url": "https://example.com/autumn-menu.jpg",
      "type": "image",
      "alt_text": "Autumn menu"
    }
  ],
  "platform_options": {
    "google_business": {
      "call_to_action": "order",
      "link": "https://example.com/order"
    }
  },
  "status": "scheduled",
  "scheduled_at": "2026-10-01T09:00:00.000Z",
  "targets": [
    {
      "account_id": "acc_mfz27j6n0r4v8z2d6h0l4p8t2x",
      "platform": "google_business",
      "status": "pending",
      "platform_post_id": null,
      "url": null,
      "error": null,
      "attempts": 0,
      "published_at": null
    }
  ],
  "created_at": "2026-09-24T14:02:11.418Z"
}

From 09:00 the target moves through queued and publishing to published with the live url, or to failed with the reason in error. Temporary failures are retried, up to 5 attempts with growing waits. See Publishing for every status.

Questions

How do I schedule a Google Business post?
Add scheduled_at (ISO 8601, up to a year ahead) to POST /v1/posts. The post waits as scheduled and goes out within a minute of that time. DELETE /v1/posts/{id} cancels it any time before.
What happens if a post breaks Google Business’s rules?
postpeg checks the text (up to 1,500 characters), the media before anything is sent. A post that doesn’t fit comes back as a 400 with every problem listed in issues, and nothing is published on any network.
Which Google Business features does postpeg support?
Publishing, scheduling. Analytics and comments and direct messages are not available on Google Business; asking for them returns a 400 naming the feature.
Which buttons can a Google Business post have?
platform_options.google_business.call_to_action takes learn_more, book, order, shop, sign_up or call, with link saying where the button goes. Both are optional.
Can a Google Business post include video?
Not through postpeg. A Google Business post takes text and at most one image.

The same request publishes to all ten networks. Often paired with Google Business:

Or see all 10: X, Instagram, Facebook, LinkedIn, TikTok, YouTube, Threads, Pinterest and Bluesky, in the platform reference.

Send your first post in a few minutes

The 7-day trial has every feature and 3 connected accounts, with no card. The quickstart takes you from a key to a published post.