Skip to main content
This guide gets you from zero to sending your first WhatsApp message via API in under 5 minutes.

Prerequisites

You’ll need:
  • Docker installed (or see Installation for other methods)
  • A WhatsApp account (phone number)

Quick Start with Docker

1

Run the container

Start the GOWA API server using Docker:
docker run --detach \
  --publish=3000:3000 \
  --name=whatsapp \
  --restart=always \
  --volume=$(docker volume create --name=whatsapp):/app/storages \
  aldinokemal2104/go-whatsapp-web-multidevice rest
The API will be available at http://localhost:3000
2

Open the web interface

Navigate to http://localhost:3000 in your browser. You’ll see the GOWA homepage.
GOWA Homepage
3

Connect your WhatsApp account

Click Login or navigate to the login page:
Your WhatsApp session is stored in the Docker volume and persists across restarts.
4

Send your first message

Now that you’re connected, send a test message using the API:
curl -X POST http://localhost:3000/send/message \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "628123456789",
    "message": "Hello from GOWA! 🚀"
  }'
Expected Response:
{
  "code": "SUCCESS",
  "message": "Message sent successfully",
  "results": {
    "message_id": "3EB0C127D7BACC83D6A1",
    "status": "success"
  }
}
Phone numbers should be in international format without + or spaces (e.g., 628123456789 for Indonesia, 14155552671 for US).

What’s Next?

Congratulations! You’ve successfully set up GOWA and sent your first WhatsApp message. Here are some next steps:

Send Media Messages

Learn how to send images, videos, audio, and files

Receive Messages

Set up webhooks to receive incoming messages

Multi-Device Setup

Connect and manage multiple WhatsApp accounts

API Reference

Explore all available API endpoints

Common Use Cases

curl -X POST http://localhost:3000/send/image \
  -F "phone=628123456789" \
  -F "image=@/path/to/image.jpg" \
  -F "caption=Check this out!"
Send the same message to multiple phone numbers:
for phone in 628123456789 628987654321 621234567890; do
  curl -X POST http://localhost:3000/send/message \
    -H "Content-Type: application/json" \
    -d '{"phone": "'$phone'", "message": "Bulk message"}'
done
curl http://localhost:3000/app/status
Response:
{
  "code": "SUCCESS",
  "message": "Connection status retrieved",
  "results": {
    "is_connected": true,
    "is_logged_in": true,
    "device_id": "[email protected]"
  }
}
Groups use the @g.us suffix:
curl -X POST http://localhost:3000/send/message \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "[email protected]",
    "message": "Hello group!"
  }'
Get your group JIDs by calling GET /user/my/groups

Troubleshooting

  • Check that Docker container is running: docker ps
  • Check logs: docker logs whatsapp
  • Ensure port 3000 is not in use by another application
  • Try restarting the container: docker restart whatsapp
  • Check your internet connection
  • Ensure your phone has a stable internet connection
  • Try reconnecting: curl http://localhost:3000/app/reconnect
  • Check device status: curl http://localhost:3000/app/status
  • Verify the recipient number format (no +, spaces, or hyphens)
  • Ensure you’re connected: check http://localhost:3000/app/status
  • Check if the number is registered on WhatsApp
  • Review logs for errors: docker logs whatsapp
Change the port mapping when starting Docker:
docker run --detach \
  --publish=8080:3000 \
  --name=whatsapp \
  --restart=always \
  --volume=$(docker volume create --name=whatsapp):/app/storages \
  aldinokemal2104/go-whatsapp-web-multidevice rest
Then access the API at http://localhost:8080

Production Considerations

The quick start setup is great for testing, but for production use, consider:
  • Adding basic authentication
  • Setting up webhooks for incoming messages
  • Using Docker Compose for better configuration management
  • Configuring auto-reply and auto-mark-read features
  • Setting up proper logging and monitoring
See the Installation guide for production-ready setups.

Build docs developers (and LLMs) love