List connected mailboxes
const url = 'https://api.inboxcnx.com/v1/connections?status=initiated&provider=gmail&include=total';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.inboxcnx.com/v1/connections?status=initiated&provider=gmail&include=total' \ --header 'Authorization: Bearer <token>'Lists the connected mailboxes with the caller’s grants on each, newest first, so you can see which mailbox is healthy and which end user has to reconnect. Keyset pagination.
Requires the read:messages scope.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Opaque pagination cursor: a previous response’s nextCursor or prevCursor, passed back verbatim. A cursor issued under one sort order is rejected if reused with another.
Opaque pagination cursor: a previous response’s nextCursor or prevCursor, passed back verbatim. A cursor issued under one sort order is rejected if reused with another.
Page size, between 1 and 200. Default 50.
Page size, between 1 and 200. Default 50.
total adds the number of matching results, counted up to 10000.
total adds the number of matching results, counted up to 10000.
Responses
Section titled “Responses”A page of connections, each with the caller’s grants nested
object
object
ok, or what is wrong: error needs the mailbox owner (reauth_required: connect it again through POST /v1/connections/initiate; mailbox_unavailable: the mail provider refuses access, e.g. mail is disabled for the account), down and degraded are ours to fix. since is when the state began, where known. Null for a deleted connection, and for one whose grants are all revoked: it is no longer read for this application.
object
What this application asks of a mailbox beyond reading that the end user has not consented to: change_mail (flags, labels, moves), send_mail. The mailbox was connected before the access was requested, or the end user left it out at consent. Reading is unaffected. Connect it again through POST /v1/connections/initiate to ask for it. Empty when the consent is current, and for a connection this application no longer reads.
object
The grant’s own folders, or null when it follows the application’s.
The folders that apply: subscribedRoles, else the application’s.
Pass back as cursor for the next page. Null on the last page.
Pass back as cursor for the previous page. Null on the first page.
Present only when requested with include. exact is false once the count reaches 10000 (or the depth cap of a relevance search); count is then that cap.
object
Example
{ "data": [ { "id": "5e8d2a10-3c4b-4f6e-9a7d-1b2c3d4e5f60", "provider": "gmail", "accountEmail": "owner@example.com", "syncStatus": "active", "health": { "state": "ok", "reason": null, "since": null }, "missingAccess": [], "lastSyncedAt": "2026-10-23T07:58:12.000Z", "createdAt": "2026-10-01T06:00:00.000Z", "grants": [ { "id": "9b2f0c4e-6a1d-4f3b-8c55-0d7e2a91b3c4", "status": "active", "externalUserId": "crm-user-42", "paused": false, "blocked": false, "subscribedRoles": null, "subscribedLabels": [], "effectiveRoles": [ "inbox", "sent" ], "createdAt": "2026-10-01T06:00:00.000Z" } ] } ], "nextCursor": null, "prevCursor": null}Invalid query or malformed cursor
object
object
Example generated
{ "error": { "code": "example", "message": "example" }}The credential lacks the read:messages scope
object
object
Example generated
{ "error": { "code": "example", "message": "example" }}