---
title: "Search existing Google listings"
method: POST
path: "/v1/accounts/{accountId}/gmb-locations/search"
tags: ["Connect"]
---

# Search existing Google listings

`POST /v1/accounts/{accountId}/gmb-locations/search`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/accounts/{accountId}/gmb-locations/search`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/zernio/apis/zernio-api/docs/v1/accounts/:accountId/gmb-locations/search/post.ts> (a function with typed inputs; its response is checked against the schema)

Searches Google Maps for listings that match a business name or a partial location, so you can check whether the business already exists before creating a new listing.

Not location-scoped: works for a Google Business Profile account that has no location yet.

Send exactly one of `query` (free text) or `location` (a partial location with at least `title`). Google returns at most 10 matches and does not paginate.

`requestAdminRightsUri` is present only when the listing is already claimed; send the business owner there to request admin rights instead of creating a duplicate.

## Path parameters

- `accountId` string, required

## Request body

- object
  - `query` string: Free-text search (business name and address). Mutually exclusive with location.
  - `location` object: Partial Google Business Information location (e.g. title and storefrontAddress). Mutually exclusive with query.
    - `title` string, required
    - `storefrontAddress` object
  - `pageSize` integer: Maximum matches to return. Google defaults to 3.

## Response `200`

Matching Google listings

- object
  - `success` boolean
  - `accountId` string
  - `googleLocations` object[]
    - `name` string: Google location resource name, e.g. "googleLocations/ChIJ...".
    - `location` object: The matched location as Google returns it (title, storefrontAddress, categories, ...).
    - `requestAdminRightsUri` string: Present only when the listing is already claimed. Link to request admin rights.

## Other responses

- `400`: Invalid request (neither or both of query and location, pageSize out of range, wrong platform, or Google rejected a field)
- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403`: Read-only API key, or the key is not scoped to this account
- `404`: Resource not found

## Changes

- **2026-11-12** `081e9a361b7a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/accounts/:accountId/gmb-locations/search/post.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) - [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/e1617f0f422b?raw)
