Skip to Content

Health Status

Pre-flight readiness check before a big send. Returns a structured list of every component (WABA, each phone number, each message template) with OK / LIMITED / BLOCKED state and the reason when not OK.

GET /api/v25.0/{WABA_ID}?fields=health_status Authorization: Bearer pk_live_<your-key>

Response — 200

{ "health_status": { "can_send_message": "AVAILABLE", "entities": [ { "entity_type": "BUSINESS", "id": "1144556677889900", "can_send_message": "AVAILABLE" }, { "entity_type": "WABA", "id": "115344761664057", "can_send_message": "AVAILABLE" }, { "entity_type": "PHONE_NUMBER", "id": "112269058640637", "can_send_message": "LIMITED", "errors": [ { "error_code": 130472, "error_description": "Quality rating is LOW", "possible_solution": "Improve message quality. Reduce marketing volume until quality returns to GREEN." } ] }, { "entity_type": "MESSAGE_TEMPLATE", "id": "964823735155832", "can_send_message": "BLOCKED", "errors": [ { "error_code": 135000, "error_description": "Template paused due to low quality", "possible_solution": "Edit the template and resubmit for review." } ] } ] }, "id": "115344761664057" }

can_send_message values

ValueMeaning
AVAILABLEComponent is healthy — sends will go through
LIMITEDComponent is partially throttled — sends work but may be slow or capped
BLOCKEDComponent cannot send — surface the errors list to your support team

Top-level vs entity-level

The top-level can_send_message is the worst state across all entities. If any phone number or template is BLOCKED, the top-level goes BLOCKED even if everything else is fine.

Common error codes

error_codeWhat it means
130472Phone-number quality rating is LOW or below
131045Phone-number not registered (call Register)
133010WABA suspended due to policy violation
135000Template paused for low quality — re-edit + re-submit
135003Template rejected at re-submission — review template guidelines
131008Required parameter missing in template body
131056Per-recipient marketing cap hit

Use cases

  • Before a big broadcast — check health on the WABA. If any phone number is LIMITED, route the send through a healthy one.
  • Template scheduling — run health every 30 minutes for templates you depend on. Pause your scheduler when a template flips to BLOCKED.
  • Quality dashboards — surface this directly in your customer’s panel; the possible_solution field is end-user-friendly.

cURL

curl -X GET \ "https://api.splashifypro.com/api/v25.0/$WABA_ID?fields=health_status" \ -H "Authorization: Bearer $SPLASHIFY_API_KEY"

Notes

  • Eventually consistent. Health updates ~15 minutes after a state change — don’t expect real-time signals here.
  • Cheap to call. Health is a read-side index Meta keeps warm; polling every 30s costs no quota.
  • Pair with webhooks. Meta also sends messaging_handovers and account_alerts webhooks for critical state changes — health is the snapshot, webhooks are the deltas.