WhatsApp + GoLang

WAHA provides a private, self-hosted, and free HTTP API to seamlessly integrate and automate WhatsApp using Go.

Send messages, manage chats, and streamline workflows effortlessly with a simple API!

WhatsApp + Go

How To Use?

Run WAHA
1. Start WAHA
Run one command in the terminal on your own laptop or server
Scan QR
2. Pair Number
Connect your or any other number by scanning QR code

WhatsApp + Go

WhatsApp Channel Logo

Install Dependencies

go get -u github.com/gofiber/fiber/v2
Free

Send Message

package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

type Message struct {
    Session string `json:"session"`
    ChatID  string `json:"chatId"`
    Text    string `json:"text"`
}

func main() {
    url := "http://localhost:3000/api/sendText"
    msg := Message{Session: "default", ChatID: "12132132130@c.us", Text: "Hi there!"}
    jsonData, _ := json.Marshal(msg)

    resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
}
API

Receive Message

package main

import (
    "fmt"
    "github.com/gofiber/fiber/v2"
)

func main() {
    app := fiber.New()

    app.Post("/bot", func(c *fiber.Ctx) error {
        var data map[string]interface{}
        if err := c.BodyParser(&data); err != nil {
            return err
        }

        if event, ok := data["event"].(string); ok && event == "message" {
            fmt.Println("Received message:", data["payload"])
            // Process message...
        }
        return c.SendString("OK")
    })

    app.Listen(":3000")
}

How To Start?

⚡ Quick Start documentation to get started!

Why WAHA?

Free

It's free!

WAHA Core version is always free, no limits in messages or time!
WAHA Plus version have no licence expiration!

Servers

Self-hosted solution

No strings to suspicious SaaS WhatsApp API solutions. Install it on your own server!

API

HTTP / REST API

Use your own favorite language - Python, JavaScript, PHP, C#, Clojure, or PowerShell.
PowerShell, really? Are you insane?! Choose another language, dude.

Document

Scalable

You can easily run 1 session to automate your WhatsApp and scale it to 500 sessions to provide SaaS solution!

Easy

Easy & Simple

You can run the API in a click!* Documentation has a lof examples and how-to guides.
*It's actually "a command", not a click.

Checked

No blocking

Under the hood it runs a real instance of Whatsapp Web to avoid getting blocked.
WhatsApp does not allow bots or unofficial clients on their platform, so this shouldn't be considered totally safe.