/api/v4/locations/create/gmb-listingCreate a GMB listing for a location
Creates a new Google Business Profile listing for an existing Listings API location and links it to a connected Google account.
Parameters
Body
| Name | Type | Required | Description |
|---|---|---|---|
| input | object | required | Wrapper object. The entire request body must be nested under `input`. |
| input.locationId | string | required | Base64-encoded location Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`) of the location to create the Google listing for. |
| input.connectedAccountId | string | required | UUID of the connected Google account the new listing should be created under. Taken from `GET /connected-accounts`. |
Sample request
Ready-to-paste body. Replace placeholder IDs and values with yours.
{
"input": {
"locationId": "TG9jYXRpb246MTgwMDI4OQ==",
"connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5"
}
}Responses
200Request accepted. `success: true` means GMB listing creation was initiated.
{
"data": {
"createGmbListingForLocation": {
"clientMutationId": null,
"success": true,
"errors": null
}
}
}400Bad request, the body was not wrapped in `input` (GraphQL: `Variable "$input" of required type "CreateGmbListingForLocationInput!" was not provided`).
401Unauthenticated, missing or invalid API key.
Creates a brand-new Google Business Profile listing for a Listings API location and associates it with a connected Google account. Use this when the location does not yet have a Google listing at all, as opposed to connect-listing, which links a Listings API location to a listing that already exists in the Google account.
Request shape. The body must be wrapped in an input object with two required fields: locationId (the base64-encoded location Relay ID) and connectedAccountId (the Google account to create the listing under). Sending a flat, unwrapped body is rejected with an HTTP 400.
Creation is asynchronous: success: true means the request was accepted, not that the listing is instantly live. Google reviews new profiles before they publish.
Use case: provisioning Google presence for a net-new storefront. A client opens a new location that has no Google Business Profile yet. Create the Listings API location, connect the client's Google account, then call this endpoint with the location's ID and the connectedAccountId to have Listings API submit the new listing to Google under that account. Poll the location's listings afterward to watch it move from pending to verified.
The location must already carry valid business information (name, address, phone) before a listing can be created, and only one Google listing can exist per location. On failure errors explains why, typically the location is missing required fields, already has a Google listing, is archived, or the connected account is not active. Reconnect a stale account with the connect-google endpoint. Note that the endpoint currently returns success: true even when the connectedAccountId is not a real, connected Google account, so confirm the listing actually appears (via the location's listings) rather than relying on success alone.
curl -X POST 'https://listingsapi.com/api/v4/locations/create/gmb-listing' \
-H "Authorization: API $LISTINGSAPI_KEY" \
-H 'Content-Type: application/json' \
-d '{
"input": {
"locationId": "TG9jYXRpb246MTgwMDI4OQ==",
"connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5"
}
}'