Scheduling to Google Business Profile through SkedCast's API#
SkedCast's /v1 REST API schedules What's new updates, events and offers, each with an optional photo to Google Business Profile the same way it does every other platform: one POST https://api.skedcast.com/v1/posts call with a content caption and a targets block naming the connected accounts. You need a verified Google Business Profile location managed by the connecting Google account (each location is its own connected account), connected once through the console (or minted as a self-serve connect link via POST /v1/clients/:id/connect-invites).
SkedCast is not a raw wrapper over Google Business Profile's own developer API — it is one versioned, platform-agnostic contract that fans a single compose call out across every connected network, with the Google Business Profile-specific fields listed below folded into the same request shape.
Google Business Profile-specific fields (`variants[].overrides.google_business`)#
| Field | Notes |
|---|---|
topicType | STANDARD (What's new, the default), EVENT or OFFER. |
eventTitle | **Required** for EVENT and OFFER: the event or offer title. |
eventStart / eventEnd | YYYY-MM-DD or YYYY-MM-DDTHH:MM. eventStart is **required** for EVENT and OFFER. |
offerCouponCode / offerRedeemUrl / offerTerms | Optional offer details, shown on an OFFER post. |
callToAction | BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP or CALL — the post's action button. |
callToActionUrl | **Required** with every button except CALL, which dials the profile's phone number. |
Example: schedule a post to Google Business Profile#
{
"clientId": "…",
"content": "Two-for-one lattes all weekend at the harbour cafe.",
"targets": { "mode": "accounts", "accountIds": ["…"] },
"schedule": { "type": "at", "at": "2026-10-01T09:00:00" },
"variants": [
{ "platform": "google_business", "overrides": { "google_business": { "topicType": "OFFER", "eventTitle": "Two-for-one lattes", "eventStart": "2026-10-03", "eventEnd": "2026-10-04", "offerCouponCode": "LATTE2" } } }
]
}Google Business Profile facts#
| Fact | Value |
|---|---|
| Max caption length | 1,500 characters |
| Media per post | 1 photo per post (JPG or PNG). |
| Native platform scheduling | No — SkedCast's managed engine holds the timer |
| SkedCast's default pacing | 10 posts/day, ~60 min apart per account (conservative anti-ban default — not Google Business Profile's own published rate limit; see the rate-limit guide below) |
Published-post URL (permalink) | Google's searchUrl for the post, returned when it publishes. |
Reading status and results#
GET https://api.skedcast.com/v1/post-targets/:id returns the Google Business Profile target's status (scheduled, published, failed, …), plus error, statusReason, and retryAt when it's parked waiting on something — SkedCast's own pacing, a platform rate limit, or media still transcoding, each with its own machine-readable reason. Once published, externalId and permalink (see the table above) point at the live post.
- Subscribe to
target.published/target.failedwebhooks (or the legacypost.*pair) instead of polling — see [Webhooks](/developers/webhooks). - Or connect an MCP client and ask an agent to check — see [Connect an AI agent](/mcp).
FAQ
- What can I schedule to Google Business Profile through the API?
- Google Business Profile posts of type: What's new updates, events and offers, each with an optional photo, via one `POST https://api.skedcast.com/v1/posts` call — the same endpoint used for every other connected platform.
- How do I authenticate against the Google Business Profile API endpoint?
- The same way as every `/v1` route: an API key (`Authorization: Bearer sked_live_…`) or an OAuth 2.1 bearer token, scoped to `posts.compose` to schedule and `posts.read` to read back status. See Authentication.