YASend API

البدء السريع

أرسل أول رسالة واتساب عبر واجهة YASend البرمجية خلال خمس دقائق تقريباً.

العنوان الأساسي https://api.yasend.dev · المصادقة Authorization: Bearer <مفتاحك> · الصيغة JSON

1. احصل على مفتاح API

سجّل في yasend.dev، وكل حساب يبدأ بفترة تجريبية مجانية لمدة 24 ساعة. ثم افتح مفاتيح API في البوابة وأنشئ مفتاحاً. يبدأ المفتاح بـ ysk_live_ ويظهر مرة واحدة فقط، فاحفظه ككلمة مرور، وعلى خادمك فقط.

2. أنشئ جلسة

الجلسة هي رقم واتساب واحد متصل بـ YASend.

curl -X POST https://api.yasend.dev/v1/sessions \
  -H "Authorization: Bearer $YASEND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "OTP sender"}'
const res = await fetch("https://api.yasend.dev/v1/sessions", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.YASEND_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ name: "OTP sender" }),
});
const session = await res.json();
console.log(session.id);
import os, requests

r = requests.post("https://api.yasend.dev/v1/sessions",
                  headers={"Authorization": f"Bearer {os.environ['YASEND_KEY']}"},
                  json={"name": "OTP sender"})
session = r.json()
print(session["id"])
use Illuminate\Support\Facades\Http;

$session = Http::withToken(env('YASEND_KEY'))
    ->post('https://api.yasend.dev/v1/sessions', ['name' => 'OTP sender'])
    ->json();
echo $session['id'];
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
    new("Bearer", Environment.GetEnvironmentVariable("YASEND_KEY"));
var res = await http.PostAsJsonAsync("https://api.yasend.dev/v1/sessions", new { name = "OTP sender" });
var session = await res.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(session.GetProperty("id"));

تتضمن الاستجابة مفتاح الجلسة الخاص في الحقل apiKey. هذا المفتاح يعمل مع هذه الجلسة وحدها، ويظهر مرة واحدة فقط أيضاً.

3. اربط هاتفك

شغّل الجلسة، ثم امسح رمز QR بالهاتف الذي يملك الرقم: واتساب ← الإعدادات ← الأجهزة المرتبطة ← ربط جهاز.

curl -X POST https://api.yasend.dev/v1/sessions/$SESSION_ID/connect -H "Authorization: Bearer $YASEND_KEY"
curl "https://api.yasend.dev/v1/sessions/$SESSION_ID/qr?format=png" -H "Authorization: Bearer $YASEND_KEY" -o qr.png

يتجدد رمز QR كل 20 ثانية تقريباً، فاطلبه من جديد إذا انتهت صلاحيته. هل تفضّل كتابة رمز؟ استخدم رمز الاقتران بدلاً منه.

عند اكتمال الربط يظهر "status": "connected" في GET /v1/sessions/{id}.

الأرقام الجديدة تبدأ ببطء. لحماية رقمك من الحظر، لا يرسل الرقم المربوط حديثاً إلا عدداً قليلاً من الرسائل يومياً في البداية، ويحتاج إلى اسم وصورة في الملف الشخصي ومحادثة يدوية واحدة على الأقل. راجع الأمان والإحماء.

4. أرسل رسالة

curl -X POST https://api.yasend.dev/v1/messages \
  -H "Authorization: Bearer $YASEND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sessionId": "'$SESSION_ID'", "to": "963912345678", "text": "Hello from YASend 👋"}'
const res = await fetch("https://api.yasend.dev/v1/messages", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.YASEND_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ sessionId, to: "963912345678", text: "Hello from YASend 👋" }),
});
const message = await res.json();
if (!res.ok) throw new Error(`${message.error.code}: ${message.error.message}`);
console.log(message.status, message.waMessageId);
r = requests.post("https://api.yasend.dev/v1/messages",
                  headers={"Authorization": f"Bearer {os.environ['YASEND_KEY']}"},
                  json={"sessionId": session_id, "to": "963912345678", "text": "Hello from YASend 👋"})
r.raise_for_status()
print(r.json()["status"])
$message = Http::withToken(env('YASEND_KEY'))
    ->post('https://api.yasend.dev/v1/messages', [
        'sessionId' => $sessionId,
        'to' => '963912345678',
        'text' => 'Hello from YASend 👋',
    ])->throw()->json();
var res = await http.PostAsJsonAsync("https://api.yasend.dev/v1/messages",
    new { sessionId, to = "963912345678", text = "Hello from YASend 👋" });
res.EnsureSuccessStatusCode();

الحقل to هو رقم الهاتف بالصيغة الدولية، أرقام فقط (بدون + أو مسافات أو 00 في البداية).

ينتظر الإرسال العادي حتى يقبل واتساب الرسالة، وذلك 3–10 ثوانٍ عادةً، لأن YASend يباعد بين الرسائل كما يفعل الإنسان. للحصول على رد فوري بدلاً من ذلك، أضف ?async=true واستقبل النتيجة عبر الويب هوك. راجع إرسال الرسائل.

الخطوات التالية