Gowabox — WhatsApp API
Send WhatsApp messages, manage templates & media, and read delivery reports over a simple REST API. Every send endpoint also accepts the Meta Cloud API request shape, so existing Meta code works with just a base-URL + token change.
https://gowabox.com/api · Auth header: Authorization: Bearer <key> · Get an API key →. Your key is stored only in this browser for the “Try it” console.Authentication
All endpoints are authenticated with an API key sent as a Bearer token. Create a key in the Developer console. Every request is scoped to that key's account.
WABA / Numbers
Your connected WhatsApp Business numbers.
List numbers
Returns the WhatsApp numbers connected to your account (phone number id, WABA id, quality rating, messaging limit).
curl --request GET \
--url 'https://gowabox.com/api/v1/numbers' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json'
{
"data": [
{
"id": 12,
"name": "Acme Support",
"phone_number": "+15551234567",
"waba_id": "1029384756",
"quality_rating": "GREEN",
"messaging_limit": "TIER_1K",
"status": "connected"
}
]
}
Send session message
Free-form messages inside the 24-hour customer service window. Send text, media, location, reactions, contacts or interactive messages. Accepts both the simple shape and the Meta Cloud API shape.
Send text
Send a plain text message. Use the Meta-compatible path /api/{version}/{phone_number_id}/messages to target a specific number, or pass account_id.
{
"to": "15551234567",
"type": "text",
"text": "Hello from the API 👋"
}
curl --request POST \
--url 'https://gowabox.com/api/v1/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"to": "15551234567",
"type": "text",
"text": "Hello from the API 👋"
}'
{
"messaging_product": "whatsapp",
"contacts": [
{
"input": "15551234567",
"wa_id": "15551234567"
}
],
"messages": [
{
"id": "wamid.HBg…",
"message_status": "accepted"
}
],
"id": 8842,
"conversation_id": 301
}
Send text (Meta format) Meta Cloud API
Send a plain text message. Use the Meta-compatible path /api/{version}/{phone_number_id}/messages to target a specific number, or pass account_id. Same call in the Meta Cloud API shape — point existing Meta code here by swapping the base URL + token.
{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "text",
"text": {
"body": "Hello from the API 👋"
}
}
curl --request POST \
--url 'https://gowabox.com/api/v24.0/PHONE_NUMBER_ID/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "text",
"text": {
"body": "Hello from the API 👋"
}
}'
{
"messaging_product": "whatsapp",
"contacts": [
{
"input": "15551234567",
"wa_id": "15551234567"
}
],
"messages": [
{
"id": "wamid.HBg…",
"message_status": "accepted"
}
],
"id": 8842,
"conversation_id": 301
}
Send media (image / video / document / audio / sticker)
Send media by a library media_id, a Meta media id, or a public link.
{
"to": "15551234567",
"type": "image",
"media_id": 45,
"caption": "Our new catalogue"
}
curl --request POST \
--url 'https://gowabox.com/api/v1/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"to": "15551234567",
"type": "image",
"media_id": 45,
"caption": "Our new catalogue"
}'
{
"messaging_product": "whatsapp",
"messages": [
{
"id": "wamid.HBg…"
}
],
"id": 8843
}
Send media (image / video / document / audio / sticker) (Meta format) Meta Cloud API
Send media by a library media_id, a Meta media id, or a public link. Same call in the Meta Cloud API shape — point existing Meta code here by swapping the base URL + token.
{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "image",
"image": {
"link": "https://example.com/pic.jpg",
"caption": "Our new catalogue"
}
}
curl --request POST \
--url 'https://gowabox.com/api/v24.0/PHONE_NUMBER_ID/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "image",
"image": {
"link": "https://example.com/pic.jpg",
"caption": "Our new catalogue"
}
}'
{
"messaging_product": "whatsapp",
"messages": [
{
"id": "wamid.HBg…"
}
],
"id": 8843
}
Send location
Share a map location.
{
"to": "15551234567",
"type": "location",
"latitude": 19.076,
"longitude": 72.8777,
"name": "Our store",
"address": "Mumbai"
}
curl --request POST \
--url 'https://gowabox.com/api/v1/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"to": "15551234567",
"type": "location",
"latitude": 19.076,
"longitude": 72.8777,
"name": "Our store",
"address": "Mumbai"
}'
{
"messaging_product": "whatsapp",
"messages": [
{
"id": "wamid.HBg…"
}
]
}
Send location (Meta format) Meta Cloud API
Share a map location. Same call in the Meta Cloud API shape — point existing Meta code here by swapping the base URL + token.
{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "location",
"location": {
"latitude": 19.076,
"longitude": 72.8777,
"name": "Our store",
"address": "Mumbai"
}
}
curl --request POST \
--url 'https://gowabox.com/api/v24.0/PHONE_NUMBER_ID/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "location",
"location": {
"latitude": 19.076,
"longitude": 72.8777,
"name": "Our store",
"address": "Mumbai"
}
}'
{
"messaging_product": "whatsapp",
"messages": [
{
"id": "wamid.HBg…"
}
]
}
Send interactive (buttons / list) (Meta format) Meta Cloud API
Reply buttons or a list message. Same call in the Meta Cloud API shape — point existing Meta code here by swapping the base URL + token.
{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "interactive",
"interactive": {
"type": "button",
"body": {
"text": "Pick an option"
},
"action": {
"buttons": [
{
"type": "reply",
"reply": {
"id": "b1",
"title": "Track order"
}
},
{
"type": "reply",
"reply": {
"id": "b2",
"title": "Talk to agent"
}
}
]
}
}
}
curl --request POST \
--url 'https://gowabox.com/api/v24.0/PHONE_NUMBER_ID/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "interactive",
"interactive": {
"type": "button",
"body": {
"text": "Pick an option"
},
"action": {
"buttons": [
{
"type": "reply",
"reply": {
"id": "b1",
"title": "Track order"
}
},
{
"type": "reply",
"reply": {
"id": "b2",
"title": "Talk to agent"
}
}
]
}
}
}'
{
"messaging_product": "whatsapp",
"messages": [
{
"id": "wamid.HBg…"
}
]
}
Send reaction (Meta format) Meta Cloud API
React to a message you received (by its wamid). Same call in the Meta Cloud API shape — point existing Meta code here by swapping the base URL + token.
{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "reaction",
"reaction": {
"message_id": "wamid.HBg…",
"emoji": "👍"
}
}
curl --request POST \
--url 'https://gowabox.com/api/v24.0/PHONE_NUMBER_ID/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "reaction",
"reaction": {
"message_id": "wamid.HBg…",
"emoji": "👍"
}
}'
{
"messaging_product": "whatsapp",
"messages": [
{
"id": "wamid.HBg…"
}
]
}
Send template message
Start conversations outside the 24-hour window with an approved template. Pass body variables (and a header media, if the template has one).
Send template
Send an approved template. Simple: template name + variables[]. Meta: template.{name,language,components}.
{
"to": "15551234567",
"type": "template",
"template": "order_update",
"variables": [
"Rahul",
"#4821",
"shipped"
]
}
curl --request POST \
--url 'https://gowabox.com/api/v1/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"to": "15551234567",
"type": "template",
"template": "order_update",
"variables": [
"Rahul",
"#4821",
"shipped"
]
}'
{
"messaging_product": "whatsapp",
"messages": [
{
"id": "wamid.HBg…"
}
],
"id": 8844,
"cost": "₹0.78"
}
Send template (Meta format) Meta Cloud API
Send an approved template. Simple: template name + variables[]. Meta: template.{name,language,components}. Same call in the Meta Cloud API shape — point existing Meta code here by swapping the base URL + token.
{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "template",
"template": {
"name": "order_update",
"language": {
"code": "en_US"
},
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Rahul"
},
{
"type": "text",
"text": "#4821"
},
{
"type": "text",
"text": "shipped"
}
]
}
]
}
}
curl --request POST \
--url 'https://gowabox.com/api/v24.0/PHONE_NUMBER_ID/messages' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"messaging_product": "whatsapp",
"to": "15551234567",
"type": "template",
"template": {
"name": "order_update",
"language": {
"code": "en_US"
},
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Rahul"
},
{
"type": "text",
"text": "#4821"
},
{
"type": "text",
"text": "shipped"
}
]
}
]
}
}'
{
"messaging_product": "whatsapp",
"messages": [
{
"id": "wamid.HBg…"
}
],
"id": 8844,
"cost": "₹0.78"
}
Template management
List the approved, sendable templates on a number.
List templates
Approved + enabled templates you can send on the selected number.
| account_id | Target a specific number (optional). |
curl --request GET \
--url 'https://gowabox.com/api/v1/templates?account_id=' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json'
{
"data": [
{
"id": 5,
"name": "order_update",
"category": "utility",
"language": "en_US",
"status": "approved"
}
]
}
Media management
Upload media to get a media_id you can send, and resolve a media id to a temporary download URL (e.g. media received in a webhook).
Upload media
multipart/form-data with a "file" field. Returns a library id + Meta media_id usable in sends.
file=@/path/to/file.jpg (multipart/form-data)
curl --request POST \
--url 'https://gowabox.com/api/v1/media' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--form 'file=@/path/to/file.jpg'
{
"id": 45,
"media_id": "3820…",
"kind": "image"
}
Upload media (Meta format) Meta Cloud API
multipart/form-data with a "file" field. Returns a library id + Meta media_id usable in sends. Same call in the Meta Cloud API shape — point existing Meta code here by swapping the base URL + token.
file=@/path/to/file.jpg (multipart/form-data)
curl --request POST \
--url 'https://gowabox.com/api/v24.0/PHONE_NUMBER_ID/media' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--form 'file=@/path/to/file.jpg'
{
"id": 45,
"media_id": "3820…",
"kind": "image"
}
Get media URL from media id
{id} is a library id or a Meta media id (as received in a webhook). Returns a short-lived CDN URL.
curl --request GET \
--url 'https://gowabox.com/api/v1/media/{id}' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json'
{
"media_id": "3820…",
"url": "https://lookaside.fbsbx.com/…",
"mime_type": "image/jpeg",
"file_size": 84213
}
Contacts
Read and create contacts on a number.
List contacts
Saved contacts on the selected number.
| limit | 1–200, default 50. |
| offset | Pagination offset. |
| account_id | Target number (optional). |
curl --request GET \
--url 'https://gowabox.com/api/v1/contacts?limit=&offset=&account_id=' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json'
{
"data": [
{
"id": 900,
"wa_id": "15551234567",
"name": "Rahul",
"is_blocked": 0,
"last_message_at": "2026-07-10 09:12:00"
}
]
}
Create contact
Create (or fetch) a contact by number.
{
"number": "15551234567",
"name": "Rahul Sharma"
}
curl --request POST \
--url 'https://gowabox.com/api/v1/contacts' \
--header 'Authorization: YOUR_API_KEY' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"number": "15551234567",
"name": "Rahul Sharma"
}'
{
"id": 901,
"wa_id": "15551234567",
"name": "Rahul Sharma"
}
Delivery reports
Check the delivery status of a message you sent. Real-time statuses are also pushed to your webhook.
Get message status
{id} is the numeric message id returned when you sent it.
{
"id": 8844,
"direction": "out",
"type": "template",
"status": "delivered",
"wa_message_id": "wamid.HBg…",
"error": null,
"created_at": "2026-07-10 09:10:00"
}
© 2026 Gowabox · Built on the official WhatsApp Business Platform.