GMB Everywhere APIapp.gmbeverywhere.com ↗
Search Google Business Profile categories, retrieve recommended services, and fetch metadata like monthly search volume via the GMB Everywhere Category Tool API.
What is the GMB Everywhere API?
The GMB Everywhere Category Tool API provides 3 endpoints for working with Google Business Profile (GBP) categories. Use search_categories to find valid category names by keyword, get_category_services to retrieve the list of services Google recommends for a given category, and get_category_info to pull metadata including monthly search volume and a plain-text description — all without building or maintaining a GBP category database yourself.
curl -X GET 'https://api.parse.bot/scraper/d91ee190-887b-4064-8af1-14d1cb9489c0/search_categories?limit=5&query=restaurant' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace app-gmbeverywhere-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.gbp_category_services_api import GBPCategories, Category, CategoryServices
client = GBPCategories()
# Search for plumber-related categories
for category in client.categories.search(query="plumber"):
print(category.name, category.search_count, category.description)
# Get recommended services for a specific category
plumber = client.category("Plumber")
services_info = plumber.services()
print(services_info.category, services_info.services_count)
for service in services_info.services:
print(service)
Search GBP categories by keyword. Returns categories whose names contain the query string (case-insensitive). The full category corpus (~4000 entries) is searched server-side; results are capped by `limit`.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of categories to return. |
| queryrequired | string | Search term to filter categories by name (e.g. 'restaurant', 'plumber', 'dentist'). |
{
"type": "object",
"fields": {
"query": "string — the search term used",
"total": "integer — total number of matching categories",
"categories": "array of category name strings matching the query"
},
"sample": {
"data": {
"query": "restaurant",
"total": 411,
"categories": [
"Acaraje restaurant",
"Afghan restaurant",
"African restaurant",
"Algerian restaurant",
"Alsace restaurant"
]
},
"status": "success"
}
}About the GMB Everywhere API
Endpoints and What They Return
The search_categories endpoint accepts a query string and an optional limit integer. It returns categories (an array of matching category name strings), a total count of all matches, and the original query — useful for validating that a business type exists as a recognized GBP category before doing further lookups.
Category Services and Metadata
Once you have an exact category name, pass it to get_category_services to retrieve services (an array of service name strings that Google associates with that category), along with description, search_count (monthly search volume as a string), and services_count. The category field in the response confirms the matched name, which matters when your input is a lowercase or mixed-case variant. The same category input can also go to get_category_info if you only need the description and search_count without pulling the full services list.
Practical Notes
All category name matching is case-insensitive across all three endpoints, so "Plumber", "plumber", and "PLUMBER" resolve identically. The recommended workflow is to call search_categories first to confirm the exact canonical spelling of a category, then pass that exact name to get_category_services or get_category_info. The search_count field reflects monthly search volume data maintained by GMB Everywhere's category dataset and is returned as a string, so treat it as a display value rather than a numeric field in calculations.
The GMB Everywhere API is a managed, monitored endpoint for app.gmbeverywhere.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when app.gmbeverywhere.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official app.gmbeverywhere.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Automate GBP profile setup by looking up the correct category name and its recommended services before publishing.
- Build a category suggestion widget that queries
search_categoriesas a user types a business type. - Audit existing GBP listings by comparing assigned services against the
servicesarray returned byget_category_services. - Prioritize local SEO efforts by ranking category options using the
search_countmonthly search volume field. - Populate a business directory with canonical GBP category descriptions pulled from
get_category_info. - Validate that a client's chosen GBP category exists before submitting profile changes programmatically.
- Generate service menu suggestions for a new business by feeding its category into
get_category_services.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does GMB Everywhere have an official developer API?+
What does `search_categories` return when no categories match the query?+
search_categories returns a total of 0 and an empty categories array. The original query string is echoed back in the response, which is useful for logging or debugging failed lookups. The limit parameter only caps results when matches exist.Is the `search_count` field a number I can sort or filter by?+
search_count field is returned as a string, not an integer or float. It reflects the monthly search volume figure shown in GMB Everywhere's category tool. If you need numeric sorting, you will need to parse or cast it on the client side, and be aware the value may include formatting characters.Does the API return competitor or citation data for a category?+
search_categories), recommended services and metadata (get_category_services), and standalone metadata (get_category_info). Competitor listings, citation sources, and ranking data are not part of this API. You can fork it on Parse and revise to add an endpoint that targets those data points if your workflow requires them.Can I retrieve a full list of all GBP categories without a search keyword?+
search_categories endpoint requires a query string — there is no wildcard or browse-all parameter currently exposed. You can fork it on Parse and revise to add a paginated endpoint that returns all categories without filtering.