Google Business Profile

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.

Get Started FreeNo credit card required

What you can control via API

Every Google Business post type and parameter, exposed as first-class API fields.

Standard updatesgbp_topic_type: STANDARD

Publish general updates to your Google Business listing. Text, photos, and a CTA button in every post.

Event postsgbp_topic_type: EVENT

Promote upcoming events with a title, start/end dates, and description. Google surfaces events in local search and Maps.

Offer postsgbp_topic_type: OFFER

Run time-limited promotions with coupon codes, redemption URLs, and terms. Offer posts appear with a special badge in search results.

CTA buttonsgbp_cta_type

Add BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, or CALL as a clickable action button. Pair with gbp_cta_url to drive traffic.

Photo attachmentsmedia_urls

Attach up to 10 photos per post. Images appear in your business listing's photo gallery and alongside the post in search.

Multi-location targetinggbp_location_id

Specify which location receives the post. Manage dozens of storefronts from one API key with per-location routing.

API Reference

Google Business parameters

ParameterTypeRequiredDescription
gbp_location_idstringRequiredThe Google Business location ID. Found in your GBP dashboard URL or via the GBP API.
gbp_topic_typestringOptionalSTANDARD (default), EVENT, or OFFER. Determines the post template Google displays.
gbp_cta_typestringOptionalBOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, or CALL. Adds a clickable action button to the post.
gbp_cta_urlstringOptionalDestination URL for the CTA button. Required when gbp_cta_type is set (except CALL).
gbp_event_titlestringOptionalEvent title. Required when gbp_topic_type is EVENT.
gbp_event_startstringOptionalISO 8601 start datetime for events. Required when gbp_topic_type is EVENT.
gbp_event_endstringOptionalISO 8601 end datetime for events. Optional — defaults to end of start day.
gbp_offer_coupon_codestringOptionalCoupon code displayed to customers. Used when gbp_topic_type is OFFER.
gbp_offer_redeem_urlstringOptionalURL where customers redeem the offer. Used when gbp_topic_type is OFFER.
gbp_offer_termsstringOptionalTerms and conditions for the offer. Displayed below the coupon code.
SDK Example

Publish with the TypeScript SDK

Install the codivupload package and publish to Google Business with full type safety.

gbp-post.ts
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"
REST API

One request, full GBP control

Pass Google Business parameters alongside your media. CodivUpload validates the payload, queues the job, and handles token refresh.

gbp-event.sh
# 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.

Step 1

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.

Step 2

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.

Step 3

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.

Get Started Free

Google Business API questions