Skip to main content

Get Google Business Locations

This endpoint queries the Google Business Profile API in real-time to return all available locations for a connected account. Use this to let users choose which location to post to.

Get Google Business Locations

  • Method: GET

  • Endpoint: /api/uploadposts/google-business/locations

  • Authentication:

    • API Key in the Authorization header.
      • Authorization: Apikey <YOUR_API_KEY>
  • Query Parameters:

ParameterTypeDescriptionRequired
profilestringOptional. The profile's username. If provided, the API will return only the locations associated with the Google Business account linked to that profile.No
  • Successful Response (200 OK)
{
"success": true,
"locations": [
{
"name": "accounts/123456789/locations/111111111",
"title": "Main Street Store",
"account_id": "accounts_123456789_111111111"
},
{
"name": "accounts/123456789/locations/222222222",
"title": "Downtown Branch",
"account_id": "accounts_123456789_111111111"
}
]
}
FieldDescription
nameThe Google Business location identifier (used as gbp_location_id in uploads)
titleDisplay name of the business location
account_idThe internal Upload-Post account key

Using Locations in Upload Requests

The gbp_location_id parameter tells the API which location to post to. First list the available locations using the endpoint above, then include the selected location's name as gbp_location_id in your upload request.

ParameterTypeDescriptionRequired
gbp_location_idstringThe location to post to. Must be a valid location name from the locations list.No*

This parameter works with all upload endpoints (/api/upload, /api/upload_photos, /api/upload_text).

If gbp_location_id is omitted, the API lists locations: one is used automatically, several returns an error asking you to pick, zero returns an error. Multi-location accounts can pin one location instead of sending the id on every request — the pin wins, including on scheduled posts.

Example:

curl -X POST https://api.upload-post.com/api/upload_text \
-H "Authorization: Apikey YOUR_API_KEY" \
-F 'user=my-profile' \
-F 'platform[]=google_business' \
-F 'title=Hello from our Downtown Branch!' \
-F 'gbp_location_id=accounts/123456789/locations/222222222' \
-F 'gbp_topic_type=STANDARD'

Local Posts vs. the Media/Gallery Tab

A Google Business upload can target two different places on the location:

DestinationHow to select itResult
Updates tab (Local Post)Default. Nothing extra to send.Creates a Local Post, optionally STANDARD, EVENT or OFFER.
Media / Gallery tabgbp_post_type=MEDIA (also accepts PHOTO or GALLERY), or gbp_upload_to_gallery=trueUploads the attached photo straight to the location's photo gallery.

When targeting the Media/Gallery tab you can also send gbp_media_category (alias media_category) to file the photo under a category — COVER, PROFILE, LOGO, EXTERIOR, INTERIOR, PRODUCT, AT_WORK, FOOD_AND_DRINK, MENU, COMMON_AREA, ROOMS, TEAMS or ADDITIONAL (the default).

curl -X POST https://api.upload-post.com/api/upload_photos \
-H "Authorization: Apikey YOUR_API_KEY" \
-F 'user=my-profile' \
-F 'platform[]=google_business' \
-F 'photos[]=@/path/to/storefront.jpg' \
-F 'gbp_location_id=accounts/123456789/locations/222222222' \
-F 'gbp_post_type=MEDIA' \
-F 'gbp_media_category=EXTERIOR'

➡️ Full parameters, response shape and errors: Publishing to the Media/Gallery tab.

  • Additional Notes:
    • Locations are queried live from the Google Business API each time you call this endpoint.
    • The endpoint handles token refresh automatically if the stored access token has expired.
    • Connect your Google account via OAuth first — the connection stores your credentials, and this endpoint uses them to fetch locations in real-time.
    • Works the same way as Facebook pages: connect once, then select which location to post to on each upload.