GET/api/v4/connected-accounts/{connectedAccountId}/connection-suggestions

List connection suggestions

Returns suggested matches between Listings API locations and Google Business Profile or Facebook listings for a connected account.

Requires an API key. See Authentication for header format and key rotation.

Parameters

Path

NameTypeRequiredDescription
connectedAccountIdstringrequiredUUID of the connected account to list suggestions for.

Query

NameTypeRequiredDescriptionDefault
pageintegeroptional1-based page number.1
perPageintegeroptionalRecords per page.20

Responses

200Paginated list of connection suggestions.
Response
{  "data": {    "connectionSuggestionsForAccount": {      "pageInfo": {        "hasNextPage": false,        "hasPreviousPage": false,        "totalPages": 1,        "totalRecords": 2      },      "records": [        {          "accountEmail": "contact@brightsmile-dental.com",          "accountType": "GMB",          "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5",          "locationId": "73415",          "matchedDataDatabaseId": "0d5e306f-0da0-46e3-929f-fd3c67ccd8cc",          "locationInfo": {            "name": "My Business",            "city": "Lincoln",            "stateIso": "NE"          },          "suggestedLocationInfo": {            "locationInfo": { "name": "My Business", "city": "Lincoln" }          }        }      ]    }  }}
401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.

Returns suggested pairings between Listings API locations and Google Business Profile or Facebook listings detected by running match triggers on the connected account. Each record shows both the Listings API location details and the matched publisher listing so an operator can compare them before confirming.

Suggestions are generated asynchronously by POST /connected-accounts/trigger-matches. If you have just connected an account, call trigger-matches first, otherwise records is empty and pageInfo.totalRecords is 0. (When run live against a freshly connected account with no matches yet, this endpoint returns {"data":{"connectionSuggestionsForAccount":{"pageInfo":{"hasNextPage":false,"hasPreviousPage":false,"totalPages":0,"totalRecords":0},"records":[]}}}.) The example above shows the shape of a populated record.

Use case: review-before-confirm workflow. After importing a client's Google account, poll this endpoint to render every suggested match in your own review UI. An operator approves the correct pairings, and you pass the approved record IDs to POST /connected-accounts/confirm-matches.

Identifying a record. A suggestion record has no id field. Its identifier is matchedDataDatabaseId, the primary key of the underlying match record; accountType tells you which kind of match record it is (GMB, FB, or APPLE). Confirm matches needs both values to build the id it takes, so keep the pair together when you stage suggestions for review.

Pagination and rate limits. Page with the flat page and perPage query parameters (for example ?page=2&perPage=50) and watch pageInfo.hasNextPage. There is no pageInfo, filters, sortBy, or accountId parameter: the connected account comes from the path, ordering is fixed to location info ascending, and anything else you send is ignored rather than rejected. This endpoint is rate-limited like other list endpoints; on a 429 back off and retry after the Retry-After header value rather than tightening your poll loop.

Request
curl -X GET 'https://listingsapi.com/api/v4/connected-accounts/<connectedAccountId>/connection-suggestions' \  -H "Authorization: API $LISTINGSAPI_KEY"