Wow! Mutlu adam emojisi Geliştiriciler için tam özellikli bir sandbox — tamamen ücretsiz! Şimdi Kaydol
WhatsApp API Yetenekleri

WhatsApp'ta otomatikleştirebileceğiniz her şey

Her WhatsApp otomasyon yüzeyi için tek bir REST API: JSON uç noktaları, gerçek zamanlı etkinlikler ve eksiksiz dokümantasyon.

Bir bölüme geçin:

3.300+ müşteri 5.500+ aktif kanal

API dokümantasyonu

Whapi REST API: JSON requests, webhooks, and developer docs
Dekoratif balon
Numaranızı taşımaya gerek yok. Kullandığınız herhangi bir numarayla çalışın

3 basit adımda başlayın

Icon

Numaranızı QR koduyla bağlayın

Herhangi bir kişisel veya Business WhatsApp hesabını, tıpkı WhatsApp Web gibi bağlayın. Bağlantı kurmak ve test etmek için ücretsiz sandbox'ta başlayın.

Icon

İlk API isteğinizi gönderin

Sandbox, curl veya Postman'de token'ınızı kullanın. Mesajlar, gruplar, kanallar ve daha fazlası için tek bir REST API.

Icon

Etkinliklere ihtiyacınız olduğunda webhook ekleyin

WhatsApp mesajlarını ve etkinliklerini gerçek zamanlı olarak alın: yalnızca uygulamanızın kullandığı etkinlikleri yapılandırın.

WhatsApp API Grouping Messages and Management

Grupları ve Toplulukları Otomatikleştirin

WhatsApp gruplarını backend'inizden otomatikleştirin: uygulamayı açmadan mesaj gönderin, grup sohbetlerini okuyun, katılımcı ekleyin veya çıkarın ve yöneticileri yönetin. CRM senkronizasyonu için üye telefon numaralarını dışa aktarın ve kullanıcı katılımını ölçeklendirin. Tek bir grup size yetmediğinde, her ikisi için de aynı REST API'yi kullanarak bağlı alt gruplara sahip Toplulukları yönetin. Groups API Kılavuzu →

Gruplarda metin, medya veya etkileşimli mesajlar yayınlayın ve duyuru tarzı gruplar dahil gelen sohbetleri okuyun.

Katılımcı ekleyin veya çıkarın, yöneticileri değiştirin, davet bağlantıları oluşturun ve üye numaralarını dışa aktarın.

Bağlı alt gruplara sahip Toplulukları yönetin. Duyurular gönderin, alt grupları modere edin, etkinlikleri yönetin ve üyeleri programatik olarak düzenleyin.

Üye katılımlarını, yeni mesajları ve gruplardaki diğer değişiklikleri webhook'lar aracılığıyla izleyin.

API aracılığıyla WhatsApp Kanalları

Backend'inizden WhatsApp Kanalları oluşturun ve yönetin: uygulamayı açmadan gönderiler yayınlayın, yöneticiler atayın ve reaksiyonları okuyun. Web sitenizden, Telegram'dan veya CRM'inizden haberleri, sürüm notlarını ve kampanya duyurularını çapraz olarak yayınlayın. Kanal gönderilerinde mesaj başına ücret alınmaz. Channel API Genel Bakış →

Metinleri, fotoğrafları, videoları, anketleri, testleri ve soruları planlı olarak veya başka bir veri kaynağından otomatik olarak yayınlayın.

API üzerinden yeni kanallar açın ve yöneticiler atayın; uygulamada her birini manuel olarak ayarlamanıza gerek kalmaz.

Gönderileri ve reaksiyonları okuyarak bunları bir web sitesi veya kontrol paneli ile senkronize edebilirsiniz.
WhatsApp Channel API
WhatsApp API messaging, catalog, and media

Mesajlaşma ve E-Ticaret

Sınırsız doğrudan mesajlaşma ve yerleşik e-ticaret araçlarıyla müşterilerinizin ilgisini çekin. Mesaj başına ücret ödemeden ve önceden onaylanmış şablonlara ihtiyaç duymadan doğrudan sohbette zengin medya, etkileşimli butonlar ve ürün katalogları gönderin. Akıllı chatbot'lar oluşturun, siparişleri CRM'inizle senkronize edin ve tüm satış hunisini tek bir API üzerinden yönetin.

Sohbette ürünleri ve kategorileri gösterin, alışveriş sepetlerini senkronize edin ve müşterilerin WhatsApp'ta verdiği siparişlere yanıt verin.

Üstbilgi ve altbilgi (headers/footers) ekleme seçeneğiyle metin, belgeler, sesli notlar, konum, kişi kartları, çıkartmalar, butonlar ve önizlemeli bağlantılar gönderin.

Emoji reaksiyonları, alıntılı yanıtlar, okundu bilgileri ve yazıyor veya ses kaydediyor göstergeleri kullanın.

Mesajları, sohbetleri, kişileri ve numara ayrıntılarını CRM'inize aktarın. Katalogları, ürünleri ve siparişleri dışa aktarın.
Ücretsiz deneyin

Durumlar ve Hikayeler (Stories)

Otomatik WhatsApp Durum (Hikaye) güncellemeleriyle hedef kitlenizin ilgisini çekin. Görselleri, videoları veya metinleri özel renkli arka planlarla programatik olarak yayınlayın. Çoğu resmi WhatsApp API'sinde tamamen eksik olan güçlü bir pazarlama kanalının kilidini açın.

Renkli arka planlara ve özel yazı tiplerine sahip salt metin gönderiler de dahil olmak üzere Durum kısmına görsel, video veya metin gönderin. Seçtiğiniz herhangi bir sayıda alıcıya ulaşın.

Durum gönderilerinizdeki görüntüleme sayılarını takip edin ve analiz ile etkileşim iş akışları için kişilerinize ait hikayeleri programatik olarak alın.
Ücretsiz deneyin
WhatsApp Status and Stories API

Ayrıca bunları da otomatikleştirebilirsiniz

Net ve geliştirici dostu bir API'de yerleşik yardımcı özellikler: her türlü eylemle hızlıca başlayın. Sesli aramaları, anketleri, numara doğrulamayı ve sohbet etiketlerini otomatikleştirin; hepsi aboneliğinize dahildir ve ek ücret gerektirmez.

Arama etkinlikleri

Grup aramaları başlatın, giden aramalar tetikleyin, gelen aramaları reddedin ve webhook'larda arama etkinliklerini alın: cevapsız, yanıtlanan ve çalıyor.

Anketler

Sohbetlerde ve gruplarda anketler oluşturun ve insanlar oy kullandığında anında tepki verin.

Numara kontrolü

Mesaj göndermeden önce bir telefon numarasının WhatsApp'ta aktif olup olmadığını kontrol edin.

İşletme etiketleri

Sohbetleri API üzerinden etiketleyin: CRM aşamaları ve destek kuyrukları için idealdir.

WhatsApp webhooks and real-time events

Gelişmiş Webhook Yetenekleri

WhatsApp etkinliklerini sunucunuzda gerçek zamanlı olarak alın: yeni mesajlar, grup değişiklikleri, kanal gönderileri ve siparişler. İş yükünü farklı hizmetler arasında dağıtmak için birden fazla URL bağlayın ve yalnızca ihtiyacınız olan etkinliklere abone olun. Sunucunuz çökerse, teslimatı otomatik olarak yeniden deneriz. Webhook dokümantasyonu →

Yalnızca uygulamanızın ihtiyaç duyduğu etkinlik türlerini seçin.

  • Mesajlar ve durumlar: yeni, düzenlenen veya silinen mesajlar ve teslimat durumu.
  • Sohbetler ve kullanıcılar: yeni sohbetler ve kullanıcı profili güncellemeleri.
  • Gruplar ve kişiler: yeni gruplar, üye katılımları ve kişi değişiklikleri.
  • Kanallar ve topluluklar: gönderiler, reaksiyonlar ve üyelik güncellemeleri.
  • Siparişler ve ürünler: yeni siparişler, terk edilmiş sepetler ve ürün değişiklikleri.

Yalnızca etkinliklerin nereye gideceğini değil, teslimat yöntemini, yeniden denemeleri ve güvenliği de yapılandırın.

  • HTTP yöntemleri: etkinlik türü başına POST, PUT, PATCH veya DELETE.
  • Yeniden denemeler: uç noktanız kapalıysa üstel gecikmeyle otomatik yeniden gönderim.
  • Yetkilendirme üstbilgisi: yalnızca sunucunuzun etkinlikleri kabul etmesi için gizli bir token ekleyin.
  • Birden fazla URL: farklı etkinlik türlerini farklı hizmetlere yönlendirin.

Güvenlik ve numara sağlığı

Proaktif güvenlik araçları ve özel altyapı ile numaralarınızı koruyun. WhatsApp'ın yapay zeka tabanlı anti-spam sistemi agresifdir: geçici ve kalıcı engellemeler yaygındır ve numarayı nasıl kullandığınıza (toplu gönderimler, soğuk erişim ve alıcıların nasıl tepki verdiği) bağlıdır. Sıfır risk sözü vermiyoruz: size daha güvenli ölçeklendirme yapmanız için izole edilmiş bölgesel proxy'ler, yerleşik bir ısındırma modülü ve gerçek zamanlı bir Aktivite Güvenlik Ölçer gibi araçlar sunuyoruz.

Her kanal özel bir bölgesel proxy ve benzersiz bir bağlantı portu alır. Bir hesapta sorun yaşanırsa, diğerleri izole kalır.

Isındırma modülü, arka planda numaralar arasında doğal sohbetleri simüle eder, böylece numara toplu gönderim yapmadan önce bir kullanım geçmişine sahip olur. API fiyatına dahildir — ısındırma hakkında daha fazla bilgi edinin.

Gönderim hacmine ve son sohbetlere dayalı olarak numaranın etkinliği için günlük bir puan. Ölçeklendirmeden önce bunu kullanın veya risk ölçer yüksek olduğunda gönderimleri duraklatın.
Ücretsiz deneyin
WhatsApp number safety and channel isolation
WhatsApp API integrations and connectors

Entegrasyonlar ve konektörler

REST çağrıları, Make/n8n modülleri ve ajan araçları için tek bir API token'ı: Whapi'yi herhangi bir teknoloji yığınına bağlayın.

Dokümantasyon, Postman ve kullanıma hazır kod örnekleri. Tek bir token, JSON giriş ve çıkışı. API dokümantasyonu →

Make.com ve n8n için yerel konektörler. Zapier, IFTTT ve Pabbly Connect, standart HTTP istekleri ve webhook'lar aracılığıyla çalışır. Google Sheets ve DialogFlow da mevcuttur.

Cursor, Claude Desktop veya özel ajanlarınıza WhatsApp MCP aracılığıyla WhatsApp araçları sağlayın: mesaj gönderin, sohbetleri listeleyin, webhook'ları ayarlayın ve Chat ID'lerini bulun. Veya ajanın API'yi en baştan doğru şekilde kullanması için hazır AI Agent Skill yükleyin.

API'yi herhangi bir programlama diline entegre edin, çok kolay!

                                            
curl --request POST \
     --url 'https://gate.whapi.cloud/messages/text' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "15056482143",
  "body": "Hello, world!"
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'to' => '15056482143',
    'body' => 'Hello, world!'
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/messages/text"

payload = {
    "to": "15056482143",
    "body": "Hello, world!"
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/messages/text';
const payload = { to: '15056482143', body: 'Hello, world!' };

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{"to":"15056482143","body":"Hello, world!"}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{"to":"15056482143","body":"Hello, world!"}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
# First get chat_id via GET /chats, GET /groups, or GET /newsletters
curl --request POST \
     --url 'https://gate.whapi.cloud/messages/text' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "[email protected]",
  "body": "Hello, group!"
}
'
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'to' => '[email protected]',
    'body' => 'Hello, group!'
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
# First get chat_id via GET /chats, GET /groups, or GET /newsletters
import requests

url = "https://gate.whapi.cloud/messages/text"

payload = {
    "to": "[email protected]",
    "body": "Hello, group!"
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
const url = 'https://gate.whapi.cloud/messages/text';
const payload = { to: '[email protected]', body: 'Hello, group!' };

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{\"to\":\"[email protected]\",\"body\":\"Hello, group!\"}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{\"to\":\"[email protected]\",\"body\":\"Hello, group!\"}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/chats?count=100' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/chats?count=100",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/chats?count=100"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/chats?count=100';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/chats?count=100")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/chats?count=100");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/messages/list?count=100' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/list?count=100",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/messages/list?count=100"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/messages/list?count=100';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/list?count=100")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/list?count=100");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/groups' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/groups",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/groups"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/groups';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/groups")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/groups");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request POST \
     --url https://gate.whapi.cloud/contacts \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "force_check": false,
  "contacts": [
    "919984351847",
    "61371989950"
  ]
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/contacts",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'force_check' => false,
    'contacts' => ['919984351847', '61371989950']
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/contacts"

payload = {
    "force_check": False,
    "contacts": ["919984351847", "61371989950"]
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/contacts';
const payload = {
  force_check: false,
  contacts: ['919984351847', '61371989950'],
};

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{"force_check":false,"contacts":["919984351847","61371989950"]}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/contacts")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/contacts");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{"force_check":false,"contacts":["919984351847","61371989950"]}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url https://gate.whapi.cloud/contacts/ids/118876465958956%40lid \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/contacts/ids/118876465958956%40lid",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/contacts/ids/118876465958956%40lid"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/contacts/ids/118876465958956%40lid';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/contacts/ids/118876465958956%40lid")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/contacts/ids/118876465958956%40lid");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request PATCH \
     --url 'https://gate.whapi.cloud/settings' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "callback_backoff_delay_ms": 3000,
  "max_callback_backoff_delay_ms": 900000,
  "callback_persist": true,
  "webhooks": [
    {
      "headers": {
        "myKey": "secret-key"
      },
      "mode": "body",
      "events": [
        {
          "type": "messages",
          "method": "post"
        },
        {
          "type": "statuses",
          "method": "post"
        },
        {
          "type": "groups",
          "method": "patch"
        }
      ],
      "url": ""
    }
  ]
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/settings",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => json_encode([
    'callback_backoff_delay_ms' => 3000,
    'max_callback_backoff_delay_ms' => 900000,
    'callback_persist' => true,
    'webhooks' => [
        [
                'headers' => ['myKey' => 'secret-key'],
                'mode' => 'body',
                'events' => [
                                ['type' => 'messages', 'method' => 'post'],
                                ['type' => 'statuses', 'method' => 'post'],
                                ['type' => 'groups', 'method' => 'patch']
                ],
                'url' => ''
        ]
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/settings"

payload = {
    "callback_backoff_delay_ms": 3000,
    "max_callback_backoff_delay_ms": 900000,
    "callback_persist": True,
    "webhooks": [
        {
            "headers": {"myKey": "secret-key"},
            "mode": "body",
            "events": [
                {"type": "messages", "method": "post"},
                {"type": "statuses", "method": "post"},
                {"type": "groups", "method": "patch"}
            ],
            "url": ""
        }
    ]
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/settings';
const payload = {
  callback_backoff_delay_ms: 3000,
  max_callback_backoff_delay_ms: 900000,
  callback_persist: true,
  webhooks: [
    {
      headers: { myKey: 'secret-key' },
      mode: 'body',
      events: [
        { type: 'messages', method: 'post' },
        { type: 'statuses', method: 'post' },
        { type: 'groups', method: 'patch' },
      ],
      url: '',
    },
  ],
};

const response = await fetch(url, {
  method: 'PATCH',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{\"callback_backoff_delay_ms\":3000,\"max_callback_backoff_delay_ms\":900000,\"callback_persist\":true,\"webhooks\":[{\"headers\":{\"myKey\":\"secret-key\"},\"mode\":\"body\",\"events\":[{\"type\":\"messages\",\"method\":\"post\"},{\"type\":\"statuses\",\"method\":\"post\"},{\"type\":\"groups\",\"method\":\"patch\"}],\"url\":\"\"}]}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/settings")
  .patch(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/settings");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{\"callback_backoff_delay_ms\":3000,\"max_callback_backoff_delay_ms\":900000,\"callback_persist\":true,\"webhooks\":[{\"headers\":{\"myKey\":\"secret-key\"},\"mode\":\"body\",\"events\":[{\"type\":\"messages\",\"method\":\"post\"},{\"type\":\"statuses\",\"method\":\"post\"},{\"type\":\"groups\",\"method\":\"patch\"}],\"url\":\"\"}]}", false);
var response = await client.PatchAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        

Kolay bir başlangıç için kaynak kodlu kılavuzlarımızı kullanın

Python, PHP, Node.js ve Java için kopyala-yapıştır kodlu adım adım kılavuzlar — ayrıca GitHub'da açık kaynaklı botlar, kontrolörler ve otomasyon şablonları. Bir repoyu forklayın ve daha hızlı yayınlayın. GitHub'daki 20'den fazla repoya göz atın →

Meta Cloud API vs Whapi.Cloud API — ne elde edersiniz

Tam kılavuzumuzla aynı karar kriterleri: maliyet modeli, onboarding, özellik kapsamı ve Meta'nın Cloud API'si ile Whapi.Cloud arasındaki operasyonel dengeler.

Meta Cloud API Whapi.Cloud API
Fiyatlandırma ve onboarding
Giden mesaj maliyet modeli Mesaj başına ücret (kategori + pazar) Sabit abonelik, Meta ücreti yok
Fiyat öngörülebilirliği Değişken (limitler, açık artırmalar) Öngörülebilir aylık maliyet
Onboarding hızı Çok adımlı doğrulama ve şablonlar QR tarama — ilk mesaja dakikalar içinde ulaşın
Mesaj şablonları Çoğu giden mesaj için gereklidir Gerekli değil — herkese her türlü mesajı gönderin
Özellikler ve erişim
WhatsApp Grupları Sınırlı — 8 üye, kurumsal Gruplar de API completos (1024–2048)
Canalar ve durumlar Mevcut değil Tam API erişimi
Numara varlığı kontrolü Mevcut değil Mevcut
Aynı numarada telefon uygulaması + API Sınırlı birlikte kullanım Çoklu cihaz desteği, telefon uygulaması kullanılabilir kalır
Yerel özellikler (kataloglar, sepetler) Yalnızca temel mesajlaşma Gruplar, kanallar, durumlar, kataloglar
Risk ve operasyonlar
İşletme kategorisi kısıtlamaları Meta kategori engelleri Zaten sahip olduğunuz herhangi bir numarayı kullanın
Mesaj moderasyonu Meta ön/son moderasyonu Ön moderasyon yok
Engelleme / kısıtlama profili Çok adımlı kısıtlamalar Geçici engellemeler, genellikle kurtarılabilir
Isındırma ve güvenlik araçları Mevcut değil Isındırma + Güvenlik Ölçer
API de VoIP / aramalar Meta Cloud telefon hizmeti Yalnızca REST mesajlaşma

Tam karşılaştırma kılavuzu →

Geliştiricilerin tercihi

3.300+ geliştirici ve SaaS ekibi tarafından güveniliyor

Dünya genelindeki geliştiriciler, otomasyonlar, botlar, CRM entegrasyonları, toplu mesaj araçları ve gelişmiş WhatsApp iş akışları oluşturmak için Whapi.Cloud'a güveniyor. Altyapımız her ay yüksek kararlılıkla milyonlarca API isteği işliyor — ve bu sayı giderek artıyor.

Özellik simgesi

5,5K+

aktif API kanalı

Özellik simgesi

21M+

aylık API isteği

“Her şey basit, sezgisel ve kullanımı kolay. Dokümantasyon net ve gerekli tüm bilgiler elimizin altında. Harika iş.”

Roberto K. / Web Geliştirici

“WhatsApp'ı n8n kullanarak iş akışlarımıza sadece birkaç dakikada bağladık. Kod yok, karmaşa yok — her şey ilk denemede çalıştı.”

Martin P. / Geliştirici

“Whapi.Cloud, müşteri iletişimimizin önemli bir parçası haline geldi. Ürün güncellemelerini, sipariş bildirimlerini ve destek mesajlarını Meta şablonlarına veya onaylara ihtiyaç duymadan otomatikleştirdik.”

Oscar T. / CTO

Dekoratif balon
WhatsApp API Yetenekleri

Sıkça Sorulan Sorular

Whapi.Cloud mesajlaşma (metin, medya, kataloglar, reaksiyonlar), gruplar ve topluluklar, WhatsApp Kanalları, Durumlar, kişiler ve sohbetler, gerçek zamanlı etkinlikler için webhook'lar ve otomasyon araçlarıyla entegrasyonları kapsar. Bu sayfadaki her bölüm, HTTPS üzerinden çağırabileceğiniz API yetenekleriyle eşleşir.
Hayır. Harici bir onay akışı veya mesaj şablonu kitaplığı olmadan başlayabilirsiniz. WhatsApp numaranızı bir kanala bağlayın ve API aracılığıyla hemen sohbet mesajları gönderin.
Evet. Mevcut numaranızı WhatsApp Bağlı Cihazlar'daki QR kodu veya eşleştirme kodu aracılığıyla bağlayın. Numara taşıma yoktur ve gerekirse bağlı numarayı daha sonra değiştirebilirsiniz.
Evet. Gruplar oluşturun ve yönetin, katılımcı ekleyin veya çıkarın, grup mesajları gönderin, topluluklarla çalışın ve WhatsApp Kanallarını otomatikleştirin — gönderi paylaşma, yönetici yönetimi ve kanal verilerini okuma API aracılığıyla desteklenir.
Kanalınızda bir HTTPS webhook URL'si yapılandırın. Etkinlikler gerçekleştiğinde (yeni mesajlar, teslimat durumu, grup değişiklikleri ve daha fazlası), Whapi.Cloud uç noktanıza bir POST yükü gönderir, böylece uygulamanız sürekli sorgulama yapmadan anında tepki verir.
Evet. Make.com ve n8n için yerel konektörleri kullanın veya REST API'yi herhangi bir dilden veya platformdan çağırın. Zapier, IFTTT ve benzeri araçlar standart HTTP istekleri ve webhook'lar aracılığıyla çalışır.
Evet. Sandbox planı, bir numarayı bağlamanıza ve günlük ve aylık kotalarla temel API yöntemlerini test etmenize olanak tanır. Sıkı sandbox sınırları olmadan üretim hacmine ihtiyacınız olduğunda yükseltin.
Whapi.Cloud, mesaj veya konuşma başına değil, bağlı kanal (numara) başına sabit bir aylık fiyat kullanır. API istekleri ücretli planlarda ayrı olarak ölçülmez.
Gönderim kalıpları spam gibi görünüyorsa her türlü otomasyon WhatsApp kısıtlamaları riski taşıyabilir. Risk hacme, hıza, numara itibarına ve mesaj kalitesine bağlıdır. Sorunlar ortaya çıktığında vakaları incelemek için ısındırma araçları, güvenlik rehberliği ve destek sağlıyoruz.
Whapi.Cloud - Ücretsiz başlayın!

WhatsApp API Fiyatlandırma

Aylık Faturalandırma

Yıllık Faturalandırma

Developer Sandbox

Ücretsiz Her zaman

Kullanım limitleri uygulanarak test ve geliştirme için tam API işlevselliği

  • Ayda en fazla 5 aktif konuşma

  • Günde en fazla 150 mesaj

  • Günde en fazla 30 WhatsApp numara kontrolü

  • Ayda en fazla 1.000 API isteği

  • Periyodik etkinlik gereklidir

  • Standart destek (önceliksiz)

Ücretsiz Denemeye Başla
Developer Premium

$29 / ay

$40
%33 indirim

Öncelikli destek ile üretim iş yükleri için stabil ve güvenilir bir hizmet

  • Sınırsız mesajlaşma ve medya

  • Gruplar, Kanallar ve Webhook’lara tam erişim

  • Mesaj başına ücret yok

  • Öncelikli canlı destek ve daha hızlı olay müdahalesi

  • Otomatik numara ısındırma modülü

  • Yerleşik araçlar ve otomasyon entegrasyonları

  • Uzun vadeli ve stabil üretim iş akışları için uygundur

Fiyat WhatsApp numarası başınadır. Birden fazla numara için indirim uygulanır.

Seçilen: 1

1

Numara İçin Fiyat

Ücretsiz Denemeye Başla
5 günlük
deneme