---
title: "Check accounts health"
method: GET
path: "/v1/accounts/health"
tags: ["Accounts"]
---

# Check accounts health

`GET /v1/accounts/health`

Returns health status of all connected accounts including token validity, permissions, and issues needing attention.

## Query parameters

- `profileId` string
- `platform` 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp'
- `status` 'healthy' | 'warning' | 'error'

## Response `200`

Account health summary

- object
  - `summary` object
    - `total` integer — Total number of accounts
    - `healthy` integer — Number of healthy accounts
    - `warning` integer — Number of accounts with warnings
    - `error` integer — Number of accounts with errors
    - `needsReconnect` integer — Number of accounts needing reconnection
  - `accounts` object[]
    - `accountId` string
    - `platform` string
    - `username` string
    - `displayName` string
    - `profileId` string
    - `status` 'healthy' | 'warning' | 'error'
    - `canPost` boolean
    - `canFetchAnalytics` boolean
    - `tokenValid` boolean
    - `tokenExpiresAt` string, date-time
    - `needsReconnect` boolean
    - `issues` string[]
    - `messagingRestriction` object, nullable — Observed from Meta's own error subcodes on our own sends (2534122, 1893063, 2534029), not a live probe. Set on the first refused send and cleared when a later send succeeds, so it lags reality by one send in each direction.
      - `subcode` integer
      - `message` string
      - `firstSeenAt` string, date-time
      - `lastSeenAt` string, date-time

## Other responses

- `400` — Invalid request
- `401` — Unauthorized

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 1 info
  - added the optional property `details/budgetScope` to the response with the `400` status
- **2026-09-15** `0dba7d004d75` — 2 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaScope` to the response with the `400` status
- **2026-09-04** `2d81890d21d5` — 1 info
  - added the optional property `accounts/items/messagingRestriction` to the response with the `200` status

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/accounts/health/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/a0d8f21b5abe?raw)
