Works with all AI agents

Connect your AI agent

Choose your assistant and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

PostEverywhere Google Business Profile API Guide

PostEverywhere API reference for Google Business Profile: request fields for updates, events and offers, buttons, photos and connecting several locations.

Publish posts to a Google Business Profile through the same POST /v1/posts request you use for every other platform. Posts show on the business's listing on Google Search and Maps. PostEverywhere supports the three post types Google allows through its API: updates, events and offers. For a general overview of all supported platforms, see the Introduction.

Connect a Google Business Profile

Google Business Profile connects with a Google sign-in (OAuth).

  • In the dashboard, open Accounts, choose Google Business Profile and sign in with the Google account that owns or manages the business on Google.
  • If that account manages several businesses, a chooser lists them and you pick which to add. Each business is one connected account on your plan.
  • From the API or an AI agent, call POST /v1/accounts/connect-link with "platform": "google_business" (MCP: create_connect_link) and open the returned URL to finish the Google sign-in. connect-credential does not apply, because there is no credential to paste.

Google only accepts posts from verified Business Profiles. An unverified business can be connected, but posts to it are refused until it is verified on Google. GET /v1/accounts/{id} returns a google_business object with the business title, address, maps_uri, verified and can_post, so you can check before you schedule.

What you can publish to Google Business Profile

Item Limit
Post types update (default), event, offer
Text Up to 1,500 characters. Required on updates, optional on events and offers
Photo One per post, JPG or PNG, up to 5 MB, at least 250 x 250 pixels
Video Not supported
Button On updates and events only: book, order, shop, learn_more, sign_up or call

Product posts are not available through Google's API. Hotels cannot publish offers (Google's policy).

Request fields

Put Google-specific options in platform_content.google_business.settings. Every setting is optional except where noted. camelCase names (postType, buttonUrl, eventTitle, startDate, endDate, couponCode, redeemUrl) are accepted too.

Setting Type Notes
post_type string update, event or offer. Defaults to update
button string none (default), book, order, shop, learn_more, sign_up or call. Offers have no button
button_url string (URL) Required for every button except none and call. call uses the phone number on the Business Profile
event_title string Up to 58 characters. Required for events and offers
start_date string Required for events and offers. YYYY-MM-DD or YYYY-MM-DDTHH:mm, in the business's own time zone
end_date string Required for events and offers. Same format, not before start_date
coupon_code string Offers only. Up to 58 characters
redeem_url string (URL) Offers only. Where the offer is used online
terms string Offers only. Terms and conditions, up to 5,000 characters

platform_content.google_business.content overrides the top-level content for Google only.

Example: an event with a button

curl -X POST https://app.posteverywhere.ai/api/v1/posts \
  -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Late-night shopping this Friday: every shop on the high street stays open until 10pm.",
    "account_ids": [2210],
    "media_ids": ["<media_id>"],
    "platform_content": {
      "google_business": {
        "settings": {
          "post_type": "event",
          "event_title": "Late-night shopping",
          "start_date": "2026-12-04T18:00",
          "end_date": "2026-12-04T22:00",
          "button": "learn_more",
          "button_url": "https://example.com/late-night"
        }
      }
    },
    "scheduled_for": "2026-12-01T09:00:00Z"
  }'

Example: an offer with a coupon code

{
  "content": "20% off every pastry all week at the Elm Street shop.",
  "account_ids": [2210],
  "platform_content": {
    "google_business": {
      "settings": {
        "post_type": "offer",
        "event_title": "20% off pastries",
        "start_date": "2026-11-09",
        "end_date": "2026-11-15",
        "coupon_code": "SPRING20",
        "terms": "One per customer. In store only."
      }
    }
  }
}

Things Google rejects

  • Phone numbers in the text. Google may refuse the post. Use the call button instead.
  • Posts on unverified businesses. Verify the business on Google first.
  • A post that breaks a rule above (a missing event title, an end date before the start date, two photos, a video) returns 400 google_business_post_invalid with the reason.

Google also reviews some posts after they publish and can reject them later. When that happens PostEverywhere marks the post as failed and shows the reason Google gave, so you know it is no longer live. There are no per-post analytics for Google Business Profile: Google retired per-post insights, so get_post_results returns the publish result only.