API v2 (beta)
Numaralar
Numara, çalışma alanınıza bağlı bir WhatsApp numarası veya bir Telegram hesabıdır. id değeri, mesaj gönderirken kullandığınız from değeridir. API v2 ile numaraları listeler, her birinin bağlı olup olmadığını görür ve bir WhatsApp numarasını kendi uygulamanızdan QR kodla veya eşleştirme koduyla bağlarsınız.
| İşlem | Endpoint | Kapsam |
|---|---|---|
| Numaraları listeleyin | GET /api/v2/numbers | numbers |
| Bir numarayı alın | GET /api/v2/numbers/{id} | numbers |
| Bir WhatsApp numarası bağlayın | POST /api/v2/numbers | numbers |
Bazı numaralarla sınırlı bir anahtar yalnızca bu numaraları görür ve yeniden bağlar; numara ekleyemez.
Numaraları listeleyin#
https://wbiztool.com/api/v2/numbersÇalışma alanının tüm numaraları, en eskiden başlayarak tek bir data listesinde (sayfa yok).
curl https://wbiztool.com/api/v2/numbers \
-H "Authorization: Bearer $WBIZTOOL_API_KEY"import os
import requests
response = requests.get(
"https://wbiztool.com/api/v2/numbers",
headers={"Authorization": f"Bearer {os.environ['WBIZTOOL_API_KEY']}"},
timeout=30,
)
for number in response.json()["data"]:
print(number["id"], number["phone"], number["label"], number["status"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v2/numbers", {
headers: { Authorization: `Bearer ${process.env.WBIZTOOL_API_KEY}` },
});
const { data } = await response.json();
for (const number of data) console.log(number.id, number.phone, number.label, number.status);<?php
$ch = curl_init('https://wbiztool.com/api/v2/numbers');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('WBIZTOOL_API_KEY')],
CURLOPT_RETURNTRANSFER => true,
]);
$numbers = json_decode(curl_exec($ch), true)['data'];
curl_close($ch);
foreach ($numbers as $number) {
echo $number['id'] . ' ' . $number['phone'] . ' ' . $number['status'] . "\n";
}{
"data": [
{
"id": 101,
"phone": "919800000000",
"label": "Shop",
"platform": "whatsapp",
"status": "connected",
"login_method": "qr",
"connect": null
},
{
"id": 102,
"phone": null,
"label": "",
"platform": "whatsapp",
"status": "disconnected",
"login_method": "qr",
"connect": null
}
]
}
Listede connect her zaman null olur. Bir bağlantıyı takip etmek için numarayı alın.
Bir numarayı alın#
https://wbiztool.com/api/v2/numbers/{id}Tek bir numara. Numara bağlanırken connect, taranacak QR kodu veya yazılacak eşleştirme kodunu içerir.
curl https://wbiztool.com/api/v2/numbers/102 \
-H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
"id": 102,
"phone": null,
"label": "",
"platform": "whatsapp",
"status": "connecting",
"login_method": "qr",
"connect": {
"qr_code_url": "https://…/qr_codes/…png?X-Amz-Signature=…",
"pairing_code": null,
"pairing_code_expires_at": null,
"linking": false,
"requested_at": "2026-10-18T11:02:15.402Z"
}
}
Var olmayan veya anahtarın kullanamadığı bir numara 404 number_not_found ile yanıt verir.
Number nesnesi#
| Alan | Tür | Açıklama |
|---|---|---|
id | integer | Numaranın ID'si: bir mesajın veya hatırlatıcının from değeri. |
phone | string veya null | Ülke koduyla birlikte rakamları, + olmadan, örneğin 919800000000. QR kodla bağlanan yeni bir numarada QR kod taranana kadar null. |
label | string | Paneldeki adı; adı yoksa "". |
platform | string | whatsapp veya telegram. |
status | string | connected, connecting (son 10 dakika içinde bağlantı istendi ve hâlâ sürüyor) veya disconnected. |
login_method | string | Nasıl bağlandığı: qr veya phone_code (eşleştirme kodu). |
connect | object veya null | status değeri connecting iken ve yalnızca Bir numarayı alın yanıtında; aksi halde null. |
connect şunları içerir:
| Alan | Tür | Açıklama |
|---|---|---|
qr_code_url | string veya null | Taranacak QR kod görselinin bağlantısı. Her çağrı 10 dakika geçerli yeni bir bağlantı verir; sunucu QR kodu alana kadar null. |
pairing_code | string veya null | phone_code için: telefonda yazılacak kod. Hazır olana kadar null. |
pairing_code_expires_at | string veya null | Eşleştirme kodunun çalışmayı bıraktığı zaman. |
linking | boolean | QR kod tarandıktan veya kod kabul edildikten sonra, WhatsApp bağlamayı tamamlarken true. |
requested_at | string veya null | Bağlantının istendiği zaman. |
from olarak disconnected bir numarayla gönderilen mesajlar yine de kabul edilir: bekler ve numara yeniden bağlandığında gönderilir. Numaralar için webhook olayları daha sonra gelecek; o zamana kadar oturumu kapatılmış bir numarayı fark etmek için GET /numbers isteğini düzenli aralıklarla yapın.
Bir WhatsApp numarası bağlayın#
https://wbiztool.com/api/v2/numbersGövde: JSON (application/json)
Bir WbizTool sunucusundan bir numara için WhatsApp'ı açmasını ister; böylece numarayı, WhatsApp numaraları sayfasında yapacağınız gibi kendi uygulamanızdan veya web sitenizden bağlayabilirsiniz. Yanıt, connecting durumundaki Number ile 202 olur. Ardından numara connected olana kadar onu sorgulayın.
QR kod API'sini içeren bir plan gerekir; aksi halde 403 plan_required yanıtı alırsınız. Telegram hesapları burada değil, panelde bağlanır.
Gövde
login_methodstringisteğe bağlıqr(varsayılan): bir QR kod tarayın.phone_code: bunun yerine telefonda bir eşleştirme kodu yazın; telefon tek ekranınız olduğunda kullanışlıdır.phonestringphone_code için zorunluBağlanacak WhatsApp numarası,
+ile uluslararası biçimde, örneğin+919876543210.qrile kullanılmaz: numara tarama sonrasında WhatsApp'tan okunur.number_idintegeristeğe bağlıYeni bir numara eklemek yerine bu mevcut numarayı yeniden bağlayın; örneğin oturumu kapatıldıktan sonra.
# By QR code
curl -X POST https://wbiztool.com/api/v2/numbers \
-H "Authorization: Bearer $WBIZTOOL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"login_method": "qr"}'
# By pairing code, reconnecting number 101
curl -X POST https://wbiztool.com/api/v2/numbers \
-H "Authorization: Bearer $WBIZTOOL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"login_method": "phone_code", "phone": "+919876543210", "number_id": 101}'import os
import time
import requests
API = "https://wbiztool.com/api/v2"
headers = {"Authorization": f"Bearer {os.environ['WBIZTOOL_API_KEY']}"}
number = requests.post(f"{API}/numbers", headers=headers,
json={"login_method": "phone_code", "phone": "+919876543210"}, timeout=30).json()
shown = None
while number["status"] == "connecting":
time.sleep(3)
number = requests.get(f"{API}/numbers/{number['id']}", headers=headers, timeout=30).json()
code = (number["connect"] or {}).get("pairing_code")
if code and code != shown:
print("On the phone: WhatsApp → Linked devices → Link with phone number, then type", code)
shown = code
print("Number", number["id"], "is", number["status"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const API = "https://wbiztool.com/api/v2";
const headers = { Authorization: `Bearer ${process.env.WBIZTOOL_API_KEY}`, "Content-Type": "application/json" };
let number = await (await fetch(`${API}/numbers`, {
method: "POST", headers, body: JSON.stringify({ login_method: "qr" }),
})).json();
let shown = null;
while (number.status === "connecting") {
await new Promise((r) => setTimeout(r, 3000));
number = await (await fetch(`${API}/numbers/${number.id}`, { headers })).json();
const qr = number.connect?.qr_code_url;
if (qr && qr !== shown) {
console.log("Show this QR code to scan:", qr); // e.g. in an <img> on your page
shown = qr;
}
}
console.log(`Number ${number.id} is ${number.status}`);<?php
$ch = curl_init('https://wbiztool.com/api/v2/numbers');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('WBIZTOOL_API_KEY'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['login_method' => 'qr']),
CURLOPT_RETURNTRANSFER => true,
]);
$number = json_decode(curl_exec($ch), true);
curl_close($ch);
// Save $number['id'], then poll GET /api/v2/numbers/{id} every few seconds (see The connect flow).
echo $number['id'] . ' ' . $number['status'];Bağlanma akışı#
Bağlantı isteyin
login_methodile (eşleştirme kodu içinphoneile de)POST /numbersgönderin. Yanıttakiiddeğerini saklayın. Bir yeniden denemenin iki kez istekte bulunmaması için birIdempotency-Keygönderin.Numarayı birkaç saniyede bir sorgulayın
statusdeğericonnectingolduğu sürece her 2 ila 5 saniyede birGET /numbers/{id}gönderin. QR kod veya eşleştirme kodu birkaç saniye içindeconnectiçinde görünür; o zamana kadar alanlarınullolur.QR kodu veya eşleştirme kodunu gösterin
QR:
connect.qr_code_urladresindeki görseli gösterin; telefonda WhatsApp → Bağlı cihazlar → Cihaz bağla yolunu açın ve kodu tarayın. Her bağlantı 10 dakika çalışır ve her sorguyla yeni bir bağlantı gelir; bu yüzden her seferinde en yenisini gösterin. Eşleştirme kodu: telefonda WhatsApp → Bağlı cihazlar → Cihaz bağla → Telefon numarasıyla bağla yolunu açın ve 8 karakterlikconnect.pairing_codekodunuconnect.pairing_code_expires_atzamanından önce (yaklaşık 3 dakika) yazın.Bağlanmasını bekleyin
Taramadan veya koddan sonra, WhatsApp bağlamayı tamamlarken
connect.linkingdeğeritrueolur. Ardındanstatusdeğericonnectedolur vephonenumarayı gösterir. Sorgulamayı bırakın.
10 dakika boyunca hiçbir şey olmazsa deneme sona erer ve status yeniden disconnected olur. POST /numbers ve numaranın number_id değeriyle yeniden isteyin.
Bir numara bağlanırken onun için yapılan başka bir istek, number_id ile birlikte 409 connect_in_progress yanıtını verir: bunun yerine o numarayı sorgulamaya devam edin.
Bağlanırken alınan hatalar#
| HTTP | Kod | Ne zaman |
|---|---|---|
400 | validation_failed | login_method, qr veya phone_code değil ya da phone olmadan phone_code gönderildi |
403 | plan_required | Plan QR kod API'sini içermiyor |
403 | number_limit_reached | Planda başka bir numara için yer yok |
403 | number_not_allowed | Anahtar bazı numaralarla sınırlı ve number_id bunlardan biri değil (veya eksik) |
409 | already_connected | Bu numara zaten bağlı |
409 | connect_in_progress | Bu numara şu anda bağlanıyor; number_id hangisi olduğunu söyler |
422 | invalid_phone | phone, + ile uluslararası biçimde geçerli bir numara değil |
422 | number_not_found | number_id bu çalışma alanının bir numarası değil |
İlgili sayfalar#
- Panelden WhatsApp numaranızı bağlayın
- Telegram hesabı bağlayın
- Mesajlar:
fromile bir numaradan gönderin - Hatalar
