GET/api/v4/connected-accounts

List connected accounts

Returns the Google and Facebook accounts connected to your Listings API account, with connection health and linked-location counts.

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

Parameters

Query

NameTypeRequiredDescriptionDefault
pageintegeroptional1-based page number.1
perPageintegeroptionalRecords per page.20
publisherstringoptionalNarrow to one publisher by account type: `GoogleAccount`, `FacebookAccount`, `AppleAccount`, `YelpAccount`, `TripadvisorAccount`, `LinkedinAccount`, `PinterestAccount`, or `TwitterAccount`.—
statusstringoptionalNarrow to one connection status: `Connected`, `NotConnected`, or `ConnectionIssue`. Note the mixed case, and that these are not the values the response's own `status` field uses.—

Responses

200List of connected accounts with pagination metadata.
Response
{  "data": {    "connectedAccountsInfo": {      "pageInfo": {        "hasNextPage": false,        "hasPreviousPage": false,        "totalPages": 1,        "totalRecords": 1      },      "records": [        {          "accountId": "62670",          "clientName": "owner@brightsmile-dental.com",          "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5",          "connectedAccountType": "GoogleAccount",          "connectedLocationsCount": 0,          "connectivityIssue": null,          "email": "owner@brightsmile-dental.com",          "lastFetchMatchesRequestedAt": "2026-07-06 21:43:07 UTC",          "remarks": null,          "requestMatches": false,          "requestMatchesStatus": "MATCH_COMPLETED",          "status": "CONNECTED"        }      ]    }  }}
401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.

Returns every Google Business Profile and Facebook Pages account authorized to connect with your Listings API account. Each record carries the connection health (status, connectivityIssue), how many locations are linked (connectedLocationsCount), and the state of the last match fetch (requestMatchesStatus).

Use case: audit connection health before a sync. Run this at the top of a nightly job to find accounts whose credentials have lapsed. Any record with a non-null connectivityIssue or a status other than CONNECTED needs the customer to re-authorize through the connect flow; skip those so you do not waste a trigger-matches call on a dead credential.

Use case: resolve a connectedAccountId for downstream calls. The trigger-matches, fetch-listings, folders, and details endpoints all key off connectedAccountId. List the accounts, pick the one whose email matches the customer, and reuse its connectedAccountId.

Pagination and filtering use plain, flat query parameters, not JSON: page, perPage, publisher, and status. There is no pageInfo, filters, or sort parameter, and no way to change the ordering: results are always sorted by account email, ascending. Anything else you send is ignored rather than rejected, so a JSON pageInfo silently returns page 1.

Shell
curl -s 'https://listingsapi.com/api/v4/connected-accounts?page=1&perPage=20&publisher=GoogleAccount&status=Connected' \  -H "Authorization: API $LISTINGSAPI_KEY"

The status filter and the status field do not share a vocabulary. The filter takes Connected, NotConnected, or ConnectionIssue; the status on each returned record is CONNECTED, MATCH_IN_PROGRESS, or CONNECTIVITY_ISSUE. Feeding a record's own status back in as the filter is an invalid enum value and returns a 400.

Read pageInfo.hasNextPage and pageInfo.totalPages in the response to decide whether to fetch another page. This endpoint counts against the account rate limit, a 429 includes a Retry-After header.

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