Official WhatsApp API to scale within Meta's rules
D-API is a provider of the official WhatsApp API (Meta Cloud API / WhatsApp Business Platform). Verified account, approved templates and the same integration stack your team already knows, with dedicated onboarding from start to finish.
- Uptime: 99.9%
- Channel: Official Meta
- Onboarding: Dedicated
You shouldn't be solving this.
Problems D-API takes off your plate.
You need an official channel, but the Meta process stalls
Account setup, business verification and template approval turn into a bureaucratic maze. Without help, each step drags on for weeks and the project never gets off the ground.
Templates rejected with no clear reason
You write the message, submit it for approval and get a generic "rejected" back. Without someone who knows Meta's rules, you are stuck in trial and error while the operation waits.
Providers that disappear after the sale
You sign up for the official API and, when something breaks in production, you end up in a ticket form with no answer. There is no fast, human channel when your WhatsApp stops.
From zero to production in five steps.
Talk to sales
Tell us your use case: support, notifications or sales. Together we assess whether the official API is the right channel for you and plan the next step.
Account setup and verification
We support you through account setup, business verification and number configuration with Meta, without getting stuck in bureaucracy.
Template approval
We help you structure and submit your message templates for approval, following Meta's rules to reduce rejections.
Integration via API and webhooks
Connect your application with the REST API and the Node.js SDK, set up webhooks and start sending and receiving messages on the official channel.
Read the docsOperation and follow-up
Go to production with real-time delivery and read reports, and the D-API team close by in your onboarding group.
See integrations
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
- Node.js SDK
- Webhooks
- n8n
- Make
- Datacrazy CRM
Meta's official, verified channel, with onboarding from people who actually answer.
Official, verified channel
D-API is a provider of the official WhatsApp API (Meta's WhatsApp Cloud API). You operate with a verified account and send approved templates, within the platform's rules. See how the official API works.
Help with setup and approval
We help with account setup, business verification and template approval with Meta. You do not face the bureaucracy alone.
The same D-API integration stack
REST API documented in Swagger (OpenAPI 3) and an official Node.js SDK. Your team integrates with the official API using the same pattern it already knows. Start with the docs.
Webhooks with automatic retries
Every message event reaches your system with exponential backoff retries. No events silently lost between Meta and your application.
Real-time reports
Track delivery, reads and replies for every message in real time. You see how campaigns and support are performing without manual spreadsheets.
Automation and CRM integrations
Connect the official API to n8n, Make, Zapier and Datacrazy CRM. Automate sends, support flows and data sync without writing everything from scratch.
Dedicated onboarding on WhatsApp
You get a WhatsApp group with the D-API team to answer questions and solve production issues fast, with support in English. Support from people who actually answer.
Frequently asked questions.
What is the official WhatsApp API and why use it?
Does D-API help with setup and template approval?
How does the technical integration work?
What is the difference between D-API's official and unofficial API?
What kind of support do I get after signing up?
Ready to go to production?
3-day free trial with full access. No credit card, no lock-in.
