Google Business Profile Upload Guide
Publish photo and text local posts to your Google Business Profile (GBP) locations using the IndReelForge API. Posts appear on your Business Profile on Google Search and Maps.
Google Business Profile does not support video posts through its API. Sending a video to google_business returns a validation error. Use upload_photos or upload_text.
Supported Content Types
| Type | Endpoint | Notes |
|---|---|---|
| Photo post | POST /api/upload_photos | First image is posted with the summary text |
| Text post | POST /api/upload_text | Summary-only local post |
The post body (summary) is built from title + description (joined with a blank line) and capped at 1500 characters.
Post a Text Update
curl -X POST https://api.indreelforge.com/api/upload_text \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'user=my-brand' \
-F 'title=Now open Saturdays! Walk-ins welcome from 9am–2pm.' \
-F 'platform[]=google_business'
Post a Photo
curl -X POST https://api.indreelforge.com/api/upload_photos \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'photos[]=@/path/to/storefront.jpg' \
-F 'title=Fresh summer menu just dropped 🍓' \
-F 'user=my-brand' \
-F 'platform[]=google_business'
Google Business-Specific Fields
| Field | Description |
|---|---|
gbp_location_id | Target location resource name, e.g. accounts/123/locations/456. Defaults to your first location. |
gbp_topic_type | Local post type — STANDARD (default), EVENT, OFFER, or ALERT |
gbp_cta_type | Call-to-action button — LEARN_MORE, BOOK, ORDER, SHOP, SIGN_UP, or CALL |
gbp_cta_url | URL the CTA button opens (required for every gbp_cta_type except CALL) |
gbp_language | Post language code (default en) |
curl -X POST https://api.indreelforge.com/api/upload_text \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'user=my-brand' \
-F 'title=20% off all services this week only!' \
-F 'gbp_topic_type=OFFER' \
-F 'gbp_cta_type=SHOP' \
-F 'gbp_cta_url=https://example.com/shop' \
-F 'platform[]=google_business'
Which Location Do Posts Go To?
Each post is published to a location under your Business Profile account. By default IndReelForge targets the first location on the connected account.
To target a specific location, pass its resource name as gbp_location_id. List your locations with the platform helper endpoint — the name field (e.g. accounts/123/locations/456) is the value to use.
curl -X POST https://api.indreelforge.com/api/upload_photos \
-H 'Authorization: Apikey YOUR_KEY' \
-F 'photos[]=@/path/to/storefront.jpg' \
-F 'title=Now open at our new downtown location!' \
-F 'user=my-brand' \
-F 'gbp_location_id=accounts/123/locations/456' \
-F 'platform[]=google_business'
If you post to several locations regularly, connect a dedicated profile per location, or set gbp_location_id per request to route each post to the right place.
Rate Limits
| Limit | Value |
|---|---|
| Posts per location | ~10 per day (Google Business Profile API limit) |
Connect Google Business Profile
- Dashboard → Profiles → select your profile
- Click Connect next to Google Business
- Sign in with the Google account that manages your Business Profile and grant access
- Return — status shows Connected
The Google account must have manager or owner access to at least one Business Profile location.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
Google Business Profile does not support video posts via the API | Sent a video to google_business | Use upload_photos or upload_text |
no Business Profile account found for this user | The connected Google account manages no Business Profile | Reconnect with an account that has manager/owner access |
no locations found under your account | Account exists but has no verified locations | Verify a location in Google Business Profile first |
Re-authenticate Google Business | Access token expired/revoked | Reconnect Google Business in profile settings |