Post to Google Business via API — Updates, Events & Offers
Publish updates, events, offers, and photos to Google Business Profile through a single API endpoint. Add CTA buttons, schedule posts, and manage multiple locations programmatically.
What you can control via API
Every Google Business post type and parameter, exposed as first-class API fields.
gbp_topic_type: STANDARDPublish general updates to your Google Business listing. Text, photos, and a CTA button in every post.
gbp_topic_type: EVENTPromote upcoming events with a title, start/end dates, and description. Google surfaces events in local search and Maps.
gbp_topic_type: OFFERRun time-limited promotions with coupon codes, redemption URLs, and terms. Offer posts appear with a special badge in search results.
gbp_cta_typeAdd BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, or CALL as a clickable action button. Pair with gbp_cta_url to drive traffic.
media_urlsAttach up to 10 photos per post. Images appear in your business listing's photo gallery and alongside the post in search.
gbp_location_idSpecify which location receives the post. Manage dozens of storefronts from one API key with per-location routing.
Google Business parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
gbp_location_id | string | Required | The Google Business location ID. Found in your GBP dashboard URL or via the GBP API. |
gbp_topic_type | string | Optional | STANDARD (default), EVENT, or OFFER. Determines the post template Google displays. |
gbp_cta_type | string | Optional | BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, or CALL. Adds a clickable action button to the post. |
gbp_cta_url | string | Optional | Destination URL for the CTA button. Required when gbp_cta_type is set (except CALL). |
gbp_event_title | string | Optional | Event title. Required when gbp_topic_type is EVENT. |
gbp_event_start | string | Optional | ISO 8601 start datetime for events. Required when gbp_topic_type is EVENT. |
gbp_event_end | string | Optional | ISO 8601 end datetime for events. Optional — defaults to end of start day. |
gbp_offer_coupon_code | string | Optional | Coupon code displayed to customers. Used when gbp_topic_type is OFFER. |
gbp_offer_redeem_url | string | Optional | URL where customers redeem the offer. Used when gbp_topic_type is OFFER. |
gbp_offer_terms | string | Optional | Terms and conditions for the offer. Displayed below the coupon code. |
Publish with the TypeScript SDK
Install the codivupload package and publish to Google Business with full type safety.
import { CodivUpload } from "codivupload";
const codiv = new CodivUpload("YOUR_API_KEY");
const post = await codiv.posts.create({
profile_name: "my-store",
platforms: ["google_business"],
post_type: "text",
description: "Weekend brunch — 20% off all items",
gbp_location_id: "locations/12345",
gbp_topic_type: "OFFER",
gbp_cta_type: "ORDER",
gbp_cta_url: "https://mystore.com/brunch",
gbp_offer_coupon_code: "BRUNCH20",
gbp_offer_redeem_url: "https://mystore.com/redeem",
});
// post.id → "post_abc123"One request, full GBP control
Pass Google Business parameters alongside your media. CodivUpload validates the payload, queues the job, and handles token refresh.
# Create an EVENT post on Google Business
curl -X POST \
https://api.codivupload.com/v1/posts \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"profile_name": "my-store",
"platforms": ["google_business"],
"post_type": "text",
"description": "Join us for live music every Friday!",
"gbp_location_id": "locations/12345",
"gbp_topic_type": "EVENT",
"gbp_event_title": "Friday Night Live Music",
"gbp_event_start": "2026-04-11T19:00:00Z",
"gbp_event_end": "2026-04-11T23:00:00Z",
"gbp_cta_type": "BOOK",
"gbp_cta_url": "https://mystore.com/book" }'Getting Started with Google Business on CodivUpload
Three steps from zero to your first Google Business post.
Connect your Google account
Open the CodivUpload dashboard, navigate to Integrations, and click Connect Google. Authorize access to your business locations. CodivUpload stores tokens encrypted with AES-256-GCM and refreshes them automatically.
Select your location
Choose which business location to post to. If you manage multiple storefronts, each location gets its own gbp_location_id. You can target different locations in separate API calls or from the dashboard dropdown.
Publish or schedule
Write your update, pick a post type (standard, event, or offer), add a CTA button, and publish immediately or schedule for a future date. Cross-post to other platforms in the same request.
Start posting to Google Business for free
2 profiles, 10 uploads/mo on the free plan. Upgrade for unlimited.