Works with all AI agents

Connect your AI agent

Choose your assistant and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

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.