Open source WhatsApp API wrapper

Self-host WhatsApp messaging with Laravel.

LaraWA gives PHP teams a practical dashboard and REST API for WhatsApp Web sessions, outbound messages, incoming message capture, and signed webhook delivery.

Laravel 13 PHP 8.4 Docker ready MIT licensed
LaraWA Ready
Session support-inbox
01 Pair WhatsApp

Scan a QR code from Linked devices.

02 Send messages

Use scoped REST API keys.

03 Receive events

Forward signed webhooks.

04 Audit activity

Track messages and delivery history.

Built for operators and developers

A Laravel control plane for WhatsApp Web automation.

The WhatsApp engine runs on whatsapp-web.js, while Laravel handles users, workspaces, sessions, API keys, message logs, dashboard screens, storage, and webhook delivery. It is community-built and independent from Meta or WhatsApp.

Core features

Everything needed to turn WhatsApp Web into a managed API surface.

QR

Session pairing

Connect WhatsApp Web sessions with QR pairing and persistent browser authentication.

API

Message endpoints

Send text, images, video, documents, audio, reactions, and bulk messages through REST.

WH

Signed webhooks

Capture incoming messages and status changes, then deliver events with HMAC signatures.

KEY

Scoped API keys

Issue hashed keys with scopes, expiration, IP allow lists, and rate limiting.

DB

Operational dashboard

Manage sessions, messages, webhooks, audit logs, workspaces, users, and settings.

OPS

Production posture

Run Docker Compose services for the app, queue, scheduler, nginx, Redis, PostgreSQL, and worker.

How it fits together

From QR scan to delivery tracking.

1

Create a session

Use the dashboard to create a WhatsApp session and scan the generated QR code.

2

Call the REST API

Create a scoped key, then send messages from Laravel, PHP, or any HTTP client.

3

Process events

Subscribe webhook endpoints to incoming messages, status updates, reactions, and session events.

4

Review history

Inspect message logs, delivery attempts, webhook retries, and audit activity in the dashboard.

Quick start

Try it locally with Docker.

LaraWA ships with a Docker-first setup for the Laravel app, WhatsApp worker, queue, scheduler, nginx, and optional infrastructure services.

cp .env.example .env
docker compose up -d --build

# Open the dashboard
http://localhost:8080

Technical stack

Familiar pieces, wired for self-hosting.

BackendLaravel 13 and PHP 8.4
WhatsApp engineNode.js worker with whatsapp-web.js
DatabaseSQLite by default, PostgreSQL optional
Queue and cacheDatabase or Redis-backed workflows
StorageLocal or S3-compatible media storage
APIREST endpoints documented with OpenAPI

Extensible community project

Plugins and translations are part of the roadmap.

LaraWA includes an early marketplace/plugin structure for dashboard extensions, language packs, message channels, fallback providers, settings pages, and future integrations.

Build with the PHP community.

LaraWA is young, open source, MIT licensed, and looking for contributors across Laravel, API design, Docker, documentation, plugins, and native-language translations.