Works with all AI agents

Connect your AI agent

Choose your AI agent 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.