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

List connection suggestions

Returns suggested matches between listingsAPI 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
accountIdstringoptionallistingsAPI account ID to scope suggestions to. Defaults to the account the API key belongs to.
filtersstringoptionalJSON-encoded filter object to narrow the suggestions.
sortBystringoptionalJSON-encoded sort object.
pageInfostringoptionalJSON-encoded pagination object (page / perPage).

Responses

200Paginated list of connection suggestions.
{
  "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 listingsAPI locations and Google Business Profile or Facebook listings detected by running match triggers on the connected account. Each record shows both the listingsAPI 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.

Pagination and rate limits. Page through results with the JSON-encoded pageInfo query parameter (for example pageInfo={"page":2,"perPage":50}) and watch pageInfo.hasNextPage. 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.

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