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": "919876543213"
},
{
"user": "919876543214"
},
{
"user": "919876543214"
},
{
"user": "919876543212"
}
],
"messaging_product": "whatsapp"
}{
"block_users": {
"added_users": [
{
"input": "919263805873",
"wa_id": "919163400873"
},
{
"input": "919163805873",
"wa_id": "919263400873"
},
{
"input": "919263805873",
"wa_id": "919163400873"
}
]
},
"messaging_product": "whatsapp",
"status": "success"
}{
"block_users": {
"added_users": [
{
"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"
},
{
"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"
},
{
"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": "db2b4ee4-8484-46ff-b729-0132f24b44a8",
"message": "Failed to block",
"type": "OAuthException"
},
"messaging_product": "whatsapp"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"business": {
"about": "Vox amicitia verumtamen ocer arma apto decerno.",
"addressLine1": "24429 Jackson Avenue",
"addressLine2": "Suite 870",
"altWebsite": "https://cruel-elver.net/",
"city": "East Dallin",
"contactName": "Ray Hintz DVM",
"contactNumber": "+14509109782",
"country": "France",
"createdOn": 1775029265,
"description": "Stultus thymum velociter tres aveho congregatio. Cicuta cariosus absum tantum vae aeternus crebro pariatur. Antepono temeritas et depopulo caelestis molestiae suppellex depopulo.",
"displayAddress": "80186 Freddie Mountains",
"email": "Domenick99@gmail.com",
"emailVerified": false,
"hqRegion": "Arkansas",
"id": "7e4a0310-3e8d-44ad-a1e4-1f06c378c424",
"modifiedOn": 1702292576,
"name": "Grant - Bogan",
"pinCode": "99703-6254",
"preferredCountry": "Syrian Arab Republic",
"profileEmail": "Orion.Macejkovic@hotmail.com",
"state": "Rhode Island",
"tncAccepted": true,
"vertical": "Clothing",
"website": "https://needy-seal.info"
},
"status": "success"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"about": {
"message": "Pauci capillus harum."
},
"status": "error"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"about": "Abutor ater substantia abduco in aiunt."
}{
"about": {
"message": "Thorax adsidue socius vilitas."
},
"status": "error"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"profile": {
"addressLine1": "61031 Anderson Islands",
"addressLine2": "Apt. 528",
"city": "Rennerport",
"country": "Sudan",
"desc": "Angelus vilitas cultellus. Bestia thymbra ustilo suffoco vomito templum stabilis adeptio tremo causa. Capillus caritas crebro accommodo timor saepe doloremque charisma uredo.",
"pinCode": "43849",
"profileEmail": "Imogene72@yahoo.com",
"state": "Nebraska",
"vertical": "Kids",
"website1": "https://brown-lifestyle.info",
"website2": "https://candid-linseed.org/"
},
"status": "success"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"addLine1": "76903 N Walnut Street",
"addLine2": "Apt. 929",
"city": "Pagacworth",
"country": "Antigua and Barbuda",
"desc": "Quos sordeo cognomen virga currus vado. Veritas aro sodalitas vigor creptio cumque dapifer. Saepe allatus auctus communis admitto apto quos cavus ex votum.",
"pinCode": "58813-9092",
"profileEmail": "Lisa99@gmail.com",
"state": "Nevada",
"vertical": "Health",
"website1": "https://uncommon-meadow.biz/",
"website2": "https://stained-haversack.com"
}{
"profile": {
"addressLine1": "5238 Schroeder Plain",
"addressLine2": "Suite 414",
"city": "East Dayanaland",
"country": "Niue",
"desc": "Quisquam vito commodi cresco. Cultura sub tantillus coma. Libero voco convoco utor tergum ancilla absque deduco cumque demergo.",
"pinCode": "93546-4159",
"profileEmail": "Rodger_Kautzer@hotmail.com",
"state": "Indiana",
"vertical": "Garden",
"website1": "https://creative-colonialism.org/",
"website2": "https://teeming-hexagon.info/"
},
"status": "error"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"message": "https://avatars.githubusercontent.com/u/68194780",
"status": "success"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"image": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgYmFzZVByb2ZpbGU9ImZ1bGwiIHdpZHRoPSIxMzYxIiBoZWlnaHQ9IjkxOSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0iI2U4ZGZjYyIvPjx0ZXh0IHg9IjY4MC41IiB5PSI0NTkuNSIgZm9udC1zaXplPSIyMCIgYWxpZ25tZW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IndoaXRlIj4xMzYxeDkxOTwvdGV4dD48L3N2Zz4="
}{
"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* | "do aliquip" |
{
"channel": "sms",
"destination": "8968560894",
"postbackTexts": [
{
"index": 1,
"text": "hi"
},
{
"index": 0,
"text": "hello"
}
],
"source": "1981427428",
"src.name": "Raynor - Kirlin",
"template": {
"id": "talus-aliquid-condico",
"params": {
"0": "hi"
}
}
}{
"messageId": "0a4c245e-ef0f-41a4-a3df-d4506b0cd001",
"status": "submitted"
}{
"message": "Invalid Destination",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}POST
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"channel": "sms",
"destination": "9706542996",
"source": "4115941361",
"src.name": "Schuppe, Mraz and Ratke",
"template": {
"id": "certus-ager-cohaero",
"mpm": {
"sections": [
{
"products": [
"p1",
"p2"
],
"title": "Products"
},
{
"products": [
"p2",
"p1"
],
"title": "Products"
}
]
},
"params": {
"0": "hi",
"1": "di3i7rs6js"
}
}
}{
"messageId": "b9da5d42-28d1-4d62-803d-dd073edb59d5",
"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": "aac6d3f0-1c62-4a6e-a3aa-19aa64b9e5fe",
"buttonSupported": "URL",
"category": "MARKETING",
"containerMeta": "cariosus",
"createdOn": 1736614820,
"data": "Thalassinus depono saepe civis tener venio delego.",
"elementName": "promo_offer",
"externalId": "7",
"id": "039ad7ff-1e6a-4239-8d81-a500fd3d8a84",
"internalCategory": 6,
"internalType": 2,
"languageCode": "fr",
"languagePolicy": "deterministic",
"meta": "{\"button\":\"Visit Site\"}",
"modifiedOn": 1774062012,
"namespace": "APgk0s3JhFnd3C1pkmMOq",
"oldCategory": "MARKETING",
"priority": 7,
"quality": "YELLOW",
"retry": 46295952,
"stage": "DRAFT",
"status": "REJECTED",
"templateType": "INTERACTIVE",
"vertical": "transactional",
"wabaId": 76086760697000
}
}{
"message": "Bad request parameters.",
"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": "Termes carcer accusator vulariter crur patior truculenter basium comedo.",
"msg_type": "text",
"password": "ALVg7gYlKjjH",
"send_to": "+14387883995",
"userid": "Allene_Hintz",
"v": 1.6
}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://well-made-management.org",
"id": "trans-uberrime-versus",
"name": "Crist - Oberbrunner"
}{
"id": 1,
"proxyId": "#proxyconvomateapp",
"proxyLabel": "Channel Proxy",
"callbackUrl": "https://proxy.channel.io/callback"
}POST
| Header Name | Example |
|---|---|
apikey | "<gupshup_apikey>" |
{
"callbackUrl": "https://kosher-jump.name/",
"id": "angulus-blandior-cohibeo",
"name": "Fritsch Inc"
}{
"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": "n8eYV1hBr9ewGK5AMGnY",
"message": "Usus nulla bellum solio veritatis vindico voluptate tunc acies culpo."
}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* | "magna in culpa labore et" |
apikey* | "deserunt reprehenderit ad" |
content-type* | "proident enim laborum" |
{}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.{
"messageId": "3a476b77-99d7-4dd8-8197-cbb1acadd0e5",
"status": "submitted"
}CTA URL message
POST
| Header Name | Example |
|---|---|
apikey* | "61b3021c97214370b341f8baaae0xxxx" |
content-type* | "application/x-www-form-urlencoded" |
{
"destination": 3089060129,
"message": {
"caption": "Volup curvo statim vito cavus.",
"context": {
"msgId": "0b98321d-19a0-4668-aa5d-74a369986334"
},
"id": "bb1c813c-e0bf-421a-9a03-efeaefb14006",
"originalUrl": "https://loremflickr.com/217/3211?lock=1241314788539123",
"previewUrl": "https://loremflickr.com/3328/3038?lock=2852626487915538",
"type": "image"
},
"source": 4745119719,
"src.name": "Schumm LLC"
}{
"messageId": "9f618c1c-802b-4fa7-8dc2-9cb5ee06d994",
"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": "false",
"modes": "DELIVERED",
"tag": "demitto",
"url": "https://able-handle.net",
"version": 5
}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": "DELETED",
"tag": "amor",
"url": "https://distinct-stump.info/",
"version": 6
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.whatsappmessaginggupshupbusiness messagingtemplatessession messagesmedia messagesprofile managementchat api