/api/v4/connected-accountsList connected accounts
Returns the Google and Facebook accounts connected to your Listings API account, with connection health and linked-location counts.
Parameters
Query
| Name | Type | Required | Description | Default |
|---|---|---|---|---|
| page | integer | optional | 1-based page number. | 1 |
| perPage | integer | optional | Records per page. | 20 |
| publisher | string | optional | Narrow to one publisher by account type: `GoogleAccount`, `FacebookAccount`, `AppleAccount`, `YelpAccount`, `TripadvisorAccount`, `LinkedinAccount`, `PinterestAccount`, or `TwitterAccount`. | — |
| status | string | optional | Narrow 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.
{ "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.
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.
curl -X GET 'https://listingsapi.com/api/v4/connected-accounts' \ -H "Authorization: API $LISTINGSAPI_KEY"