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": "919876543212"
}
],
"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"
}
],
"input": "919163805873",
"wa_id": "919163400873"
}
]
},
"error": {
"code": 139100,
"error_data": {
"details": "User blocked"
},
"fbtrace_id": "b5eb8cb4-ff87-44af-90f1-c92289b68c86",
"message": "Failed to block",
"type": "OAuthException"
},
"messaging_product": "whatsapp"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"business": {
"about": "Vorago nemo vulgaris contego testimonium placeat cultellus.",
"addressLine1": "3331 Tremblay Circle",
"addressLine2": "Suite 286",
"altWebsite": "https://stiff-precedent.com/",
"city": "South Ward",
"contactName": "Dewey Moen",
"contactNumber": "+19194829811",
"country": "Mali",
"createdOn": 1774518783,
"description": "Solvo aduro antepono dedico officiis fugit utpote. Talus nulla tenax ascisco ducimus magni vicinus conqueror. Pel stipes acerbitas bonus termes.",
"displayAddress": "44706 Mohr Mall",
"email": "Keaton15@yahoo.com",
"emailVerified": true,
"hqRegion": "Rhode Island",
"id": "29d5d7c4-5224-4374-bf0f-92e766e67ce0",
"modifiedOn": 1760857460,
"name": "Dare, Moore and Hamill",
"pinCode": "27301",
"preferredCountry": "Algeria",
"profileEmail": "Ubaldo41@yahoo.com",
"state": "Utah",
"tncAccepted": true,
"vertical": "Movies",
"website": "https://aware-instruction.org/"
},
"status": "error"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"about": {
"message": "Arto vivo amita."
},
"status": "success"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"about": "Tergum decumbo cultura ademptio curatio vitae."
}{
"about": {
"message": "Somnus testimonium succurro vehemens damno ratione capio."
},
"status": "error"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"profile": {
"addressLine1": "450 Jaquan Walks",
"addressLine2": "Suite 513",
"city": "Turnerburgh",
"country": "Guatemala",
"desc": "Absum reiciendis nisi via accedo carbo auctus concedo benigne. Consequatur vindico pel copia id voluptate. Vulgaris tredecim vociferor demergo aeger sunt.",
"pinCode": "32637-9508",
"profileEmail": "Rosemarie24@hotmail.com",
"state": "Washington",
"vertical": "Movies",
"website1": "https://glaring-guidance.biz",
"website2": "https://dental-pants.org"
},
"status": "error"
}PUT
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"addLine1": "17056 Torphy Isle",
"addLine2": "Apt. 740",
"city": "Dejuanside",
"country": "French Polynesia",
"desc": "Repellendus balbus animus. Artificiose comparo urbs tabella. Carmen demo velut bibo vae tergeo correptius suasoria amissio.",
"pinCode": "31312-8815",
"profileEmail": "Henri.Lubowitz@hotmail.com",
"state": "New Jersey",
"vertical": "Shoes",
"website1": "https://meager-sunbeam.org/",
"website2": "https://frugal-resource.name"
}{
"profile": {
"addressLine1": "826 Harrison Street",
"addressLine2": "Apt. 131",
"city": "Lake Helga",
"country": "South Sudan",
"desc": "At quis comedo traho tam totam deprimo acies comedo. Contra corporis mollitia utrimque triduana acies unus atrocitas. Vita valde confero qui candidus reiciendis.",
"pinCode": "30709-8681",
"profileEmail": "Damian.Morissette71@gmail.com",
"state": "Kansas",
"vertical": "Tools",
"website1": "https://amused-freckle.net/",
"website2": "https://nifty-fork.org/"
},
"status": "success"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"message": "https://avatars.githubusercontent.com/u/58603497",
"status": "error"
}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%222639%22%20height%3D%22705%22%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22%23eb3abe%22%2F%3E%3Ctext%20x%3D%221319.5%22%20y%3D%22352.5%22%20font-size%3D%2220%22%20alignment-baseline%3D%22middle%22%20text-anchor%3D%22middle%22%20fill%3D%22white%22%3E2639x705%3C%2Ftext%3E%3C%2Fsvg%3E"
}{
"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* | "in dolor ullamco tempor" |
{
"channel": "sms",
"destination": "5716983051",
"message": {
"document": {
"filename": "filthy_seemingly_yowza.shtml",
"id": "vomer-thorax-cogito",
"link": "http://link2.com"
},
"type": "document"
},
"postbackTexts": [
{
"index": 0,
"text": "hi"
},
{
"index": 1,
"text": "hi"
}
],
"source": "6418561369",
"src.name": "Klein - Thompson",
"template": {
"id": "xiphias-nostrum-arbor",
"params": {
"0": "hi",
"1": "hello"
}
}
}{
"messageId": "61013fc0-3c84-4011-8298-314947c80835",
"status": "success"
}{
"message": "Invalid Destination",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}POST
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"channel": "sms",
"destination": "5242067855",
"source": "6491257126",
"src.name": "McCullough Inc",
"template": {
"id": "cariosus-optio-illum",
"params": {
"0": "hi",
"1": "di3i7rs6js"
}
}
}{
"messageId": "5f0dfecf-5722-4863-91cf-543214bdb701",
"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
}
]
}{
"message": "Invalid template category: xyz",
"status": "error"
}{
"message": "Authentication Failed",
"status": "error"
}GET
| Header Name | Example |
|---|---|
apikey* | "2xxc4x4xx2c94xxxc2f9xx9d43xxxx8a" |
{
"status": "success",
"template": {
"appId": "de264934-d47a-4742-af22-31e6da6a2b7f",
"buttonSupported": "URL",
"category": "MARKETING",
"containerMeta": "tabella",
"createdOn": 1754577595,
"data": "Demonstro sordeo animus solio atrox in cultura confugo.",
"elementName": "survey_request",
"externalId": "6",
"id": "ca58082a-5724-4817-be4e-2aa9b9f38351",
"internalCategory": 3,
"internalType": 1,
"languageCode": "pt",
"languagePolicy": "deterministic",
"meta": "{\"body\":\"Hello, how can we help?\"}",
"modifiedOn": 1771516412,
"namespace": "HQ9bT1yzQtwXL5B7nRH67BQVX2",
"oldCategory": "AUTHENTICATION",
"priority": 2,
"quality": "RED",
"retry": -35694809,
"stage": "REVIEWED",
"status": "REJECTED",
"templateType": "INTERACTIVE",
"vertical": "transactional",
"wabaId": 69010417721187
}
}{
"message": "Bad request parameters.",
"status": "error"
}{
"message": "Invalid API key",
"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": "Validus cervus eius aeger agnitio sursum crux vero umquam canto.",
"msg_type": "text",
"password": "OGL1xJLRJ3cN",
"send_to": "+16483015537",
"userid": "Ronny_Cartwright10",
"v": 1.2
}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://rapid-transparency.org",
"id": "cognomen-velit-tunc",
"name": "Simonis, Goldner and Adams"
}{
"id": 1,
"proxyId": "#proxyconvomateapp",
"proxyLabel": "Channel Proxy",
"callbackUrl": "https://proxy.channel.io/callback"
}POST
| Header Name | Example |
|---|---|
apikey | "<gupshup_apikey>" |
{
"callbackUrl": "https://drab-recommendation.net/",
"id": "apparatus-spiritus-pecco",
"name": "Larkin - Rice"
}{
"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": "5TJzDUUnz9UZ49Xj1Wux",
"message": "Tristis amo vinculum dolore tutamen aeger recusandae tamisium asperiores compello."
}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* | "occaecat sint Lorem" |
{
"channel": "email",
"destination": 1672250769,
"disablePreview": true,
"encode": false,
"message": {
"filename": "Sample file",
"type": "file",
"url": "https://www.buildquickbots.com/whatsapp/media/sample/pdf/sample01.pdf"
},
"source": 8666033136,
"src.name": "Reichert - O'Hara"
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.{
"messageId": "096a487a-4934-474c-ba2d-2b78de606349",
"status": "submitted"
}CTA URL message
POST
| Header Name | Example |
|---|---|
apikey* | "61b3021c97214370b341f8baaae0xxxx" |
content-type* | "application/x-www-form-urlencoded" |
{
"destination": 9719779714,
"message": {
"body": "Corporis valde conturbo sustineo aqua. Vivo alo constans tibi demens clarus solus. Thermae sapiente varius acsi tametsi cruciamentum.",
"display_text": "alo",
"footer": "Auxilium temptatio spiculum coniuratio.",
"header": {
"type": "url",
"video": {
"link": "https://crushing-tooth.com"
}
},
"type": "url",
"url": "https://sinful-igloo.info/"
},
"source": 9334361448
}{
"message": "Sum vinitor angulus harum.",
"status": "submitted"
}{
"message": "Invalid Destination",
"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": "calcar",
"url": "https://colossal-secrecy.info",
"version": 4
}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": "subiungo",
"url": "https://mysterious-basket.net",
"version": 10
}Missing schema or example in the OpenAPI spec.
Update the definition and recreate the mock server.whatsappmessaginggupshupbusiness messagingtemplatessession messagesmedia messagesprofile managementchat api