Autowa API Reference
Selamat datang di dokumentasi API Autowa. API kami memungkinkan Anda untuk mengintegrasikan layanan WhatsApp Gateway ke dalam aplikasi Anda dengan mudah. Anda dapat mengirim pesan teks, gambar, dokumen, dan menerima webhooks.
Gunakan URL dasar berikut untuk semua endpoint API:
Create Device
Api Docs Creating Device / Whatsapp Account. Endpoint ini digunakan untuk mendaftarkan perangkat atau akun WhatsApp baru.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | User API Key |
| namakunwa Yes | string | Device Name / Whatsapp Account Name |
| sender Yes | string | Sender ID / WhatsApp Number. Use Country Code |
| urlwebhook No | string | Webhook URL for incoming message callbacks |
{
"api_key": "1234567890",
"namakunwa": "Sales Device",
"sender": "628973134240",
"urlwebhook": "https://yourdomain.com/webhook"
}
{
"status": true,
"msg": "Device created successfully!"
}
Generate QR API
Generate and check WhatsApp device QR connection state.
Generate a WhatsApp QR Code for a device or check the latest connection state of the device. The same endpoint can be called again after scanning the QR Code.
Request Body (JSON If POST)
| Parameter | Type | Required | Description |
|---|---|---|---|
| device | string | Yes | WhatsApp device number including country code. Example: 628xxxxxxxxxx |
| api_key | string | Yes | Your AutoWA API Key |
| force | boolean | No | If true and the device does not exist, AutoWA will try to create the device before generating the QR Code, subject to account and device limits. |
{
"device": "628xxxxxxxxxx",
"api_key": "YOUR_API_KEY",
"force": true
}
// QR Code generated successfully. // IMPORTANT: // status:false does NOT mean an error when state is "qrcode". // It means the device is not connected yet and is waiting to be scanned. { "status": false, "state": "qrcode", "connected": false, "token": "628xxxxxxxxxx", "qrcode": "data:image/png;base64,...", "message": "Scan this QR code with your WhatsApp", "msg": "Scan this QR code with your WhatsApp" } // "qrcode" contains a complete data:image/png;base64 URL. // // Do NOT determine success only from the "status" field. // For Generate QR integrations, check "state" and "connected". // // state = "qrcode" // connected = false // => QR Code is ready and must be scanned. // // After the QR Code is scanned, call the SAME endpoint again // using the same device and API Key to get the latest state. // // Direct Socket.IO access is NOT required just to generate // or display this QR Code.
Disconnect Device
Api Docs Disconnecting device. Endpoint ini digunakan untuk mengeluarkan (log out) sesi perangkat WhatsApp.
Parameters
| Parameter | Type | Description |
|---|---|---|
| sender Yes | string | Device you want log out |
| api_key Yes | string | API Key |
{
"api_key": "123456789",
"sender": "6285260xxxxx"
}
{
"status": true,
"message": "device disconnected "
}
Delete Device
Api Docs Deleteing device. Endpoint ini digunakan untuk menghapus perangkat WhatsApp dari sistem secara permanen.
Parameters
| Parameter | Type | Description |
|---|---|---|
| sender Yes | string | Device you want delete |
| api_key Yes | string | API Key |
{
"api_key": "123456789",
"sender": "6281222xxxxxx"
}
{
"status": true,
"message": "Device deleted"
}
Device Info
Api Docs Geting Device Information. Endpoint ini digunakan untuk mengambil detail konfigurasi perangkat WhatsApp.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| number Yes | string | any number ex 62888xxxx |
{
"api_key": "1234567890",
"number": "6285260xxxxx"
}
{
"status": true,
"info": [
{
"id": 1,
"user_id": 1,
"body": "6285260xxxxx",
"webhook": null,
"status": "Disconnect",
"created_at": "2024-08-16T11:07:27.000000Z",
"updated_at": "2024-08-16T11:07:27.000000Z",
"message_sent": 0,
"chatgpt": null,
"typebot": 0,
"reject_call": 0,
"reject_message": null,
"can_read_message": 0,
"reply_when": "Personal",
"chatgpt_name": null,
"chatgpt_api": null,
"gemini_name": null,
"gemini_api": null,
"claude_name": null,
"claude_api": null,
"webhook_read": 0,
"webhook_reject_call": 0,
"webhook_typing": 0,
"bot_typing": 0
}
]
}
User Info
Api Docs Geting User Information. Endpoint ini memberikan informasi detail mengenai akun/tenant Anda, termasuk batas kuota device.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| username Yes | string | The username must not contain symbols |
{
"api_key": "1234567890",
"username": "nonfisik"
}
{
"status": true,
"info": {
"id": 1,
"username": "nonfisik",
"email": "abcd@xx.com",
"email_verified_at": null,
"api_key": "ORtg0LwKMZoadhXuwDYg40frCkfaul",
"chunk_blast": 0,
"level": "admin",
"status": "active",
"limit_device": 10,
"active_subscription": "active",
"subscription_expired": "2024-09-14 23:11:31",
"created_at": "2024-08-15T16:11:31.000000Z",
"updated_at": "2024-08-15T16:11:31.000000Z"
}
}
Send Text Message
Api Docs Sending Text Messages. Endpoint ini digunakan untuk mengirim pesan teks biasa ke nomor WhatsApp yang dituju.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| number Yes | string | Recipient number ex 72888xxxx | 62888xxxx |
| message Yes | string | Message to be sent |
| footer No | string | Footer under message |
| msgid No | string | Quoted message ID to reply to |
| full No | number | Show full response from WhatsApp (1 = enabled) |
{
"api_key": "1234567890",
"sender": "628973134240",
"number": "6285260xxxxx",
"message": "Hello World",
"footer": "Sent via AutoWA vGateway"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Media Message
Api Docs Sending Media Messages. Gunakan endpoint ini untuk mengirim file media berserta caption.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| number Yes | string | Recipient number ex 72888xxxx | 62888xxxx |
| media_type Yes | string | Allow: image, video, audio, document |
| caption No | string | Caption/message |
| footer No | string | Footer under message |
| url Yes | string | Direct URL of media (not Google Drive, Dropbox, etc.) |
| msgid No | string | Quoted message ID to reply to |
| full No | number | Show full response from WhatsApp |
{
"api_key": "1234567890",
"sender": "628973134240",
"number": "6285260xxxxx",
"media_type": "image",
"caption": "Hello World",
"footer": "Sent via mpwa",
"url": "https://example.com/image.jpg"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Product Carousel
Send 2 to 10 swipeable product cards in one WhatsApp message.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Connected sender number |
| number Yes | string/array | Recipient number(s) |
| catalog_carousel.body No | string | Main description displayed above the cards |
| catalog_carousel.cards Yes | array | 2 to 10 cards |
| cards[].image Yes | URL | Public JPG, PNG, or WebP URL |
| cards[].description Yes | string | Card description |
| cards[].footer No | string | Optional footer at the bottom of each card |
| cards[].buttons Yes | array | 1 or 2 buttons: url, reply, list, call, or copy |
| buttons[].value | string | Conditional: Required for URL, Call, Copy. Omit for Reply and List. |
| buttons[].list | object | Conditional: Open List displays the available options. |
{
"api_key": "YOUR_API_KEY",
"sender": "628973134240",
"number": "6285260xxxxx",
"catalog_carousel": {
"body": "Choose the product you need",
"cards": [
{
"image": "https://example.com/product-1.jpg",
"description": "Premium Coffee Beans\nFreshly roasted",
"footer": "Free delivery today",
"buttons": [
{"type":"url", "text":"Shop Now", "value":"https://example.com/products/1"},
{
"type":"list",
"text":"Choose Variant",
"list": {
"sections":[{"title":"Sizes","rows":[
{"title":"250 gram","value":"coffee_250"},
{"title":"500 gram","value":"coffee_500"}
]}]
}
}
]
},
{
"image": "https://example.com/product-2.jpg",
"description": "Cold Brew Bundle",
"footer": "Ready to ship",
"buttons": [
{"type":"url", "text":"Shop Now", "value":"https://example.com/products/2"},
{
"type":"list",
"text":"Choose Bundle",
"list": {
"sections":[{"title":"Bundles","rows":[
{"title":"Starter Bundle","value":"brew_starter"},
{"title":"Family Bundle","value":"brew_family"}
]}]
}
}
]
}
]
},
"full": 1
}
Send Button Interactive
Send a WhatsApp Interactive Button message with up to four buttons and an optional image.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API key. |
| sender Yes | string | Connected WhatsApp sender number. |
| number Yes | string | Recipient number in international format without +. |
| message Yes | string | Message text or image caption. |
| footer No | string | Footer text. |
| image No | string | Public HTTPS image URL. |
| button Yes | array | One to four buttons. Supported types: reply, url, call, copy. |
{
"api_key": "YOUR_API_KEY",
"sender": "628973134240",
"number": "6285260xxxxx",
"message": "Choose an action below.",
"footer": "NonFisik Indonesia",
"image": "https://example.com/image.jpg",
"button": [
{"type":"reply","displayText":"Confirm"},
{"type":"url","displayText":"Open Website","url":"https://nonfisik.id"},
{"type":"call","displayText":"Call Us","phoneNumber":"+628973134240"},
{"type":"copy","displayText":"Copy Code","copyCode":"PROMO2026"}
]
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Button List Message
Send a WhatsApp list message with sections and selectable rows. Images are not supported for this message type.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API key. |
| sender Yes | string | Connected WhatsApp sender number. |
| number Yes | string | Recipient number in international format without +. |
| name Yes | string | Internal list name. |
| title Yes | string | List title. |
| message Yes | string | Main message text. |
| buttontext Yes | string | Button label used to open the list. |
| footer No | string | Footer text. |
| sections Yes | array | One to five sections. Each section contains selectable rows. |
| sections[].rows[].title Yes | string | Row title. |
| sections[].rows[].rowId Yes | string | Unique row ID returned when the user selects the row. |
| sections[].rows[].description No | string | Row description. |
{
"api_key": "YOUR_API_KEY",
"sender": "628973134240",
"number": "6285260xxxxx",
"name": "Customer Service Menu",
"title": "Choose a Service",
"message": "Hello, choose one of the available services.",
"buttontext": "Open Menu",
"footer": "NonFisik Indonesia",
"sections": [
{
"title": "Services",
"rows": [
{"rowId":"sales", "title":"Sales", "description":"Product and pricing information"},
{"rowId":"support", "title":"Technical Support", "description":"Get help with your account"}
]
}
]
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Event Message
Send WhatsApp Event Messages with built-in RSVP responses.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | Your API key. |
| sender Yes | string | Connected WhatsApp sender number owned by the API user. |
| number | str/arr | Cond One receiver or multiple receivers separated by |, comma, or a new line. |
| chatId | string | Cond WhatsApp chat ID (ex 628xxx@c.us). Use this instead of number when needed. |
| event.name Yes | string | Event title. |
| event.description No | string | Event details. New lines and WhatsApp formatting are supported. |
| event.startTime Yes | integer | Unix timestamp in seconds. |
| event.endTime No | int/null | Unix timestamp in seconds or null. |
| event.location.name No | string | Location name. |
| event.extraGuestsAllowed No | boolean | Allow recipients to add an extra guest count. |
| full No | boolean | Return per-recipient delivery results. |
{
"api_key": "YOUR_API_KEY",
"sender": "6281234567890",
"number": "6289876543210|6281111111111",
"event": {
"name": "Customer Appointment",
"description": "Appointment reminder\n\n*Location:* Main Office",
"startTime": 1783234800,
"endTime": null,
"location": {
"name": "Main Office"
},
"extraGuestsAllowed": false
},
"full": true
}
{
"status": true,
"message": "Event Message sent successfully.",
"success": 2,
"failed": 0,
"data": [
{
"number": "6289876543210",
"status": true,
"message_id": "3EB0..."
}
]
}
Send VCard
Api Docs Sending VCard Messages.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| number Yes | string | Recipient number ex 72888xxxx | 62888xxxx |
| name Yes | string | Contact name ex Magd Almuntaser |
| phone Yes | string | Contact phone number ex 6281222xxxxxx |
| msgid No | string | Quoted message ID to reply to |
| full No | number | Show full response from WhatsApp |
{
"api_key": "1234567890",
"sender": "628973134240",
"number": "6285260xxxxx",
"name": "Support NonFisik",
"phone": "628993134xxxx"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Location
Api Docs Sending Location Messages.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| number Yes | string | Recipient number ex 72888xxxx | 62888xxxx |
| latitude Yes | string | Latitude ex 24.121231 |
| longitude Yes | string | Longitude ex 55.1121221 |
| msgid No | string | Quoted message ID to reply to |
| full No | number | Show full response from WhatsApp |
{
"api_key": "1234567890",
"sender": "628973134240",
"number": "6285260xxxxx",
"latitude": "24.121231",
"longitude": "55.1121221"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Sticker
Api Docs Sending Sticker Messages.
Note: Make sure the url is a direct link, not a shared link from Google Drive or other cloud storage.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| number Yes | string | Recipient number ex 72888xxxx | 62888xxxx |
| url Yes | string | Direct URL of sticker (image/gif → converted to webp) |
| msgid No | string | Quoted message ID to reply to |
| full No | number | Show full response from WhatsApp |
{
"api_key": "1234567890",
"sender": "628973134240",
"number": "6285260xxxxx",
"url": "https://example.com/image.jpg"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Polling
Api Docs Sending Poll Messages.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| number Yes | string | Recipient number ex 72888xxxx | 62888xxxx |
| name Yes | string | Name or poll question |
| option Yes | array | Values of poll message |
| msgid No | string | Quoted message ID to reply to |
| countable Yes | string | 1 = allow one option only, 0 = allow multiple |
| full No | number | Show full response from WhatsApp |
{
"sender": "628973134240",
"api_key": "1234567890",
"number": "6285260xxxxx",
"countable": "1",
"name": "what color do you like?",
"option": ["red", "blue", "yellow"]
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Text To Channel API
Api Docs Sending Text Messages To Channel
Request Body (JSON If POST)
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| url Yes | string | Channel URL ex https://whatsapp.com/channel/ABCDEF123456 |
| message Yes | string | Message to be sent |
| footer No | string | Footer under message |
| full No | number | Show full response from WhatsApp |
{
"api_key": "1234567890",
"sender": "628973134240",
"url": "https://whatsapp.com/channel/ABCDEF123456",
"message": "Hello World",
"footer": "Sent via AutoWA vGateway"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Media To Channel API
Api Docs Sending Media Messages To WhatsApp Channel (Image, Video, Audio)
Request Body (JSON If POST)
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| url Yes | string | Channel URL ex https://whatsapp.com/channel/ABCDEF123456 |
| media_url Yes | string | URL of the media file |
| media_type Yes | string | Type of media: image, video, audio |
| caption No | string | Caption for the media (not supported with audio) |
| full No | number | Show full response from WhatsApp (1 = enabled) |
{
"api_key": "1234567890",
"sender": "6281222xxxxxx",
"url": "https://whatsapp.com/channel/ABCDEF123456",
"media_url": "https://example.com/photo.jpg",
"media_type": "image",
"caption": "Hello Channel!"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Poll To Channel API
Api Docs Sending Poll Messages To WhatsApp Channel
Request Body (JSON If POST)
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| url Yes | string | Channel URL ex https://whatsapp.com/channel/ABCDEF123456 |
| name Yes | string | Poll question |
| options Yes | array | Poll options (min 2). JSON array: ["Option 1","Option 2"] |
| countable No | string | Allow multiple answers: true / false (default: true) |
| full No | number | Show full response from WhatsApp (1 = enabled) |
{
"api_key": "1234567890",
"sender": "6281222xxxxxx",
"url": "https://whatsapp.com/channel/ABCDEF123456",
"name": "What is your favorite color?",
"options": ["Red", "Blue", "Green"],
"countable": "true"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Quiz To Channel API
Api Docs Sending Quiz Messages To WhatsApp Channel
Request Body (JSON If POST)
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| url Yes | string | Channel URL ex https://whatsapp.com/channel/ABCDEF123456 |
| question Yes | string | Quiz question |
| options Yes | array | Quiz options (min 2). JSON array: ["Paris","London","Berlin"] |
| correct_index No | number | Index of the correct answer (0-based, default: 0) |
| full No | number | Show full response from WhatsApp (1 = enabled) |
{
"api_key": "1234567890",
"sender": "6281222xxxxxx",
"url": "https://whatsapp.com/channel/ABCDEF123456",
"question": "What is the capital of France?",
"options": ["Paris", "London", "Berlin"],
"correct_index": 0
}
{
"status": true,
"msg": "Message sent successfully!"
}
Send Sticker To Channel API
Api Docs Sending Sticker Messages To WhatsApp Channel
Request Body (JSON If POST)
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | Number of your device |
| url Yes | string | Channel URL ex https://whatsapp.com/channel/ABCDEF123456 |
| sticker_url Yes | string | URL of the sticker file (webp, png, jpg) |
| full No | number | Show full response from WhatsApp (1 = enabled) |
{
"api_key": "1234567890",
"sender": "6281222xxxxxx",
"url": "https://whatsapp.com/channel/ABCDEF123456",
"sticker_url": "https://example.com/sticker.webp"
}
{
"status": true,
"msg": "Message sent successfully!"
}
Check Number
Api Docs Checking Number. Gunakan endpoint ini untuk memverifikasi apakah suatu nomor terdaftar di WhatsApp.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API Key |
| sender Yes | string | your number ex 62888xxxx |
| number Yes | string | any number ex 62888xxxx |
{
"api_key": "1234567890",
"sender": "628973134240",
"number": "6285260xxxxx"
}
{
"status": true,
"msg": {
"exists": true,
"jid": "6285260xxxxx@s.whatsapp.net"
}
}
Fetch WhatsApp Contacts
Export contacts from the selected connected WhatsApp sender.
Parameters
| Parameter | Type | Description |
|---|---|---|
| api_key Yes | string | API key from the dashboard. |
| sender Yes | string | Connected WhatsApp sender, for example 628973134240. |
| search No | string | Optional filter by contact name or number. |
| limit No | number | Number of contacts returned. Default 1000, maximum 50000. |
| refresh No | bool/num | Refresh contact data before returning the response. Use 1 to refresh or 0 to use available data. |
{
"api_key": "YOUR_API_KEY",
"sender": "628973134240",
"limit": 1000,
"refresh": 1
}
{
"status": true,
"msg": "Contacts exported successfully.",
"sender": "628973134240",
"count": 1,
"data": [
{
"number": "6285260xxxxx",
"name": "Budi Client"
}
]
}
Webhook Example
Make Webhook Like AutoResponder
Webhook is a feature that allows you to receive a callback from our server when a message is incoming to your device. You can use this feature for made a dinamic chatbot or whatever you want.
We will send a POST request to your webhook url with a JSON body. Here is an example of the JSON body we will send:
For example webhook you can see in Here .
{
"device" : "your sender/device"
"message" : "message",
"from" : "the number of the whatsapp sender",
"name" : "the name of the sender",
"participant" : "sender number if group",
"ppUrl" : "url profile picture sender",
"media" : [
"caption" : "caption, equal to message",
"fileName" : "xxxx.xx",
"stream" : [
"type" : "Buffer",
"data" : "xxxx"
]
],
"mimetype" : "image\/jpeg" // depends to media type, could be image,document,audio etc
}