Everything you need to ship messaging.
A complete WhatsApp infrastructure stack. No black boxes. No surprise costs. No dashboard-first onboarding.
Core
Multi-instance management
Each instance is one logical WhatsApp connection with its own QR, lifecycle, and webhook target. Run as many as your plan allows.
Send any message type
Text, media, replies, reactions, link previews. The wire format is the same shape Baileys uses upstream.
Media in and out
Send images, audio, documents, video. Inbound media is cached in memory and proxied through signed URLs.
Server-Sent Events
Subscribe to /v1/events for QR codes and instance state. Same auth as the REST API.
Delivery
Signed webhooks with retries
HMAC-signed envelope, exponential-backoff retries, dead-letter for permanent failures. Inspect every delivery.
Per-host concurrency caps
One slow customer endpoint can't starve the others. BullMQ with token-bucket gating per destination.
Prometheus metrics
/metrics exposes request latency, queue depth, instance status, and delivery outcomes. Wire it to Grafana.
Audit log
Every customer-visible state change writes an append-only row. Backfill alerts and forensic queries off the same table.
Operations
Per-customer rate limits
Token-bucket limiter keyed by customer. One bad tenant cannot DoS the rest. Configurable per route.
SSRF guard on webhooks
Loopback, RFC1918, link-local, and cloud-metadata IPs are rejected at the schema layer.
Secrets encrypted at rest
Webhook signing secrets are envelope-encrypted with a master key. Rotate without downtime.
Open contracts, open SDKs
@whatisup/contracts is published as a package. Generate your own client; or use ours.