Gupshup WhatsApp API Virtual Sandbox
Send and manage messages through Gupshup APIs.
Gupshup WhatsApp Business API for sending WhatsApp session messages, template messages, raw/template-based messages, managing business profile details, and retrieving app templates.
Use this hosted sandbox to simulate Gupshup WhatsApp API APIs without authentication, API keys, or extra dependencies. Point your code or SDK to the Beeceptor base URL, preferably through an environment variable or feature flag, and switch back to the production API when ready.
This keeps your integration code consistent across local development, QA, demos, and production.
Use cases:
Use this service to integrate WhatsApp messaging into an application: send text, media, location, list, CTA, quick reply, catalog, and template messages; manage WhatsApp business profile metadata; block users; and fetch approved message templates.
General(19 operations)
POST
| Header Name | Example |
|---|---|
apikey* | "xvnwxxggh9vxxxxymu5vxx5iepxqx2zt" |
{
"block_users": [
{
"user": "919876543211"
},
{
"user": "919876543213"
},
{
"user": "919876543211"
},
{
"user": "919876543210"
}
],
"messaging_product": "whatsapp"
}{
"block_users": {
"added_users": [
{
"input": "919163805873",
"wa_id": "919263400873"
},
{
"input": "919163805873",
"wa_id": "919163400873"
},
{
"input": "919263805873",
"wa_id": "919263400873"
},
{
"input": "919163805873",
"wa_id": "919163400873"
}
]
},
"messaging_product": "whatsapp",
"status": "success"
}{
"block_users": {
"added_users": [
{
"input": "919163805873",
"wa_id": "919163400873"
},
{
"input": "919163805873",
"wa_id": "919163400873"
},
{
"input": "919163805873",
"wa_id": "919163400873"
}
],
"failed_users": [
{
"errors": [
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
},
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
},
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
}
],
"input": "919163805873",
"wa_id": "919163400873"
},
{
"errors": [
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
},
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
}
],
"input": "919163805873",
"wa_id": "919163400873"
},
{
"errors": [
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
},
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
},
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
},
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
}
],
"input": "919163805873",
"wa_id": "919163400873"
},
{
"errors": [
{
"code": "139100",
"error_data": {
"details": "User blocked"
},
"message": "Failed to block"
}
],
"input": "919163805873",
"wa_id": "919163400873"
}
]
},
"error": {
"code": 139100,
"error_data": {
"details": "User blocked"
},
"fbtrace_id": "ebb8315f-eabe-455e-baf4-94ff48039af7",
"message": "Failed to block",
"type": "OAuthException"
},
"messaging_product": "whatsapp"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"business": {
"about": "Antea viduo ait cognatus compello allatus cicuta aiunt stips.",
"addressLine1": "9054 Krajcik Glen",
"addressLine2": "Suite 491",
"altWebsite": "https://doting-morbidity.com/",
"city": "Port Naomistead",
"contactName": "Hugh Zboncak",
"contactNumber": "+19785789854",
"country": "Republic of Korea",
"createdOn": 1776926111,
"description": "Talus vigor ut claro cras pel bardus clarus stips. Tepidus autem strenuus quibusdam usus thymum. Sono tremo cotidie.",
"displayAddress": "156 Parker Way",
"email": "Russell_Schowalter-Cassin97@hotmail.com",
"emailVerified": false,
"hqRegion": "South Carolina",
"id": "8fab8b82-dfdb-4ee5-bf0f-dad2bc47dc03",
"modifiedOn": 1767950756,
"name": "Jenkins LLC",
"pinCode": "20340",
"preferredCountry": "Trinidad and Tobago",
"profileEmail": "Elza_Pouros@gmail.com",
"state": "Connecticut",
"tncAccepted": false,
"vertical": "Music",
"website": "https://rubbery-lotion.org"
},
"status": "error"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"about": {
"message": "Vulgaris autem eius libero clarus aut."
},
"status": "success"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"about": "Subito adstringo patruus appono somniculosus."
}{
"about": {
"message": "Incidunt ver colo magni."
},
"status": "success"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"profile": {
"addressLine1": "330 Verla Turnpike",
"addressLine2": "Apt. 476",
"city": "Fort Hailie",
"country": "Paraguay",
"desc": "Temporibus adficio aeger absorbeo volubilis appositus. Aeger delego verbum vita carpo occaecati sumptus unde terebro fugit. Subnecto pax audio impedit vis ultra sum spoliatio verto adhaero.",
"pinCode": "41890",
"profileEmail": "Edd_Pollich83@gmail.com",
"state": "South Dakota",
"vertical": "Beauty",
"website1": "https://pleasant-chiffonier.name",
"website2": "https://gifted-dress.biz/"
},
"status": "error"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"addLine1": "453 Filiberto Trafficway",
"addLine2": "Suite 246",
"city": "Novi",
"country": "Andorra",
"desc": "Sum coniuratio totidem capitulus sursum curso vulgivagus recusandae crastinus odit. Facilis bibo crebro avarus usque curto urbanus conforto. Defungo cruentus voluptatibus celebrer vix ullus caput venia sonitus curriculum.",
"pinCode": "05606",
"profileEmail": "Devin.Lang@gmail.com",
"state": "Connecticut",
"vertical": "Music",
"website1": "https://tender-director.name/",
"website2": "https://incomparable-reorganisation.info"
}{
"profile": {
"addressLine1": "32624 Runolfsdottir Mews",
"addressLine2": "Apt. 398",
"city": "Port Isaiashaven",
"country": "Guam",
"desc": "Terebro bos dolores turpis consectetur strues creo tactus cribro subseco. Cito corona delicate tum placeat varietas abbas usitas ambulo spargo. Verbera calamitas vae quae coma.",
"pinCode": "82293-4179",
"profileEmail": "Trent.Hettinger41@yahoo.com",
"state": "Maine",
"vertical": "Health",
"website1": "https://runny-mathematics.name/",
"website2": "https://whirlwind-lox.org"
},
"status": "error"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"message": "https://avatars.githubusercontent.com/u/33338704",
"status": "success"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"image": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgYmFzZVByb2ZpbGU9ImZ1bGwiIHdpZHRoPSIyNzY4IiBoZWlnaHQ9IjE0MDciPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IiM5N2ZmYTgiLz48dGV4dCB4PSIxMzg0IiB5PSI3MDMuNSIgZm9udC1zaXplPSIyMCIgYWxpZ25tZW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IndoaXRlIj4yNzY4eDE0MDc8L3RleHQ+PC9zdmc+"
}{
"message": "profile picture updated successfully",
"status": "success"
}GET
| Header Name | Example |
|---|---|
x-api-key | "{{x-api-key}}" |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.GET
| Header Name | Example |
|---|---|
x-api-key | "{{x-api-key}}" |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.POST
| Header Name | Example |
|---|---|
x-api-key | "{{x-api-key}}" |
{
"agent_number": "+919039692669",
"caller_id": "",
"customer_number": "+919999098057",
"k_number": "+918929761721"
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.GET
| Header Name | Example |
|---|---|
x-api-key | "{{x-api-key}}" |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.POST
| Header Name | Example |
|---|---|
x-api-key | "{{x-api-key}}" |
{
"country_code": "+91",
"email": "1agent2@gmail.com",
"first_name": "sakshi",
"last_name": "gupta",
"phone": "8982638105"
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.POST
| Header Name | Example |
|---|---|
apikey* | "culpa ut dolor aute" |
{
"channel": "sms",
"destination": "4483490885",
"message": {
"type": "video",
"video": {
"id": "crastinus-comptus-sequi",
"link": "http://link2.com"
}
},
"postbackTexts": [
{
"index": 0,
"text": "hello"
},
{
"index": 1,
"text": "hi"
}
],
"source": "1984283522",
"src.name": "Reynolds, Padberg and Rosenbaum",
"template": {
"id": "complectus-terminatio-subnecto",
"params": {
"0": "hi",
"1": "hello"
}
}
}{
"messageId": "359ed4b9-9068-490b-b038-b2510e724e82",
"status": "submitted"
}{
"message": "Invalid Destination",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}POST
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"channel": "email",
"destination": "4728885828",
"source": "2778291613",
"src.name": "Deckow and Sons",
"template": {
"id": "deporto-cedo-degenero",
"params": {
"0": "hi",
"1": "di3i7rs6js"
}
}
}{
"messageId": "21b9acd4-036b-4821-b22b-7b46617d3d0b",
"status": "success"
}{
"message": "Invalid Destination",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}GET
| Query Parameter Name | Example |
|---|---|
pageNo | 0 |
pageSize | 100 |
templateStatus | APPROVED |
templateCategory | MARKETING |
templateType | TEXT |
quality | GREEN |
languageCode | en |
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"status": "success",
"templates": [
{
"appId": "cebxx8x1-xxf6-406c-901x-3f78xxxx5ea",
"buttonSupported": "URL",
"category": "MARKETING",
"containerMeta": "{\"data\":\"Hi\"}",
"createdOn": 1781754475,
"data": "Hi",
"elementName": "event_test",
"externalId": "123",
"id": "312371e9-2771-463b-8cfd-cd8994b810ccf",
"internalCategory": 1,
"internalType": 1,
"languageCode": "en",
"languagePolicy": "deterministic",
"meta": "{\"example\":\"Hi\"}",
"modifiedOn": 1781754475,
"namespace": "6a54628a_7f29_45a7_80b1_46549f39062d",
"priority": 1,
"quality": "UNKNOWN",
"retry": 0,
"stage": "NONE",
"status": "APPROVED",
"templateType": "TEXT",
"vertical": "otp",
"wabaId": 12345
},
{
"appId": "cebxx8x1-xxf6-406c-901x-3f78xxxx5ea",
"buttonSupported": "URL",
"category": "MARKETING",
"containerMeta": "{\"data\":\"Hi\"}",
"createdOn": 1781754475,
"data": "Hi",
"elementName": "event_test",
"externalId": "123",
"id": "312371e9-2771-463b-8cfd-cd8994b810ccf",
"internalCategory": 1,
"internalType": 1,
"languageCode": "en",
"languagePolicy": "deterministic",
"meta": "{\"example\":\"Hi\"}",
"modifiedOn": 1781754475,
"namespace": "6a54628a_7f29_45a7_80b1_46549f39062d",
"priority": 1,
"quality": "UNKNOWN",
"retry": 0,
"stage": "NONE",
"status": "APPROVED",
"templateType": "TEXT",
"vertical": "otp",
"wabaId": 12345
},
{
"appId": "cebxx8x1-xxf6-406c-901x-3f78xxxx5ea",
"buttonSupported": "URL",
"category": "MARKETING",
"containerMeta": "{\"data\":\"Hi\"}",
"createdOn": 1781754475,
"data": "Hi",
"elementName": "event_test",
"externalId": "123",
"id": "312371e9-2771-463b-8cfd-cd8994b810ccf",
"internalCategory": 1,
"internalType": 1,
"languageCode": "en",
"languagePolicy": "deterministic",
"meta": "{\"example\":\"Hi\"}",
"modifiedOn": 1781754475,
"namespace": "6a54628a_7f29_45a7_80b1_46549f39062d",
"priority": 1,
"quality": "UNKNOWN",
"retry": 0,
"stage": "NONE",
"status": "APPROVED",
"templateType": "TEXT",
"vertical": "otp",
"wabaId": 12345
}
]
}{
"message": "Invalid template category: xyz",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"status": "success",
"template": {
"appId": "de9ae181-3b8b-4aeb-bbe1-f0ddb57027ab",
"buttonSupported": "URL",
"category": "MARKETING",
"containerMeta": "beneficium",
"createdOn": 1771652153,
"data": "Angulus adhuc urbs arbor antea turbo amet ab.",
"elementName": "payment_confirmation",
"externalId": "4",
"id": "d6d7f8b1-b485-4fcb-b1ec-a5aacb347351",
"internalCategory": 8,
"internalType": 2,
"languageCode": "ar",
"languagePolicy": "deterministic",
"meta": "{\"header\":\"Order Update\"}",
"modifiedOn": 1771391152,
"namespace": "eJ0yifSr_1TgUqpmAcGQkwsjSVl92",
"oldCategory": "NONE",
"priority": 3,
"quality": "YELLOW",
"retry": -29070175,
"stage": "PENDING_REVIEW",
"status": "PAUSED",
"templateType": "MEDIA",
"vertical": "account_update",
"wabaId": 75467770910683
}
}{
"message": "Missing required fields.",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}PUT
| Header Name | Example |
|---|---|
Authorization* | "y3qfwlcqhsnujsak4pm0yd3zbu" |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.GET
| Header Name | Example |
|---|---|
Authorization* | "y3qfwlcqhsnujsak4pm0yd3zbu" |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Send Message API(2 operations)
GET
| Query Parameter Name | Example |
|---|---|
?userid* | 20000XXXXX |
password* | XXXXXX |
send_to* | 919XXXXXXXXX |
msg* | Dear Abc, This is testing |
method* | SendMessage |
msg_type* | text |
format* | text |
auth_scheme* | plain |
v* | 1.1 |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.POST
{
"auth_scheme": "plain",
"format": "json",
"method": "sendMessage",
"msg": "Somniculosus ars audentia.",
"msg_type": "text",
"password": "PBKVHZe_nY1j",
"send_to": "+14116627597",
"userid": "Edwina.Hirthe95",
"v": 1.4
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Proxy Channel(5 operations)
GET
| Header Name | Example |
|---|---|
apikey | "<gupshup apikey>" |
{
"id": 1,
"proxyId": "#proxyconvomateapp",
"proxyLabel": "Channel Proxy",
"callbackUrl": "https://proxy.channel.io/callback"
}PUT
| Header Name | Example |
|---|---|
apikey | "<gupshup_apikey>" |
{
"callbackUrl": "https://gentle-pocket-watch.name/",
"id": "chirographum-taedium-tempora",
"name": "Ritchie and Sons"
}{
"id": 1,
"proxyId": "#proxyconvomateapp",
"proxyLabel": "Channel Proxy",
"callbackUrl": "https://proxy.channel.io/callback"
}POST
| Header Name | Example |
|---|---|
apikey | "<gupshup_apikey>" |
{
"callbackUrl": "https://filthy-accountability.info/",
"id": "confido-minima-animi",
"name": "Feeney - Langosh"
}{
"id": 1,
"proxyId": "#proxyconvomateapp",
"proxyLabel": "Channel Proxy",
"callbackUrl": "https://proxy.channel.io/callback"
}{
"status": "error",
"invalidConstraintInformation": [
{
"errorMessage": "{Value cannot be null or empty.}",
"fieldName": "proxyId",
"invalidValue": "null"
}
]
}DELETE
| Header Name | Example |
|---|---|
apikey* | "<gupshup apikey>" |
{
"id": 1,
"proxyId": "#proxyconvomateapp",
"proxyLabel": "Channel Proxy",
"callbackUrl": "https://proxy.channel.io/callback"
}{
"status": "error",
"message": "No proxy found for the given proxyId"
}POST
{
"type": "text",
"text": "<message to forward>",
"contextobj": {
"botname": "<demo bot id>",
"channeltype": "<channel>",
"contextid": "<user id on the channel>"
}
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Instagram Send Message API
POST
| Header Name | Example |
|---|---|
apikey | "{{API_KEY}}" |
Content-Type | "application/x-www-form-urlencoded" |
{
"context": "BYPDLFffUBgobXrOBkRJ",
"message": "Vociferor amiculum eaque."
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.Send message API
POST
| Header Name | Example |
|---|---|
Content-Type* | "application/x-www-form-urlencoded" |
apikey* | "092707e8296649XXXX94c0fXXX818ad" |
content-type* | "in ullamco ut Ut" |
{
"channel": "email",
"destination": 8363640520,
"disablePreview": true,
"encode": true,
"message": {
"caption": "Sample image",
"originalUrl": "https://www.buildquickbots.com/whatsapp/media/sample/jpg/sample01.jpg",
"previewUrl": "https://www.buildquickbots.com/whatsapp/media/sample/jpg/sample01.jpg",
"type": "image"
},
"source": 2814455412,
"src.name": "Lehner - Skiles"
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.{
"messageId": "626b49b1-9aae-41fa-af24-c612d7b4eb75",
"status": "submitted"
}CTA URL message
POST
| Header Name | Example |
|---|---|
apikey* | "61b3021c97214370b341f8baaae0xxxx" |
content-type* | "application/x-www-form-urlencoded" |
{
"destination": 7861087390,
"message": {
"caption": "Viscus animadverto crudelis aptus adflicto.",
"context": {
"msgId": "2b56b277-335a-48a5-9e5e-79f42221c7ed"
},
"id": "6424b880-022d-45c0-b3db-6ad9e4bbd19f",
"originalUrl": "https://loremflickr.com/496/260?lock=5336662120550880",
"previewUrl": "https://loremflickr.com/3375/244?lock=6837222583666627",
"type": "image"
},
"source": 4796129216,
"src.name": "Parisian - Murphy"
}{
"message": "Totus cupiditate adsum.",
"status": "submitted"
}{
"message": "Invalid App Details",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}{
"message": "Too Many Requests",
"status": "error"
}(5 operations)
POST
| Header Name | Example |
|---|---|
apikey* | "api_key" |
Content-Type* | "application/x-www-form-urlencoded" |
{
"doCheck": "true",
"modes": "DELETED",
"tag": "coepi",
"url": "https://wide-eyed-rubric.com/",
"version": 10
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.DELETE
| Header Name | Example |
|---|---|
apikey* | "api_key" |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.GET
| Header Name | Example |
|---|---|
apikey* | "api_key" |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.DELETE
| Header Name | Example |
|---|---|
apikey* | "api_key" |
Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.PUT
| Header Name | Example |
|---|---|
apikey* | "{{apikey}}" |
Content-Type* | "application/x-www-form-urlencoded" |
{
"active": true,
"modes": "READ",
"tag": "thermae",
"url": "https://damaged-nun.net/",
"version": 7
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.whatsappmessaginggupshupbusiness messagingtemplatessession messagesmedia messagesprofile managementchat api