Skip to Content
API ReferenceWhatsAppOverview

WhatsApp API — Overview

Every WhatsApp Cloud API endpoint sits under /api/v25.0/{ID}/.... You authenticate with your Splashify partner API key; we handle the WhatsApp Business platform credentials on our side.

curl https://api.splashifypro.com/api/v25.0/$WABA_ID/phone_numbers \ -H "Authorization: Bearer $SPLASHIFY_API_KEY"

How ID ownership works

The first path segment after /api/v25.0/ is either a WABA ID, a phone-number ID, a flow ID, a template ID, or an ad account ID (prefixed act_…). We:

  1. Resolve which kind of ID it is via internal lookups.
  2. Confirm it belongs to a customer under your partner account.
  3. Forward the call to the WhatsApp Business platform on your behalf.

IDs that resolve to a different partner account return 403 — id does not belong to your account. IDs that don’t resolve return 404 — id not found.

Endpoint catalog

Account-level ({WABA_ID} as the first segment)

EndpointPage
GET /api/v25.0/{WABA_ID}/phone_numbersPhone Numbers
GET /api/v25.0/{WABA_ID}?fields=health_statusHealth Status
GET /api/v25.0/{WABA_ID}?fields=analytics.…Message Analytics
GET /api/v25.0/{WABA_ID}?fields=conversation_analytics.…Conversation Analytics
POST /api/v25.0/{WABA_ID}?is_enabled_for_insights=trueTemplate Analytics — enable
GET /api/v25.0/{WABA_ID}?fields=template_analytics?…Template Analytics — read
GET /api/v25.0/{WABA_ID}?fields=call_analytics.…Voice Calling — analytics
POST/GET /api/v25.0/{WABA_ID}/message_templatesMessage Templates
POST /api/v25.0/{WABA_ID}/message_templates/id/{TEMPLATE_ID}Message Templates — edit
GET /api/v25.0/{WABA_ID}/message_templates/id/{TEMPLATE_ID}Message Templates — get one
DELETE /api/v25.0/{WABA_ID}/message_templates?…Message Templates — delete
GET /api/v25.0/{WABA_ID}/message_template_previews?…Message Templates — previews
GET /api/v25.0/{TEMPLATE_ID}/compare?…Message Templates — compare
POST/GET /api/v25.0/{WABA_ID}/flowsFlows

Phone-level ({PHONE_NUMBER_ID} as the first segment)

EndpointPage
GET /api/v25.0/{PHONE_NUMBER_ID}?fields=status,…Phone Number Details
GET /api/v25.0/{PHONE_NUMBER_ID}?fields=whatsapp_business_manager_messaging_limit,messaging_limit_tierMessaging Limit
POST /api/v25.0/{PHONE_NUMBER_ID}/registerRegister Number + Update Display Name
POST /api/v25.0/{PHONE_NUMBER_ID}/request_code?code_method=SMS&language=en_USVerification Code
POST /api/v25.0/{PHONE_NUMBER_ID}/verify_codeVerification Code
POST /api/v25.0/{PHONE_NUMBER_ID}/messagesSend Messages / Mark as Read
POST /api/v25.0/{PHONE_NUMBER_ID}/marketing_messagesMarketing Messages
GET/POST /api/v25.0/{PHONE_NUMBER_ID}/whatsapp_business_profileBusiness Profile
POST /api/v25.0/{PHONE_NUMBER_ID}/mediaMedia — upload
POST /api/v25.0/{PHONE_NUMBER_ID}/media_handleMedia — handle (for templates / Flows)
GET /api/v25.0/{PHONE_NUMBER_ID}/media/{MEDIA_ID}Media — fetch URL
GET /api/v25.0/{PHONE_NUMBER_ID}/media?url=…Media — fetch bytes
GET/POST/DELETE /api/v25.0/{PHONE_NUMBER_ID}/message_qrdlsQR Codes
POST/GET /api/v25.0/{PHONE_NUMBER_ID}/conversational_automationConversational Components
GET/POST /api/v25.0/{PHONE_NUMBER_ID}/whatsapp_commerce_settingsCommerce
GET/POST /api/v25.0/{PHONE_NUMBER_ID}/settingsVoice Calling — settings
POST /api/v25.0/{PHONE_NUMBER_ID}/callsVoice Calling — initiate
GET /api/v25.0/{PHONE_NUMBER_ID}/call_permissions?user_wa_id=…Voice Calling — permissions
POST /api/v25.0/{PHONE_NUMBER_ID}/groupsGroups
POST/GET/DELETE /api/v25.0/{PHONE_NUMBER_ID}/block_usersBlock / Unblock

Flow node ({FLOW_ID} as the first segment)

EndpointPage
GET/POST /api/v25.0/{FLOW_ID}Flows — update / read
POST /api/v25.0/{FLOW_ID}/assetsFlows — upload JSON
POST /api/v25.0/{FLOW_ID}/publishFlows — publish
POST /api/v25.0/{FLOW_ID}/deprecateFlows — deprecate

CTWA / Ads Manager (act_{AD_ACCOUNT_ID} or {CAMPAIGN_ID}/{ADSET_ID}/{CREATIVE_ID}/{AD_ID} as the first segment)

EndpointPage
POST /api/v25.0/act_{AD_ACCOUNT_ID}/campaignsCTWA — 1. campaign
POST /api/v25.0/act_{AD_ACCOUNT_ID}/adsetsCTWA — 2. ad set
POST /api/v25.0/act_{AD_ACCOUNT_ID}/adcreativesCTWA — 3. creative
POST /api/v25.0/act_{AD_ACCOUNT_ID}/adsCTWA — 4. ad
POST /api/v25.0/{AD_ID}CTWA — 5. publish
GET /api/v25.0/{CAMPAIGN_ID | ADSET_ID | CREATIVE_ID | AD_ID}CTWA — read-back

Onboarding

EndpointPage
POST /api/v1/partner/customers/{customer_id}/whatsapp/tp-signupTP-Signup

Authentication

Authorization: Bearer pk_live_<your-key>

If WhatsApp isn’t enabled for your account yet, endpoints return 503. Contact support to enable.

Common errors

StatusBodyWhen
401{ "success": false, "message": "unauthorized" }Missing or invalid partner API key
403{ "success": false, "message": "id does not belong to your account" }First-segment ID belongs to a different partner’s customer
404{ "success": false, "message": "id not found" }First-segment ID isn’t on any partner’s roster
502{ "success": false, "message": "WhatsApp request failed. Try again shortly." }Temporary platform error — retry with jitter
503{ "success": false, "message": "WhatsApp integration is not configured for your account. Contact support." }WhatsApp not enabled for your account

WhatsApp Cloud API errors from Meta (4xx with their own code / error_subcode) pass through with their original status.