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.)
Designed for MCP / AI debugging
The response includes the raw Meta API error payload so an AI agent can diagnose exactly what is wrong with a channel without needing dashboard access.
GET/v2.0/channels/status
Query Parameters
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| channel | string | Filter to a specific channel. One of: "whatsapp", "instagram", "messenger". Omit to check all channels. |
| brandNumber | string | Narrow results to one specific WhatsApp phone number / brand. |
Live Status Values
| liveStatus | Meaning |
|---|---|
| connected | Meta API call succeeded — channel is healthy. |
| token_expired | Access token has expired or been revoked (Meta error code 190). |
| permission_denied | App does not have required permissions (Meta error code 10 / subcode 33). Usually means the account was unlinked. |
| not_configured | The channel is not configured in the DB at all. |
| missing_credentials | Channel is marked as configured but is missing accessToken or account ID. |
| error | Some other Meta API error occurred — inspect the error object for details. |
| unknown | Could 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}):
| Field | Type | Description |
|---|---|---|
| verified_name | string | The verified business display name |
| display_phone_number | string | Phone number in display format |
| quality_rating | string | GREEN, YELLOW, or RED |
| messaging_limit_tier | string | TIER_250, TIER_1K, TIER_10K, TIER_100K, UNLIMITED |
| platform_type | string | CLOUD_API or ON_PREMISE |
| code_verification_status | string | Code verification status |
| is_official_business_account | boolean | Whether it has the green tick checkmark |
| account_mode | string | LIVE or SANDBOX |
| name_status | string | Display name review status |
| status | string | Phone number connection status |
Try It
Try it — API Playground
Filter to a specific channel
Filter to a specific WhatsApp number