PostEverywhere Account Health Reference
Check whether a connected social account is currently usable (token alive, no reconnection required, recent publish history) before publishing.
Tells you whether a connected social account is currently usable for publishing: token alive, OAuth grant still valid, no recent terminal failures. Call this BEFORE a critical publish so you can surface a "reconnect needed" prompt instead of letting a publish fail.
Check whether an account can still publish: GET /v1/accounts/:id/health
curl https://app.posteverywhere.ai/api/v1/accounts/$ACCOUNT_ID/health \
-H "Authorization: Bearer $POSTEVERYWHERE_API_KEY"
Read-only. Requires read scope.
What the health response tells you
{
"data": {
"account_id": 5356,
"platform": "instagram",
"account_name": "taxrefundonspot.com.au",
"platform_account_id": "17841451231344189",
"status": "healthy", // healthy | warning | broken
"can_post": true, // boolean — short-circuit for client code
"reasons": [], // empty when healthy; reason codes otherwise
"is_active": true,
"needs_reconnection": false,
"needs_reconnection_since": null,
"token": {
"expires_at": "2026-07-15T...",
"last_refresh": "2026-06-10T...",
"expired": false,
"expiring_soon": false // true if expires within 7 days
},
"activity": {
"last_published_at": "2026-06-11T05:42:17Z",
"failures_last_7d": 2,
"permanent_failures_last_7d": 0,
"queued_count": 12
},
"connected_at": "2025-11-01T..."
},
"error": null,
"meta": { "request_id": "a1b2c3d4", "timestamp": "2026-06-11T09:55:12.341Z" }
}
The three health verdicts and what each means
The status field gives a single answer to "should my client trust this account?":
| Status | can_post |
What it means |
|---|---|---|
healthy |
true |
Token alive, no recent terminal failures. Publish normally. |
warning |
true |
Account works but watch out: token expires soon OR several recent permanent failures. |
broken |
false |
Don't publish. Either the account is inactive, the token expired, or needs_reconnection is set. User must reconnect. |
Why an account is unhealthy: the reason codes
| Code | Triggers |
|---|---|
account_inactive |
is_active = false |
needs_reconnection |
needs_reconnection_since is set (token detected dead) |
token_expired |
token.expires_at is in the past |
token_expiring_soon |
token.expires_at is within 7 days |
recent_permanent_failures |
≥3 permanent failures in last 7 days |
The first matching reason determines status (broken > warning > healthy).
Checking account health before a scheduled post
// Before publishing, check all selected accounts.
const checks = await Promise.all(
accountIds.map(id => client.accounts.health(id))
);
const broken = checks.filter(c => !c.can_post);
if (broken.length > 0) {
showToast(
`Some accounts need attention: ${broken.map(b => b.account_name).join(', ')}`
);
return; // Don't proceed.
}
await client.posts.create({ content, account_ids: accountIds });
Related: connect and reconnect accounts · the account.reconnect_needed event · post and destination counts · account error codes
Full reference: GET /v1/accounts/:id/health.