Channel Status

Check the real-time connection health of WhatsApp, Instagram, and Messenger channels. For each channel this endpoint returns:

  • DB status — local configuration state (isActive, stored quality rating, ban state, token expiry, etc.)
  • Live status— result of a real-time probe to Meta's Graph API (phone number quality, WABA review, page info, token validity, permissions, etc.)
GET/v2.0/channels/status

Query Parameters

Query Parameters

ParameterTypeDescription
channelstringFilter to a specific channel. One of: "whatsapp", "instagram", "messenger". Omit to check all channels.
brandNumberstringNarrow results to one specific WhatsApp phone number / brand.

Live Status Values

liveStatusMeaning
connectedMeta API call succeeded — channel is healthy.
token_expiredAccess token has expired or been revoked (Meta error code 190).
permission_deniedApp does not have required permissions (Meta error code 10 / subcode 33). Usually means the account was unlinked.
not_configuredThe channel is not configured in the DB at all.
missing_credentialsChannel is marked as configured but is missing accessToken or account ID.
errorSome other Meta API error occurred — inspect the error object for details.
unknownCould not determine status.

Code Examples

curl -X GET "https://api.sendiee.com/v2.0/channels/status" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response — All channels healthy

{
  "success": true,
  "data": {
    "whatsapp": [
      {
        "db": {
          "businessName": "Acme Store",
          "brandNumber": "919876543210",
          "phoneNumberId": "112233445566778",
          "wabaId": "998877665544332",
          "isActive": true,
          "isVerified": true,
          "verificationStatus": "verified",
          "wabaReviewStatus": "APPROVED",
          "phoneQualityRating": "GREEN",
          "wabaBanState": null,
          "wabaBanDate": null,
          "messagingTier": "TIER_1K",
          "maxDailyConversations": 1000,
          "tokenExpiry": "2026-06-01T08:00:00.000Z"
        },
        "live": {
          "liveStatus": "connected",
          "phoneNumber": {
            "verified_name": "Acme Store",
            "display_phone_number": "+91 98765 43210",
            "quality_rating": "GREEN",
            "messaging_limit_tier": "TIER_1K",
            "platform_type": "CLOUD_API",
            "code_verification_status": "VERIFIED",
            "is_official_business_account": false,
            "account_mode": "LIVE",
            "name_status": "APPROVED",
            "status": "CONNECTED",
            "id": "112233445566778"
          },
          "phoneNumberError": null,
          "waba": {
            "id": "998877665544332",
            "name": "Acme Store WABA",
            "account_review_status": "APPROVED",
            "message_template_namespace": "abcdef_1234",
            "timezone_id": "Asia/Kolkata"
          },
          "wabaError": null
        }
      }
    ],
    "instagram": [
      {
        "db": {
          "businessName": "Acme Store",
          "brandNumber": "919876543210",
          "isConfigured": true,
          "isActive": true,
          "igAccountId": "17841400000111222",
          "igUsername": "acmestore",
          "connectedPageId": "100200300400500",
          "connectedPageName": "Acme Store Page",
          "tokenExpiry": "2026-06-01T08:00:00.000Z"
        },
        "live": {
          "liveStatus": "connected",
          "account": {
            "id": "17841400000111222",
            "name": "Acme Store",
            "username": "acmestore",
            "followers_count": 12500
          },
          "accountError": null,
          "connectedPage": {
            "id": "100200300400500",
            "name": "Acme Store Page"
          },
          "connectedPageError": null
        }
      }
    ],
    "messenger": [
      {
        "db": {
          "businessName": "Acme Store",
          "brandNumber": "919876543210",
          "isConfigured": true,
          "isActive": true,
          "pageId": "100200300400500",
          "pageName": "Acme Store Page",
          "tokenExpiry": "2026-06-01T08:00:00.000Z"
        },
        "live": {
          "liveStatus": "connected",
          "page": {
            "id": "100200300400500",
            "name": "Acme Store Page",
            "fan_count": 15000,
            "is_published": true
          },
          "pageError": null,
          "tokenDebug": {
            "app_id": "123456",
            "type": "PAGE",
            "is_valid": true,
            "scopes": [
              "pages_messaging",
              "pages_manage_metadata",
              "pages_read_engagement"
            ]
          },
          "tokenDebugError": null
        }
      }
    ]
  },
  "meta": {
    "accountsChecked": 1,
    "whatsappCount": 1,
    "instagramCount": 1,
    "messengerCount": 1
  }
}

Response — WhatsApp token expired

{
  "success": true,
  "data": {
    "whatsapp": [
      {
        "db": {
          "businessName": "Acme Store",
          "brandNumber": "919876543210",
          "isActive": true,
          "tokenExpiry": "2025-12-01T08:00:00.000Z"
        },
        "live": {
          "liveStatus": "token_expired",
          "phoneNumber": null,
          "phoneNumberError": {
            "httpStatus": 401,
            "metaErrorCode": 190,
            "metaErrorSubcode": 463,
            "metaErrorType": "OAuthException",
            "message": "Error validating access token: Session has expired."
          },
          "waba": null,
          "wabaError": null
        }
      }
    ]
  },
  "meta": {
    "accountsChecked": 1,
    "whatsappCount": 1,
    "instagramCount": 0,
    "messengerCount": 0
  }
}

Response — Account unlinked (permission denied)

{
  "success": true,
  "data": {
    "whatsapp": [
      {
        "db": {
          "businessName": "Acme Store",
          "brandNumber": "919876543210",
          "isActive": true
        },
        "live": {
          "liveStatus": "permission_denied",
          "phoneNumber": null,
          "phoneNumberError": {
            "httpStatus": 403,
            "metaErrorCode": 10,
            "metaErrorSubcode": 33,
            "metaErrorType": "OAuthException",
            "message": "(#10) Application does not have permission for this action"
          },
          "waba": null,
          "wabaError": null
        }
      }
    ]
  },
  "meta": {
    "accountsChecked": 1,
    "whatsappCount": 1,
    "instagramCount": 0,
    "messengerCount": 0
  }
}

WhatsApp Live Response Fields

Fields returned in live.phoneNumber (from Meta GET /{phone_number_id}):

FieldTypeDescription
verified_namestringThe verified business display name
display_phone_numberstringPhone number in display format
quality_ratingstringGREEN, YELLOW, or RED
messaging_limit_tierstringTIER_250, TIER_1K, TIER_10K, TIER_100K, UNLIMITED
platform_typestringCLOUD_API or ON_PREMISE
code_verification_statusstringCode verification status
is_official_business_accountbooleanWhether it has the green tick checkmark
account_modestringLIVE or SANDBOX
name_statusstringDisplay name review status
statusstringPhone number connection status

Try It

Try it — API Playground

Filter to a specific channel

Filter to a specific WhatsApp number