---
title: "WhatsApp API for Automation | n8n, Make and Zapier | D-API"
description: "WhatsApp API for automation: stable REST, an official n8n community node, real-time webhooks and structured events. The infrastructure your flows were missing."
url: https://d-api.cloud/en/whatsapp-api-for-automation
---

Use case · Automation

# The WhatsApp API for automation that does not break mid-flow.

You build flows in n8n, Make or Zapier that need to run 24/7 in production. D-API is the stable WhatsApp API infrastructure that delivers messages and events without waking you up at night.

-   Official node: n8n
-   Events: In real time
-   Protocols: REST + AMQP

## Talk to our team

See how D-API fits into your product. Support in English, and we reply within 1 business day.

Short answer

## How do you use WhatsApp in n8n, Make or Zapier?

In n8n, install the official n8n-nodes-d-api community node and paste your D-API API key into the credential: sending and triggers then work like any other node. In Make and Zapier, the integration goes through the REST API, with an HTTP request authenticated by the Authorization header. Messages and status changes arrive by webhook, with retries when your endpoint does not acknowledge them.

The problem

## You shouldn't be solving this.

Problems D-API takes off your plate.

1.  ### Workflows breaking halfway
    
    An unstable API makes n8n fail in production and you lose messages without noticing.
    
2.  ### Unstructured events
    
    Poorly formatted webhooks force your flow into manual parsing all the time.
    
3.  ### Unofficial nodes
    
    Community-maintained integrations break every time the API changes.
    

How it works

## From zero to production in four steps.

1.  ### Install the node
    
    In n8n Settings → Community Nodes, add the official n8n-nodes-d-api package.
    
    [npmjs.com/package/n8n-nodes-d-api](https://www.npmjs.com/package/n8n-nodes-d-api)
    
2.  ### Connect the credential
    
    Paste your instance API key and you are done: sending and triggers work right away.
    
3.  ### Build your flow
    
    Use the send, chat listing and webhook trigger nodes with typed fields.
    
4.  ### Scale or migrate
    
    Switch to REST, the SDK or RabbitMQ as your flow grows, with the same API key authentication.
    
    [docs.d-api.cloud](https://docs.d-api.cloud/)
    

Node.jscURLPythonPHP

```
import { DApi } from 'd-api-sdk'

const dapi = new DApi({ apiKey: process.env.DAPI_API_KEY })

await dapi.sessions.create({
  sessionId: 'customer-42',
  webhookUrl: 'https://your-app.com/webhooks/whatsapp',
})

const { qrCodeImage } = await dapi.sessions.getQRCode('customer-42')

// once the number scans the QR code
await dapi.messages.sendText({
  sessionId: 'customer-42',
  to: '14155550123',
  text: 'Your order is confirmed!',
})
```

```
curl -X POST https://api.d-api.cloud/api/v1/sessions \
  -H "Authorization: $DAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sessionId": "customer-42", "webhookUrl": "https://your-app.com/webhooks/whatsapp"}'

curl https://api.d-api.cloud/api/v1/sessions/customer-42/qr \
  -H "Authorization: $DAPI_API_KEY"

# once the number scans the QR code
curl -X POST https://api.d-api.cloud/api/v1/messages/send/text \
  -H "Authorization: $DAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sessionId": "customer-42", "to": "14155550123", "text": "Your order is confirmed!"}'
```

```
import os
import requests

API = "https://api.d-api.cloud/api/v1"
HEADERS = {"Authorization": os.environ["DAPI_API_KEY"]}

requests.post(f"{API}/sessions", headers=HEADERS, timeout=10, json={
    "sessionId": "customer-42",
    "webhookUrl": "https://your-app.com/webhooks/whatsapp",
})

qr = requests.get(f"{API}/sessions/customer-42/qr", headers=HEADERS, timeout=10).json()

# once the number scans the QR code
requests.post(f"{API}/messages/send/text", headers=HEADERS, timeout=10, json={
    "sessionId": "customer-42",
    "to": "14155550123",
    "text": "Your order is confirmed!",
})
```

```
<?php
use GuzzleHttp\Client;

$dapi = new Client([
    'base_uri' => 'https://api.d-api.cloud/api/v1/',
    'headers'  => ['Authorization' => getenv('DAPI_API_KEY')],
    'timeout'  => 10,
]);

$dapi->post('sessions', ['json' => [
    'sessionId'  => 'customer-42',
    'webhookUrl' => 'https://your-app.com/webhooks/whatsapp',
]]);

$qr = json_decode($dapi->get('sessions/customer-42/qr')->getBody(), true);

// once the number scans the QR code
$dapi->post('messages/send/text', ['json' => [
    'sessionId' => 'customer-42',
    'to'        => '14155550123',
    'text'      => 'Your order is confirmed!',
]]);
```

### Works with the tools you already use

-   n8n
-   Make
-   Zapier
-   RabbitMQ
-   Claude and OpenAI

What you get

## The stable API your n8n, Make and Zapier flows were missing.

-   ### Official n8n community node
    
    The n8n-nodes-d-api package is maintained by D-API and kept in sync with our public API.
    
-   ### Webhooks with automatic retries
    
    Structured message, status and connection events delivered over HTTPS or AMQP, with exponential backoff retries for anything not acknowledged.
    
-   ### Low latency
    
    Sending and receiving with millisecond latency, with no intermediate queue slowing things down.
    
-   ### Dedicated proxy
    
    Each connection gets a proxy with its own IP, managed automatically by D-API, reducing the risk of bans.
    
-   ### Routing by type
    
    Split events into different queues using RabbitMQ routing keys.
    
-   ### AI-ready
    
    Plug in Claude, OpenAI or n8n AI agents with typed conversation context.
    
-   ### Documented REST
    
    Explore every endpoint in the [Swagger docs](https://docs.d-api.cloud/), with JSON request and response examples ready to test in the browser.
    
-   ### Delivery monitoring
    
    Message status exposed via webhook (sent, delivered, read, failed) so your flow reacts in real time.
    
-   ### Dedicated onboarding
    
    We set up a WhatsApp group with your team to answer questions and unblock your flow implementation, all at no cost.
    

FAQ

## Frequently asked questions.

### Where can I find the API docs?

In the [Swagger docs](https://docs.d-api.cloud/) (OpenAPI 3). You test endpoints right in the browser and export collections to Postman or Insomnia.

### What is the difference between the n8n node and REST?

The node speeds up development with typed fields and built-in authentication. REST, described in [our docs](https://docs.d-api.cloud/), gives you full control. Both use the same API.

### Can I make sure messages are delivered?

Yes. D-API retries with exponential backoff and exposes delivery status via webhook. You can combine it with RabbitMQ for end-to-end guarantees.

### Does it work with Make and Zapier?

Yes. Because it is standard REST with API key authentication in the Authorization header, it works on any platform that speaks HTTP: Make, Zapier, Pipedream, Bubble and others.

## Related guides

-   [WhatsApp on Make](https://d-api.cloud/en/whatsapp-make-integration)
-   [WhatsApp on Zapier](https://d-api.cloud/en/whatsapp-zapier-integration)
-   [AI chatbot](https://d-api.cloud/en/whatsapp-ai-chatbot)
-   [WhatsApp webhooks](https://d-api.cloud/en/whatsapp-webhook)

## Ready to go to production?

3-day free trial with full access. No credit card, no lock-in.

[Talk to sales](https://d-api.cloud/#lead)[See the n8n node](https://d-api.cloud/en/integrations/n8n)
