<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[WaSphere]]></title><description><![CDATA[WaSphere]]></description><link>https://waspherehq.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>WaSphere</title><link>https://waspherehq.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 09:57:07 GMT</lastBuildDate><atom:link href="https://waspherehq.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Free WhatsApp API: Send WhatsApp Messages from Your Own Server with WaSphere]]></title><description><![CDATA[Paying per message to send WhatsApp notifications stings — especially when you're running order updates, OTPs, or support replies at volume. The good news: you can run a free WhatsApp API on your own ]]></description><link>https://waspherehq.hashnode.dev/free-whatsapp-api-send-whatsapp-messages-from-your-own-server-with-wasphere</link><guid isPermaLink="true">https://waspherehq.hashnode.dev/free-whatsapp-api-send-whatsapp-messages-from-your-own-server-with-wasphere</guid><category><![CDATA[whatsapp-api]]></category><category><![CDATA[open source]]></category><category><![CDATA[self-hosted]]></category><dc:creator><![CDATA[Waqas Ahmed Waseer]]></dc:creator><pubDate>Sat, 03 Oct 2026 22:18:09 GMT</pubDate><content:encoded><![CDATA[<p>Paying per message to send WhatsApp notifications stings — especially when you're running order updates, OTPs, or support replies at volume. The good news: you can run a free WhatsApp API on your own server with open-source software.</p>
<h2>Meet WaSphere</h2>
<p><a href="https://wasphere.com">WaSphere</a> is a free, MIT-licensed, self-hosted WhatsApp API platform (<a href="https://github.com/wasphere/wasphere">GitHub</a>). Instead of paying a BSP per message and waiting on Meta approval, you connect your own WhatsApp number and get a REST API, a web dashboard, multi-session support, and HMAC-signed webhooks.</p>
<h2>What "free" actually means here</h2>
<ul>
<li>No per-message fees — you pay only for your own server.</li>
<li>No Meta approval process — pair by scanning a QR code.</li>
<li>MIT license — use it commercially, modify it, fork it.</li>
<li>Your data never leaves your infrastructure.</li>
</ul>
<h2>Deploy it with Docker</h2>
<p>Requirements: Docker Engine 24+ and Docker Compose v2.</p>
<pre><code class="language-bash">git clone https://github.com/wasphere/wasphere.git
cd wasphere
cp .env.example .env
# generate each secret, e.g.: openssl rand -hex 32
docker compose up -d
</code></pre>
<p>Open <code>http://localhost:3004</code>, create the first admin account, and connect a WhatsApp number under <strong>Sessions</strong> with the QR code.</p>
<h2>Send messages over a REST API</h2>
<p>WaSphere supports 14 message types — text, media, buttons, lists, polls, reactions, location, contacts, and more:</p>
<pre><code class="language-bash">curl -X POST http://localhost:3000/workspaces/{workspaceId}/proxy/api/sessions/{sessionId}/messages/text \
  -H "Authorization: Bearer wsk_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "to": "12125550100", "text": "Your order has shipped!" }'
</code></pre>
<p>Incoming messages and delivery receipts arrive at your webhook endpoint, signed with HMAC-SHA256 so you can verify them.</p>
<h2>Try before you self-host</h2>
<p>There is a seeded live demo at <a href="https://demo.wasphere.com">demo.wasphere.com</a> — no signup needed. If you like what you see, the full platform is a <code>docker compose up -d</code> away.</p>
<p><strong>Links:</strong> <a href="https://wasphere.com">wasphere.com</a> · <a href="https://github.com/wasphere/wasphere">GitHub</a> · <a href="https://demo.wasphere.com">Live demo</a></p>
]]></content:encoded></item><item><title><![CDATA[WhatsApp API Without Meta Approval: Self-Host It with WaSphere]]></title><description><![CDATA[The official route to a WhatsApp API — the Meta Cloud API — starts with a toll booth: business verification, template message approvals, per-conversation pricing, and zero control over your message da]]></description><link>https://waspherehq.hashnode.dev/whatsapp-api-without-meta-approval-self-host-it-with-wasphere</link><guid isPermaLink="true">https://waspherehq.hashnode.dev/whatsapp-api-without-meta-approval-self-host-it-with-wasphere</guid><category><![CDATA[whatsapp-api]]></category><category><![CDATA[self-hosted]]></category><category><![CDATA[open source]]></category><category><![CDATA[Docker]]></category><dc:creator><![CDATA[Waqas Ahmed Waseer]]></dc:creator><pubDate>Sat, 03 Oct 2026 21:48:00 GMT</pubDate><content:encoded><![CDATA[<p>The official route to a WhatsApp API — the Meta Cloud API — starts with a toll booth: business verification, template message approvals, per-conversation pricing, and zero control over your message data. For developers building MVPs, internal tools, or privacy-conscious products, there is a simpler path: <strong>run your own self-hosted WhatsApp API</strong>, with no Meta approval required.</p>
<h2>Why self-host instead of using the Meta Cloud API?</h2>
<p>A self-hosted WhatsApp API runs on your own server and connects to WhatsApp through the same multi-device protocol your phone app uses. You pair it once by scanning a QR code, and from then on your apps talk to a local REST API. That means:</p>
<ul>
<li><strong>No Meta approval</strong> — no business verification, no template review queues</li>
<li><strong>No per-message platform fees</strong> — your only cost is the VPS</li>
<li><strong>Full data ownership</strong> — conversations never flow through a third-party cloud</li>
<li><strong>No rate-limit surprises</strong> from a shared SaaS tier</li>
</ul>
<h2>Enter WaSphere: an open-source self-hosted WhatsApp API</h2>
<p><a href="https://wasphere.com">WaSphere</a> is an open-source (MIT), self-hosted WhatsApp API and developer platform. It gives you:</p>
<ul>
<li><strong>Multi-session WhatsApp</strong> — connect multiple numbers from one deployment</li>
<li><strong>A REST API</strong> covering 14 message types: text, image, video, audio, document, stickers, location, contact, polls, interactive buttons and lists, reactions, and more</li>
<li><strong>HMAC-signed webhooks</strong> — inbound messages arrive with verifiable <code>X-WaSphere-Signature</code> headers</li>
<li><strong>Scoped API keys</strong> — 12 granular scopes for safe integrations</li>
<li><strong>A realtime team inbox</strong> — a shared dashboard where agents reply to customers live</li>
<li><strong>One-command Docker deploy</strong> — NestJS + Baileys under the hood</li>
</ul>
<p>It's a practical <strong>WhatsApp Business API alternative</strong> — a <strong>free WhatsApp API</strong> you fully control, instead of renting access per conversation.</p>
<h2>Deploy it in minutes</h2>
<p>Any VPS with Docker will do. This is the actual quick start from the <a href="https://github.com/wasphere/wasphere">GitHub repo</a>:</p>
<pre><code class="language-bash">git clone https://github.com/wasphere/wasphere.git
cd wasphere
cp .env.example .env
docker compose up -d
</code></pre>
<p>That starts three services: the dashboard UI on port <strong>3004</strong>, the API on <strong>3000</strong>, and the WA server on <strong>3001</strong>.</p>
<ol>
<li>Open <code>http://localhost:3004</code> and register your first admin account.</li>
<li>Go to <strong>Settings → WA Server URL</strong> and set <code>http://wa-server:3001</code> plus your <code>WA_TOKEN</code>.</li>
<li>Add a number under <strong>Sessions</strong> and scan the QR code with WhatsApp (Linked Devices).</li>
</ol>
<p>Pairing is per number, so you can attach several business numbers to the same instance.</p>
<h2>Send your first message</h2>
<p>With a session connected, sending is an HTTP call with your API key (<code>Authorization: Bearer wsk_…</code>). The send routes live under the workspace proxy, for example:</p>
<pre><code>POST workspaces/{workspaceId}/proxy/api/sessions/{sessionId}/send
</code></pre>
<p>Swap the session ID and recipient, and the message goes out from your own number. The full request reference is built into the product at <code>/docs/wa-server</code> — an interactive Scalar API reference served by your own instance.</p>
<h2>Receive messages with signed webhooks</h2>
<p>Point WaSphere at your webhook URL and every inbound message and status event is delivered as JSON with a verifiable signature:</p>
<pre><code>X-WaSphere-Signature: v1,sha256=&lt;hmac&gt;
X-WaSphere-Timestamp: &lt;unix-seconds&gt;
</code></pre>
<p>The signature is the HMAC-SHA256 of <code>{timestamp}.{rawBody}</code> using your webhook secret. Verify it on receipt and you know the payload genuinely came from your server — this is how you build chatbots, auto-replies, and CRM syncs you can trust.</p>
<h2>Put a team on it: the realtime inbox</h2>
<p>Unlike raw gateway libraries, WaSphere ships a realtime team inbox in the dashboard. Agents see conversations arrive live, claim threads, and reply — no extra frontend to build. For automation, n8n nodes and WHMCS/Shopify integrations cover the common no-code and billing flows.</p>
<h2>Try it before you self-host</h2>
<p>There is a live demo at <a href="https://demo.wasphere.com">demo.wasphere.com</a> and full docs on the repo. If you've been putting off WhatsApp integration because of the Meta approval process, this is the shortcut: an open-source WhatsApp API on your own infrastructure, deployed before your coffee cools.</p>
<p>Happy self-hosting! 🚀</p>
]]></content:encoded></item><item><title><![CDATA[Self-host your own WhatsApp API with WaSphere and Docker]]></title><description><![CDATA[Paying per message for the WhatsApp Business API gets expensive fast, and the approval process is slow. If you want a WhatsApp API you fully own — your server, your data, no per-message fees — self-ho]]></description><link>https://waspherehq.hashnode.dev/self-host-your-own-whatsapp-api-with-wasphere-and-docker</link><guid isPermaLink="true">https://waspherehq.hashnode.dev/self-host-your-own-whatsapp-api-with-wasphere-and-docker</guid><category><![CDATA[Docker]]></category><category><![CDATA[whatsapp]]></category><category><![CDATA[Open Source]]></category><dc:creator><![CDATA[Waqas Ahmed Waseer]]></dc:creator><pubDate>Sat, 03 Oct 2026 09:36:44 GMT</pubDate><content:encoded><![CDATA[<p>Paying per message for the WhatsApp Business API gets expensive fast, and the approval process is slow. If you want a WhatsApp API you fully own — your server, your data, no per-message fees — self-hosting is the answer.</p>
<p><a href="https://wasphere.com">WaSphere</a> is an open-source (MIT), self-hosted WhatsApp API and developer platform I built for exactly this. It gives you multi-session WhatsApp, a REST API, HMAC-signed webhooks, 14 message types, and a realtime team inbox — all deployed with one <code>docker compose up -d</code>.</p>
<p>In this tutorial I'll take you from zero to sending your first WhatsApp message through your own API in about 10 minutes.</p>
<h2>What you get</h2>
<ul>
<li><strong>Multi-session</strong> — run many WhatsApp numbers from one deployment, each with its own API key scope and webhook endpoint. QR-based pairing in seconds.</li>
<li><strong>REST API</strong> — send across 14 message types: text, image, video, audio/voice notes, documents, stickers, GIFs, view-once media, buttons, lists, polls, reactions, locations, and contact cards.</li>
<li><strong>HMAC-signed webhooks</strong> — every delivery is signed (<code>X-WaSphere-Signature: v1,sha256=&lt;hmac&gt;</code> over <code>{timestamp}.{rawBody}</code>), with per-webhook secrets, retries, and SSRF-guarded delivery.</li>
<li><strong>Realtime team inbox</strong> — a two-pane inbox in the dashboard with roles, a contact book CRM, tags/notes, and CSV import/export.</li>
<li><strong>Security-first</strong> — scoped API keys (12 permission scopes), Argon2id-hashed keys, AES-256-GCM encrypted secrets, and a full audit log.</li>
<li><strong>Anti-ban controls</strong> — per-session send delays, typing simulation, and rate limits.</li>
</ul>
<p>The architecture is two cleanly separated services: a Next.js dashboard with a NestJS API, and a WA Server (NestJS + Baileys) that isolates the WhatsApp engine.</p>
<h2>Prerequisites</h2>
<ul>
<li>Docker Engine 24+ and Docker Compose v2</li>
<li>A server or your local machine (for a public deployment, bring your own reverse proxy for TLS)</li>
</ul>
<h2>Step 1 — Deploy</h2>
<pre><code class="language-bash">git clone https://github.com/wasphere/wasphere.git
cd wasphere
cp .env.example .env
# Set the secrets in .env — generate each with: openssl rand -hex 32
docker compose up -d
</code></pre>
<p>Open <code>http://localhost:3004</code>, register the first (admin) account, then go to Settings → WA Server and set the URL to <code>http://wa-server:3001</code> plus your <code>WA_TOKEN</code>.</p>
<h2>Step 2 — Connect a number</h2>
<p>In the dashboard, create a session and scan the QR code with WhatsApp. The session goes active instantly — no approval process, no waiting.</p>
<h2>Step 3 — Send your first message</h2>
<p>Create a scoped API key in the dashboard, then:</p>
<pre><code class="language-bash">curl -X POST https://wa.your-domain.com/api/messages/send \
  -H "Authorization: Bearer wsk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "session": "my-business",
    "to": "15551234567",
    "text": "Hello from my own WhatsApp API!"
  }'
</code></pre>
<p>Response: <code>200 OK</code> with a <code>messageId</code>. That's it — you're sending WhatsApp messages from your own infrastructure.</p>
<h2>Step 4 — Receive webhooks</h2>
<p>Register a webhook:</p>
<pre><code class="language-bash">curl -X POST https://api.your-domain.com/workspaces/{workspaceId}/webhooks \
  -H "Authorization: Bearer wsk_your_key" \
  -H "Content-Type: application/json" \
  -d '{ "name": "my-app", "url": "https://my-app.com/webhook/wa", "events": ["message.received"] }'
</code></pre>
<p>Verify the signature in your receiver (Node.js):</p>
<pre><code class="language-js">const crypto = require("crypto");

function verify(req, secret) {
  const signature = req.headers["x-wasphere-signature"]; // v1,sha256=&lt;hmac&gt;
  const timestamp = req.headers["x-wasphere-timestamp"];
  const expected = "v1,sha256=" + crypto
    .createHmac("sha256", secret)
    .update(`${timestamp}.${req.rawBody}`)
    .digest("hex");
  return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}
</code></pre>
<p>This pattern works great for automation — I use it with n8n workflows for order notifications and support routing.</p>
<h2>Why self-host instead of the Business API?</h2>
<ul>
<li><strong>Cost</strong> — no per-message fees; you pay for your server.</li>
<li><strong>Control</strong> — your sessions and contacts never leave your infrastructure.</li>
<li><strong>No approval queues</strong> — connect a number and start building.</li>
<li><strong>Hackable</strong> — it's MIT licensed. Fork it, extend it, ship it.</li>
</ul>
<p>The full source is on GitHub: <a href="https://github.com/wasphere/wasphere">github.com/wasphere/wasphere</a>. There's a seeded live demo at <a href="https://demo.wasphere.com">demo.wasphere.com</a>, and full docs on <a href="https://wasphere.com">wasphere.com</a>.</p>
<p>If you self-host your messaging stack, give the repo a star — and let me know what you build with it.</p>
]]></content:encoded></item></channel></rss>