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": "919876543214"
},
{
"user": "919876543211"
}
],
"messaging_product": "whatsapp"
}{
"block_users": {
"added_users": [
{
"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"
}
],
"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"
}
],
"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"
},
{
"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": "2b5fa552-d5ab-46f2-9928-9f4897d7d1bc",
"message": "Failed to block",
"type": "OAuthException"
},
"messaging_product": "whatsapp"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"business": {
"about": "Spero tutamen necessitatibus abeo vicinus vitium tertius compello.",
"addressLine1": "801 Fourth Avenue",
"addressLine2": "Suite 549",
"altWebsite": "https://feline-oil.com",
"city": "East Sterlingstead",
"contactName": "Mrs. Alicia Grady",
"contactNumber": "+16668676909",
"country": "South Africa",
"createdOn": 1777913938,
"description": "Eveniet natus ver aranea deleo vinitor tactus. Tracto ager cervus ventito ubi viduo cognatus. Super vinculum vergo concedo casus nisi.",
"displayAddress": "19769 Gloucester Road",
"email": "Osborne47@yahoo.com",
"emailVerified": true,
"hqRegion": "Pennsylvania",
"id": "a6d32b0d-214f-4a68-b3df-14c2e4a09027",
"modifiedOn": 1738936302,
"name": "Johnston Inc",
"pinCode": "58657-0990",
"preferredCountry": "Belarus",
"profileEmail": "Caden52@gmail.com",
"state": "Arizona",
"tncAccepted": false,
"vertical": "Automotive",
"website": "https://magnificent-parsnip.net"
},
"status": "success"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"about": {
"message": "Arceo victoria pecco."
},
"status": "error"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"about": "Inflammatio debitis sulum labore vaco adsuesco trepide."
}{
"about": {
"message": "Adipisci tollo ademptio sublime exercitationem talio bellum."
},
"status": "success"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"profile": {
"addressLine1": "96964 Kassulke Flat",
"addressLine2": "Suite 450",
"city": "West Lorna",
"country": "Uzbekistan",
"desc": "Articulus depopulo tres. Bellum thesaurus illo. Terga arto deleo terror circumvenio vinum carcer textilis.",
"pinCode": "11734",
"profileEmail": "Sister_Johnston@yahoo.com",
"state": "West Virginia",
"vertical": "Shoes",
"website1": "https://long-puritan.com",
"website2": "https://front-vein.com/"
},
"status": "error"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"addLine1": "907 Colleen Mill",
"addLine2": "Suite 542",
"city": "New Scotty",
"country": "Republic of Korea",
"desc": "Tumultus asporto delectus comprehendo. Vomer sub apostolus dens amiculum concido arbor titulus carmen. Anser id deserunt capitulus reiciendis tamdiu ater.",
"pinCode": "48296",
"profileEmail": "Millie_Adams69@gmail.com",
"state": "Arizona",
"vertical": "Movies",
"website1": "https://wonderful-consistency.com/",
"website2": "https://bony-pronoun.name/"
}{
"profile": {
"addressLine1": "5621 Smith Divide",
"addressLine2": "Apt. 505",
"city": "Cliftonborough",
"country": "Equatorial Guinea",
"desc": "Ulterius usus deinde. Crebro deduco tum audax. Terreo accusamus tyrannus deficio atque cras cribro apud.",
"pinCode": "48916",
"profileEmail": "Kareem.Conn@hotmail.com",
"state": "Alaska",
"vertical": "Games",
"website1": "https://fatherly-nerve.name",
"website2": "https://minor-coin.info"
},
"status": "success"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"message": "https://cdn.jsdelivr.net/gh/faker-js/assets-person-portrait/female/512/2.jpg",
"status": "success"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"image": "data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20baseProfile%3D%22full%22%20width%3D%222426%22%20height%3D%221578%22%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22%23c7f65e%22%2F%3E%3Ctext%20x%3D%221213%22%20y%3D%22789%22%20font-size%3D%2220%22%20alignment-baseline%3D%22middle%22%20text-anchor%3D%22middle%22%20fill%3D%22white%22%3E2426x1578%3C%2Ftext%3E%3C%2Fsvg%3E"
}{
"message": "profile picture updated successfully",
"status": "error"
}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* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"channel": "sms",
"destination": "9781766059",
"message": {
"document": {
"filename": "pro_whoa_when.m2v",
"id": "alveus-quod-minus",
"link": "http://link1.com"
},
"type": "document"
},
"postbackTexts": [
{
"index": 0,
"text": "hi"
},
{
"index": 1,
"text": "hello"
},
{
"index": 0,
"text": "hi"
},
{
"index": 1,
"text": "hello"
},
{
"index": 1,
"text": "hello"
}
],
"source": "7328746137",
"src.name": "Blanda and Sons",
"template": {
"id": "copiose-conventus-itaque",
"params": {
"0": "hi",
"1": "hello"
}
}
}{
"messageId": "bf962fd0-f2b5-4e76-bb3e-4ec3a7ab85ed",
"status": "submitted"
}{
"message": "Invalid Destination",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}POST
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"channel": "whatsapp",
"destination": "8212160656",
"source": "5061448636",
"src.name": "Lind Group",
"template": {
"id": "repellendus-cultura-coniecto",
"mpm": {
"sections": [
{
"products": [
"p2",
"p1"
],
"title": "Products"
}
]
},
"params": {
"0": "hi",
"1": "di3i7rs6js"
}
}
}{
"messageId": "3dd469d5-14a9-49d4-a50c-60dd9db1acf7",
"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
},
{
"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": "141b8cbc-2481-4f25-a9c6-2cd6853caa61",
"buttonSupported": "URL",
"category": "MARKETING",
"containerMeta": "comis",
"createdOn": 1732584007,
"data": "Tametsi canonicus arbor.",
"elementName": "order_update",
"externalId": "2",
"id": "1de7d761-3f7c-4221-8c45-3e22838202a7",
"internalCategory": 9,
"internalType": 1,
"languageCode": "hi",
"languagePolicy": "fallback",
"meta": "{\"body\":\"Hello, how can we help?\"}",
"modifiedOn": 1773928948,
"namespace": "YdfNf3Uh_JyAV37x6RCirXIyV-G",
"oldCategory": "NONE",
"priority": 1,
"quality": "YELLOW",
"retry": 29318693,
"stage": "DRAFT",
"status": "PENDING",
"templateType": "MEDIA",
"vertical": "account_update",
"wabaId": 51392625540434
}
}{
"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": "Beatus vilicus capillus pax aggredior adamo.",
"msg_type": "text",
"password": "o3S6d1Fk_CKb",
"send_to": "+18408976593",
"userid": "Tyrese42",
"v": 1.8
}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://considerate-label.org/",
"id": "demens-acidus-consectetur",
"name": "Bashirian, Konopelski and O'Connell"
}{
"id": 1,
"proxyId": "#proxyconvomateapp",
"proxyLabel": "Channel Proxy",
"callbackUrl": "https://proxy.channel.io/callback"
}POST
| Header Name | Example |
|---|---|
apikey | "<gupshup_apikey>" |
{
"callbackUrl": "https://old-accompanist.info",
"id": "pel-desolo-absconditus",
"name": "Lubowitz, Nader and Franey"
}{
"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": "hpoRA7gsvs6UQQNQELEe",
"message": "Cresco error cunctatio audax cometes nemo viscus aeternus."
}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* | "non culpa in laborum adipisicing" |
apikey* | "in labore do dolor" |
content-type* | "aliqua irure" |
{
"disablePreview": false
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.{
"messageId": "719c6124-d239-46a0-9421-d5c94d006e72",
"status": "submitted"
}CTA URL message
POST
| Header Name | Example |
|---|---|
apikey* | "61b3021c97214370b341f8baaae0xxxx" |
content-type* | "application/x-www-form-urlencoded" |
{
"destination": 9491616004,
"message": {
"address": "97415 Stan Dale",
"latitude": "tempor fugiat nostrud qui",
"longitude": "non",
"name": "East Honolulu",
"type": "location"
},
"source": 8132866888,
"src.name": "O'Hara, Kovacek and Schowalter"
}{
"messageId": "457dad39-93f0-4992-8407-1a37533a8b9a",
"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": "READ",
"tag": "viridis",
"url": "https://poor-merit.com",
"version": 1
}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": "advenio",
"url": "https://smooth-cook.com",
"version": 1
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.whatsappmessaginggupshupbusiness messagingtemplatessession messagesmedia messagesprofile managementchat api