The GBP API Automation Skill: Bulk Updates That Work
You need to push holiday hours to 85 restaurant locations before Thanksgiving. Doing it manually in GBP takes all day and introduces errors at every step.
You have API credentials but you’re uncertain about the specialHours field structure and don’t want a script that silently fails for some locations.
What Changes With the GBP API Automation Skill
Describe the bulk update task. Get back:
- The API call structure with correct field formatting
- The batch processing loop
- Error handling for common failures
- Post-run verification approach
You execute. All 85 locations update correctly.
See It Work: Holiday Hours Bulk Update
Prompt: "Push holiday hours to all 85 locations via GBP API:
Thanksgiving closed, Christmas Eve 11am–3pm, Christmas closed, NYE 11am–8pm.
I have credentials. Show me the API structure and error handling."
Skills that fire: dispatch → gbp-api-automation
GBP API BULK UPDATE: Holiday Hours — 85 Locations
ENDPOINT
PATCH https://mybusiness.googleapis.com/v4/accounts/{accountId}/
locations/{locationId}
SPECIALHOURS STRUCTURE
{
"specialHours": {
"specialHourPeriods": [
{
"startDate": { "year": 2025, "month": 11, "day": 27 },
"isClosed": true
},
{
"startDate": { "year": 2025, "month": 12, "day": 24 },
"openTime": "11:00",
"closeTime": "15:00",
"isClosed": false
},
{
"startDate": { "year": 2025, "month": 12, "day": 25 },
"isClosed": true
},
{
"startDate": { "year": 2025, "month": 12, "day": 31 },
"openTime": "11:00",
"closeTime": "20:00",
"isClosed": false
}
]
}
}
BATCH APPROACH
1. GET /accounts/{accountId}/locations
→ Retrieve all 85 location IDs
2. For each location ID:
PATCH /accounts/{accountId}/locations/{locationId}
Body: specialHours object above
Log: success/failure with location ID
3. After batch: generate summary report
ERROR HANDLING
403 Forbidden
→ Location not owned by this account
→ Skip, log for manual review, don't retry
429 Rate Limit
→ Pause 60 seconds, then retry
→ Implement exponential backoff if repeated
400 Bad Request
→ Invalid data format
→ Log specific location ID and error message
→ Check hours format (24-hour, no AM/PM)
5xx Server Error
→ Temporary Google issue
→ Queue for retry after 5 minutes
VERIFICATION
After batch completes:
1. Spot-check 5 locations via business_profile endpoint
2. Confirm specialHours appear correctly in API response
3. Manually verify 2 locations in GBP dashboard
Feature Highlights
API call structure for common bulk operations — Holiday hours, description updates, attribute changes, post scheduling. The correct field formats and endpoint paths.
Batch processing patterns — How to iterate through a location portfolio efficiently without hitting rate limits.
Error handling for each failure type — What each error code means and how to respond. 403 vs. 429 vs. 400 require different handling.
Verification step included — Every workflow includes how to confirm the update worked.
Common use cases documented — Holiday hours, bulk attribute addition, description standardization, category updates.
When You Need It
Any bulk GBP update across 10+ locations. Manual updates don’t scale. API does.
Holiday season preparation. Thanksgiving, Christmas, New Year’s — holiday hours need to be set across portfolios.
Brand-wide standardization. New attribute available, category change approved, description template updated — push it everywhere.
Systematic GBP maintenance. Monthly portfolio maintenance touches every location. API makes it efficient.
Get This Skill
The gbp-api-automation skill is part of LocalSEOSkills.
"Push [update type] to all [N] locations via GBP API.
[Describe the specific update].
I have credentials. Show me the API structure and error handling."
Skill Documentation
For technical details on how this skill works, what data it pulls, and complete prompt reference, see the full skill documentation.