Platforms
Google Business API
Post to Google Business Profile with Late API - Updates, CTAs, and location posts
Quick Start
Create a Google Business Profile post:
curl -X POST https://getlate.dev/api/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "🎉 We are open this holiday weekend! Stop by for our special seasonal menu.",
"mediaItems": [
{"url": "https://example.com/holiday-special.jpg"}
],
"platforms": [
{"platform": "googlebusiness", "accountId": "YOUR_ACCOUNT_ID"}
],
"publishNow": true
}'const response = await fetch('https://getlate.dev/api/v1/posts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
content: '🎉 We are open this holiday weekend! Stop by for our special seasonal menu.',
mediaItems: [
{ url: 'https://example.com/holiday-special.jpg' }
],
platforms: [
{ platform: 'googlebusiness', accountId: 'YOUR_ACCOUNT_ID' }
],
publishNow: true
})
});
const { post } = await response.json();
console.log('Posted to Google Business!', post._id);import requests
response = requests.post(
'https://getlate.dev/api/v1/posts',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'content': '🎉 We are open this holiday weekend! Stop by for our special seasonal menu.',
'mediaItems': [
{'url': 'https://example.com/holiday-special.jpg'}
],
'platforms': [
{'platform': 'googlebusiness', 'accountId': 'YOUR_ACCOUNT_ID'}
],
'publishNow': True
}
)
post = response.json()
print(f"Posted to Google Business! {post['_id']}")Overview
Google Business Profile posts support text and a single image. Videos are not supported.
Image Requirements
| Property | Requirement |
|---|---|
| Max Images | 1 per post |
| Formats | JPEG, PNG |
| Max File Size | 5 MB |
| Min Dimensions | 250 × 250 px |
| Recommended | 1200 × 900 px (4:3) |
Aspect Ratios
| Ratio | Dimensions | Notes |
|---|---|---|
| 4:3 | 1200 × 900 px | Recommended |
| 1:1 | 1080 × 1080 px | Square, good for profile |
| 16:9 | 1200 × 675 px | Landscape |
Note: Google may crop images. Use 4:3 for best results.
Call-to-Action Buttons
Google Business posts can include CTA buttons:
curl -X POST https://getlate.dev/api/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Book your appointment today! Limited spots available this week.",
"mediaItems": [
{"url": "https://example.com/booking.jpg"}
],
"platforms": [{
"platform": "googlebusiness",
"accountId": "YOUR_ACCOUNT_ID",
"platformSpecificData": {
"callToAction": {
"type": "BOOK",
"url": "https://mybusiness.com/book"
}
}
}],
"publishNow": true
}'const response = await fetch('https://getlate.dev/api/v1/posts', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
content: 'Book your appointment today! Limited spots available this week.',
mediaItems: [
{ url: 'https://example.com/booking.jpg' }
],
platforms: [{
platform: 'googlebusiness',
accountId: 'YOUR_ACCOUNT_ID',
platformSpecificData: {
callToAction: {
type: 'BOOK',
url: 'https://mybusiness.com/book'
}
}
}],
publishNow: true
})
});response = requests.post(
'https://getlate.dev/api/v1/posts',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'content': 'Book your appointment today! Limited spots available this week.',
'mediaItems': [
{'url': 'https://example.com/booking.jpg'}
],
'platforms': [{
'platform': 'googlebusiness',
'accountId': 'YOUR_ACCOUNT_ID',
'platformSpecificData': {
'callToAction': {
'type': 'BOOK',
'url': 'https://mybusiness.com/book'
}
}
}],
'publishNow': True
}
)Available CTA Types
| Type | Description | Best For |
|---|---|---|
LEARN_MORE | Link to more information | Articles, about pages |
BOOK | Booking/reservation link | Services, appointments |
ORDER | Online ordering link | Restaurants, food |
SHOP | E-commerce link | Retail, products |
SIGN_UP | Registration link | Events, newsletters |
CALL | Phone call action | Contact, inquiries |
Post Without Image
Text-only posts are supported:
{
"content": "Happy Friday! 🎉 We're offering 20% off all services this weekend. Mention this post when you visit!",
"platforms": [
{ "platform": "googlebusiness", "accountId": "acc_123" }
]
}Image URL Requirements
Google Business has strict image requirements:
| Requirement | Details |
|---|---|
| Public URL | Must be publicly accessible |
| HTTPS | Secure URLs only |
| No redirects | Direct link to image |
| No auth required | Can't require login |
✅ https://mybucket.s3.amazonaws.com/image.jpg
✅ https://example.com/images/post.png
❌ https://example.com/image?token=abc (auth required)
❌ http://example.com/image.jpg (not HTTPS)Video Limitations
Google Business Profile does not support video posts. This is a platform limitation.
For video content:
- Post to other platforms (YouTube, Instagram)
- Include a link to the video in your text
- Use a video thumbnail as your image with a "Watch" CTA
Location Selection
If you have multiple locations, you must have a connected account for each location. The account ID determines which location receives the post.
Post Visibility
Posts appear on:
- Your Google Business Profile
- Google Search (when searching your business)
- Google Maps
- Google Knowledge Panel
Character Limits
| Property | Limit |
|---|---|
| Post text | 1500 characters |
| CTA URL | Standard URL length |
Best Practices
Image Tips
- Use high-quality, relevant images
- Show your products/services
- Include your branding subtly
- Avoid excessive text overlay
- Keep important content in center (cropping)
Content Tips
- Include a clear call-to-action
- Mention offers or specials
- Keep it relevant and timely
- Update regularly (weekly posts)
Common Issues
"Image not found"
- Verify URL is publicly accessible
- Check for authentication requirements
- Ensure HTTPS
- Test URL in incognito browser
"Invalid image format"
- Use JPEG or PNG only
- WebP and GIF not supported
- Check file isn't corrupted
"Image too small"
Minimum 250 × 250 px. Recommended: 1200 × 900 px.
Post not appearing
- Posts may take 24-48 hours to appear
- Check Google Business Console for approval status
- Ensure account is verified
CTA not working
- Verify URL is valid and accessible
- Use HTTPS
- Avoid shortened URLs
Related API Endpoints
- Connect Google Business Account — OAuth flow
- Create Post — Post creation and scheduling
- Upload Media — Image uploads
- GMB Reviews — Manage reviews