Test mode for Google Business Profile

The sandbox Google never shipped for Business Profile.

A true test mode for the GBP API: create fake locations, seed reviews and metrics, then point your real integration at a byte-for-byte sandbox replica of the Google Business Profile API — no Google approval, no verified listings, no risk to production.

Drop-in compatible No access request Cancel anytime
~/your-gbp-integration
# Point your existing client at the sandbox — same paths, same shapes.
- const HOST = "https://mybusiness.googleapis.com"
+ const HOST = "https://api.gbpsandbox.com"

$ curl "$HOST/v4/accounts/123/locations/456/reviews?pageSize=50" \
    -H "Authorization: Bearer sk_sandbox_live_..."

{
  "reviews": [
    { "starRating": "FIVE", "comment": "Fast and friendly!" }
  ],
  "averageRating": 4.6,
  "totalReviewCount": 128,
  "nextPageToken": "CgkI8aH..."
}
The problem

Testing against real Google is risky and slow

There's no official way to safely build a Business Profile integration. So teams test against production — or not at all.

No official sandbox

Google ships no test environment for the GBP API. Your only options are to build against live data or guess — and find the bugs in production.

Access is gated and slow

New projects start at zero quota. Before a single call works you need a verified profile (60+ days old), a matching business website, and a manual approval from Google.

Production is fragile

Test against real listings and you risk polluting verified pages, posting real public replies, and tripping rate limits. And a review you create can't be deleted via API — only the customer or Google can remove it.

The API is scattered

Reviews and posts still live on the legacy v4 API while everything else moved to v1 — spread across several hosts, versions, and docs pages you have to stitch together yourself.

The toolkit

Five tools, one sandbox

Every surface you need to build, seed, test, and automate against Google Business Profile — from a polished UI to an MCP server for your AI agents.

01 — Dashboard

A simple, beautiful dashboard

Create locations, seed reviews, and shape metrics from a clean UI built for humans — not config files.

app.gbpsandbox.com
Locations
12
Avg rating
4.6
★★★★★Fast and friendly service!Replied
★★★★☆Good, would visit againNew
★★☆☆☆Long wait on Monday morningNew
02 — Replica API

The GBP API replica for your tests

A byte-for-byte copy of Google's endpoints. Point your real integration at it — only the host changes.

- https://mybusiness.googleapis.com
+ https://api.gbpsandbox.com   # same paths, params & errors
03 — CLI

A top-notch CLIComing soon

Script setup & teardown in CI or locally.

$ gbp-sandbox seed reviews --n 200
$ gbp-sandbox reset --env ci
04 — Control API

A REST API to control your data

Seed & reset fake data programmatically.

POST /control/v1/reviews
{ "rating":"FIVE", "reply":null }
05 — MCP server

An MCP server on topComing soon

Drive the whole sandbox from AI agents in natural language — create locations, seed reviews, and trigger failures straight from your editor or assistant.

Claude Cursor Your agent GBP Sandbox MCP
Features

Everything you need to test like it's production

Faithful where it counts, controllable where it helps.

Byte-for-byte API replica

Identical paths, query params, pagination tokens, field masks, and google.rpc.Status error envelopes. Usually you change only the host.

Realistic performance metrics

Seed calls, direction requests, website clicks, Maps & Search impressions — plus reviews with any star rating and replied / unreplied state.

Rate limits & expired tokensNew

Enforce Google's real limits — 300 QPM, 50 reviews per page, 10 edits/min — then force a 429 to test your backoff, or expire an access token to run your refresh and re-consent paths on demand.

Fault injection

Trigger NOT_FOUND, PERMISSION_DENIED, eventual consistency, and other failure modes whenever you want to test the unhappy path.

Fake Business Profile page

A Google-looking page per location to verify your changes visually — private while you build, public and shareable when you're ready to demo.

Isolated environments

Keep dev, staging, and CI on separate datasets with their own credentials, so parallel test runs never clobber each other's state.

Point your existing integration at the sandbox in minutesNew

Drop-in skill for Claude Code that finds your GBP calls, swaps hosts and credentials, and wires up test fixtures — no rewrite.

Coverage

A faithful copy of the endpoints you actually use

The core of any GBP integration — replicated exactly, across the same Google services.

List locations
GET /v1/accounts/*/locations
Business Information v1
Get attributes
GET /v1/locations/*/attributes
Business Information v1
List categories
GET /v1/categories
Business Information v1
Update location (PATCH + updateMask)
PATCH /v1/locations/*
Business Information v1
List reviews
GET /v4/accounts/*/locations/*/reviews
My Business v4
Reply to review (PUT .../reply)
PUT /v4/.../reviews/*/reply
My Business v4
Fetch performance metrics
GET /v1/...:fetchMultiDailyMetricsTimeSeries
Performance v1

Same resource names (accounts/{id}/locations/{id}/…), same pagination, same field masks. Only the host changes. See the full coverage table — every method we replicate, what's on the roadmap, and what is out of scope. Call something we don't replicate and you get a 501 UNIMPLEMENTED naming the method, not a 404 you have to guess at.

Failure simulation

Test the failures you can't trigger in production

Rate limits, expired tokens, revoked access, and the field-validation errors Google only throws on a bad day. A dedicated Simulation console reshapes every quota per API family — exactly the tables you see in the Google Cloud console — arms auth failures, and forces any of Google's 74 location-write error codes. Each one comes back byte-for-byte, so your error branches run on command instead of by accident.

9
Quotas, shaped per API family
429
RESOURCE_EXHAUSTED
74
Location-patch ErrorCodes
401
Expired & revoked tokens
throttle one quota to test your retry loop
# Drop Business Info "Update Location per day" to 3 — the 4th patch 429s
$ curl -X POST .../control/v1/quota:set -d '{
    "quotas": { "businessInformation": { "updateLocationRequestsPerDay": 3 } } }'

{
  "error": {
    "code": 429,
    "status": "RESOURCE_EXHAUSTED",
    "message": "Quota exceeded for quota metric 'Update Location requests'...",
    "details": [{
      "@type": "type.googleapis.com/google.rpc.ErrorInfo",
      "reason": "RATE_LIMIT_EXCEEDED",
      "domain": "googleapis.com"
    }]
  }
}
force a location-write error your code never sees in dev
# Arm PIN_DROP_REQUIRED on the next PATCH /v1/locations/*
$ curl -X POST .../control/v1/locations:force-patch-error -d '{ "code": "PIN_DROP_REQUIRED" }'

{
  "error": {
    "code": 400,
    "status": "INVALID_ARGUMENT",
    "message": "Request contains an invalid argument.",
    "details": [{
      "@type": "type.googleapis.com/google.rpc.ErrorInfo",
      "reason": "PIN_DROP_REQUIRED",
      "domain": "mybusinessbusinessinformation.googleapis.com",
      "metadata": { "field_mask": "storefront_address" }
    }]
  }
}
expire a token to test your refresh path
# Kill the access token — the next call 401s, your refresh heals it
$ gbp-sandbox auth expire

{
  "error": {
    "code": 401,
    "status": "UNAUTHENTICATED",
    "message": "Request had invalid authentication credentials..."
  }
}

# Or revoke the refresh token, and test the re-consent path instead
$ gbp-sandbox auth revoke-refresh
Quota shaping — every family's limits, editable, enforced live
Error injection — 429, 401, faults, or a location-write error on demand
Auth failures — expire tokens, revoke refresh, force re-consent
GBP Changelog

Google changes categories without warning.
You'll know first.

We crawl every Google Business Profile category and attribute across 240+ countries, every day. When Google adds, renames, or removes one, it lands in the public changelog — so your integration never ships stale taxonomy and your clients' profiles never break silently.

4370
categories tracked
372
attributes tracked
243
countries covered

Don't want to poll? Pro includes real-time webhooks — an HMAC-signed POST to your endpoint the moment a change is detected. Be informed, never miss a change, keep every client's data fresh.

Pricing

Simple, developer-friendly pricing

Limits track your real scale — never how thoroughly you test. Start free, upgrade when it goes into CI.

Free

Move one environment off real Google and stop the pollution risk today.

$0/forever

No credit card required

Start building free
  • All core GBP-compatible endpointsSame paths, params, field masks & error envelopes
  • End-user OAuth consent flowTest “Sign in with Google” against the replica
  • 3 sandbox locationsEnough for multi-location review workflows
  • 1 isolated environmentDev, staging or CI — pick one
  • 25 reviews per locationEnough to page through nextPageToken end to end
  • Swap your integration in minutesDrop-in skill for Claude Code that finds your GBP calls, swaps hosts and credentials, and wires up test fixtures — no rewrite
  • Manual review & metric seedingFrom the dashboard
  • Basic performance metrics
  • 1 API credential
Most popular
Pro

Give dev, staging, and every CI job a clean, already-verified dataset.

$199/mo

billed monthly

Get Pro
  • Everything in Free, plus:
  • Reproduce Google's failure modes on demandForce a 429, expire or revoke a token, inject NOT_FOUND / PERMISSION_DENIED / eventual-consistency errors
  • 25 locations per environmentRun real multi-location review workflows
  • 10 isolated environmentsOne each for dev, staging & every CI job
  • 1,000 reviews per locationMulti-page review workflows
  • Programmatic seeding & reset (REST API & CLI)Wire fixtures straight into CI
  • Location groupsOrganize & move locations (locations.transfer)
  • Attribute & category editing
  • Realistic performance metricsSeed calls, direction requests, website clicks, Maps & Search impressions
  • Public, shareable Business Profile page
  • Real-time changelog webhooksSigned alerts when Google changes categories or attributes
  • Multiple API credentials & priority support
FAQ

Questions, answered

Is there a sandbox or test mode for the Google Business Profile API?

Google doesn't ship an official sandbox for the Business Profile API. GBP Sandbox is a drop-in replica — same paths, parameters, field masks and response shapes on a different host — so you can test your GBP integration end-to-end without touching production.

How do I test the GBP API without a verified Business Profile?

Point your existing client at the sandbox host with a sandbox credential. No Google approval, no verified listing, no quota request — create fake locations and seed reviews from the dashboard in minutes.

Is this affiliated with Google?

No. GBP Sandbox is an independent testing tool and is not affiliated with, endorsed by, or sponsored by Google. We replicate the public API contract so you can build against it safely.

Do I need Google API access to use it?

No — that's the whole point. There's no access request, no verified listing requirement, and no quota approval. Sign up and start making calls in minutes.

Can I use my existing client code?

Yes. Paths, query parameters, pagination tokens, field masks, and response shapes match Google's, so in most cases you only change the base URL and use a sandbox credential.

Which endpoints are supported?

Today: list locations, get attributes, list categories, update location, list reviews, reply to a review, and fetch performance metrics — across the same Google services. Posts and media are on the roadmap.

Is my data isolated from other users?

Yes. Every sandbox account is fully isolated, with its own locations, reviews, metrics, and credentials. Nothing is shared between tenants.

What happens if I cancel?

Your replica API access is disabled and your sandbox data is retained for a grace period, so you can pick up exactly where you left off if you resubscribe.

Community

Stuck on the GBP API? You're not the first.

The Business Profile API is under-documented and full of edge cases. Our forum is where developers compare notes, report what's broken, and shape what we build next.

Report a bug

Found a response that doesn't match Google? Tell us and we'll fix the replica — fidelity reports jump the queue.

Suggest a feature

Need an endpoint, a fault mode, or a seeding option we don't have yet? Post it — the roadmap is built from these threads.

Get GBP support

Quota limits, field masks, review replies, verification quirks — ask people who have already hit the same wall.

Free to join — no account required to read.

Start testing against Google Business Profile today

Spin up a sandbox in minutes. No Google approval required.