ReelspanUpload guidesGoogle Business

Post to Google Business automatically

Connect Google Business once, then send photos and text posts to it from code, a workflow or an AI agent. The same call can post to every other network at the same time.
Sign in with Google Business1,500 characters4:31:17 sections

01

Connect Google Business

  1. In the dashboard, open Accounts and pick Google.
  2. Sign in with Google and allow Reelspan to post to your Business Profile.
  3. The account joins the profile you had open; every post to that profile can now include it.

Posting for clients? Send them a connect link so they connect their own Google Business account without a Reelspan login.

02

Get an API key

In the dashboard, open Developers → API keys and create one. Keep it in an environment variable such as REELSPAN_KEY; never in code you share.

03

Post with one request

Send the photos as a file, or as a public URL like below. Add more platform[] fields to post the same thing everywhere at once.

curl
curl -X POST https://api.reelspan.com/v1/posts/photos \
  -H "Authorization: Bearer $REELSPAN_KEY" \
  -F user=my-brand \
  -F "platform[]=google_business" \
  -F "photos[]=https://example.com/photo.jpg" \
  -F "title=Your update" \
  -F "google_business_location_id=…"
JavaScript (Node 18+)
const form = new FormData();
form.append('user', 'my-brand');
form.append('platform[]', 'google_business');
form.append('photos[]', 'https://example.com/photo.jpg');
form.append('title', 'Your update');

const res = await fetch('https://api.reelspan.com/v1/posts/photos', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.REELSPAN_KEY}` },
  body: form,
});
console.log(await res.json());
Python
import os, requests

res = requests.post(
    "https://api.reelspan.com/v1/posts/photos",
    headers={"Authorization": f"Bearer {os.environ['REELSPAN_KEY']}"},
    files=[
        ("user", (None, "my-brand")),
        ("platform[]", (None, "google_business")),
        ("photos[]", (None, "https://example.com/photo.jpg")),
        ("title", (None, "Your update")),
    ],
)
print(res.json())

google_business_title sets the text for Google Business only, when it should differ from the other networks’.

04

Google Business options

google_business_location_id
The location to post to.
google_business_topic_type
STANDARD, EVENT or OFFER.
google_business_cta / google_business_cta_url
A button such as BOOK, ORDER or LEARN_MORE, with its link.
gbp_coupon_code
The coupon for an OFFER.
  • Updates go to your Business Profile locations, with one photo each.
  • Add a call-to-action button such as Book, Order or Learn more.

Every field, with its limits: the docs.

05

Schedule it and check the result

  • Add scheduled_date (ISO 8601) and timezone to post later, or add_to_queue=true to take the next slot of your posting schedule.
  • The response has Google Business’s status and the post’s link. For big files send async_upload=true and check GET /v1/posts/status?request_id=…, or get a signed webhook when it’s live.
  • If Google Business refuses a post, the error says why in plain words, and you can retry just that network.

06

Without code

07

Ideas

  • Post weekly offers to every location at once.
  • Share new menu photos as updates.

More on Google Business: what you can post there. Other networks: all upload guides.

Questions?Talk to a person.Contact us