The WhatsApp API for campaigns that land without getting numbers banned.
Your team needs to run campaigns at scale without watching numbers get banned at the peak. The D-API WhatsApp API delivers real isolation, a unique IP per connection and response reports so your operation grows safely.
- Reports: In real time
- Native CTAs: Buttons, lists, carousels
- Isolation: 1:1 per number
You shouldn't be solving this.
Problems D-API takes off your plate.
Campaigns that never arrive
Unstable infrastructure makes your campaign fail without you knowing.
Numbers banned without warning
A single number carrying everything means ban risk and a lost audience.
No reporting
Without delivery, read and reply data, your decisions are guesswork.
From zero to production in four steps.
Connect your numbers
Add as many numbers as you want in the dashboard and the system provisions isolated instances.
Build the campaign
Use the API or an automation node (n8n, Make) to send messages at scale.
Engage with native CTAs
Add buttons, lists, carousels and payment links to increase conversion inside the chat.
Track results
See delivery, read and reply rates by campaign, instance or period.
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
- Datacrazy CRM
- n8n
- RabbitMQ
- Amazon S3
- Native reports
WhatsApp campaigns that arrive, convert and report back.
Multiple isolated numbers
Run a campaign across dozens of numbers without a problem on one affecting the others.
Dedicated proxy per number
Each connection gets a proxy with its own IP, managed automatically by D-API, reducing the risk of bans as you scale sends.
Real response rates
Track delivery, reads and replies for each campaign in real time in the dashboard.
Buttons, lists and carousels
Increase conversion with native WhatsApp CTAs, with no reliance on external links.
Payment links in the chat
Shorten the path to purchase by sending the payment link in a native button, right inside the conversation.
Fast number swaps
Retire a problematic number and bring up another without redoing the integration.
Smart distribution
Integrate with Datacrazy CRM to distribute leads automatically across sales reps.
Health monitoring
Early risk signals on each number (reconnections, send failures and stability) so you act before a ban.
Dedicated onboarding
We set up a WhatsApp group with your marketing team to unblock setup and first campaigns, all at no cost.
Frequently asked questions.
Can D-API get my number banned?
How many numbers can I connect?
Can I get reports per campaign?
Ready to go to production?
3-day free trial with full access. No credit card, no lock-in.
