# مرجع BroadNet API.

- الرابط الأساسي: https://www.broadnet.me/ar/developers/api
- اللغة: ar
- آخر تحديث: 2026-10-19
- الناشر: BroadNet (https://www.broadnet.me)
- نسخة Markdown من الصفحة، مولّدة من الصفحة المعروضة.

دليل المطورين · واجهة برمجة API REST· OpenAPI 3.1

API REST واحدة لرسائل SMS، WhatsApp، RCS، وتليجرام، والبريد الإلكتروني، وماسنجر، وإنستجرام، والإشعارات الفورية. يتم إرسال كل طلب عبر HTTPS ويتم التحقق من صحته باستخدام رمز Bearer. لكل قناة مجموعة مسارات خاصة بها، ويتم وصف API بالكامل في مواصفات OpenAPI 3.1 القابلة للتنزيل. تغطي هذه الصفحة المكالمات التي تبدأ بها معظم عمليات التكامل، بدءًا من رسالة SMS واحدة.

قراءة لمدة 12 دقيقة · تم التحديث في سبتمبر 2026 [مركز المطورين](https://www.broadnet.me/ar/developers)

في هذه الصفحة

## نظرة عامة

API BroadNet هي واجهة REST API عبر HTTPS. يتم المصادقة باستخدام رمز Bearer، ثم إرسال طلب JSON أو multipart إلى نقطة نهاية القناة، واستلام معرّف الرسالة أو ملخص الدفعة. يتم إرسال حالة التسليم إلى عنوان URL الخاص بخطاف الويب المُكوّن في حسابك. تم نشر API الكاملة، التي تضم 329 مسارًا و376 عملية عبر ثماني قنوات، كمواصفة OpenAPI 3.1. تستخدم الأمثلة في هذه الصفحة curl و Node.js و Python و Java و C# و Go و Ruby وحزمة تطوير البرامج الرسمية TypeScript SDK.

## البيئات

تستدعي النماذج الموجودة في هذه الصفحة رابط URL الأساسي لبيئة الإنتاج. تصلك بيانات اعتماد الاختبار، ومعها وجهة إرسال حركة الاختبار، مع وصولك التجريبي: اطلبه عبر /signup وسنرد عليك خلال يوم عمل واحد.

| بيئة | عنوان URL الأساسي |
|---|---|
| إنتاج | https://api.broadnet.me |

## المصادقة

يحمل كل طلب رمز الوصول الخاص بك في ترويسة HTTP. يُصدر هذا الرمز لكل حساب على حدة، ويأتي من حساب BroadNet الخاص بك. تقرأ الأمثلة في هذه الصفحة الرمز من متغير بيئي يُسمى BROADNET_TOKEN.

HTTP

```
Authorization: Bearer $BROADNET_TOKEN
```

في حال كان الرمز المميز مفقودًا أو غير صالح، يُجيب API HTTP 401 مع نص خطأ JSON بالتنسيق القياسي الموضح أدناه. لا يوجد أي استدعاء يستبدل اسم المستخدم وكلمة المرور بالرمز المميز.

احتفظ بالرمز المميز على جانب الخادم

يمنحك الرمز المميز صلاحيات الإرسال على حسابك. قم بتخزينه في متغير بيئي أو مدير أسرار، ولا تقم بتخزينه أبدًا في نظام التحكم في الإصدار أو تطبيق جوال أو كود متصفح، وقم دائمًا باستدعاء API عبر HTTPS.

## أرسل رسالة SMS

أرسل رسالة SMS واحدة تحتوي على نص بتنسيق JSON. الحقول الأربعة المطلوبة هي: المرسل، والمستلم، والنص، والترميز.

POST https://api.broadnet.me/sms/sendSms

الحقول المطلوبة

| الحقل | نوع البيانات | وصف |
|---|---|---|
| senderId | string | معرّف المُرسِل المعتمد الخاص بك، والذي يظهر للمستلم كمرسل. |
| destinationNumber | string | رقم المستلم مع رمز البلد، أرقام فقط، بدون علامة زائد. |
| message | string | نص الرسالة. |
| messageType | string | الترميز: TEXT لنصوص GSM-7، وUNICODE للغة العربية والرموز التعبيرية والنصوص الأخرى. |

الحقول الاختيارية

| الحقل | نوع البيانات | وصف |
|---|---|---|
| charCount | integer | عدد الأحرف، كما تم إرجاعه بواسطة /sms/identify. |
| smsParts | integer | عدد المقاطع، كما تم إرجاعه بواسطة /sms/identify. |
| charLimit | integer | عدد الأحرف في كل مقطع، كما تم إرجاعه بواسطة /sms/identify. |
| expiryHour | integer | مدة الصلاحية بالساعات. |
| isSchedule | boolean | اضبطه على true لجدولة الرسالة بدلاً من إرسالها الآن. |
| delay | number | مهلة التأخير قبل الإرسال. |
| gmt | string | إزاحة التوقيت عن GMT المستخدمة في الجدولة. |
| time | — | وقت الإرسال المجدول (مع isSchedule). |
| repeat | — | إعداد التكرار للإرسالات المجدولة. |
| peId | string | معرف الكيان الرئيسي، حيثما تطلب جهة تنظيمية ذلك. |
| templateId | string | معرف القالب المسجل، حيثما تطلبه جهة تنظيمية. |
| telemarketerId | string | معرف المسوق عبر الهاتف، حيثما يشترط ذلك من قبل جهة تنظيمية. |
| campaignName | string | تسمية تختارها لأغراض التقارير. |

curl

```
curl -X POST https://api.broadnet.me/sms/sendSms \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "senderId": "BroadNet",
    "destinationNumber": "447700900123",
    "message": "Your verification code is 482913",
    "messageType": "TEXT"
  }'

# 200 OK → response body is the message ID, e.g. 2603121407537573731
```

Node.js 18+ · fetch

```
// Node.js 18+ (fetch)
const res = await fetch("https://api.broadnet.me/sms/sendSms", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.BROADNET_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    senderId: "BroadNet",
    destinationNumber: "447700900123",
    message: "Your verification code is 482913",
    messageType: "TEXT",
  }),
});

console.log(await res.text()); // message ID
```

Python · requests

```
import os, requests

r = requests.post(
    "https://api.broadnet.me/sms/sendSms",
    headers={"Authorization": f"Bearer {os.environ['BROADNET_TOKEN']}"},
    json={
        "senderId": "BroadNet",
        "destinationNumber": "447700900123",
        "message": "Your verification code is 482913",
        "messageType": "TEXT",
    },
)

print(r.status_code, r.text)  # message ID
```

Java 11+ · java.net.http

```
// Java 11+ — java.net.http is built in, nothing to install
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class SendSms {
    public static void main(String[] args) throws Exception {
        String json = "{"
            + "\"senderId\": \"BroadNet\", "
            + "\"destinationNumber\": \"447700900123\", "
            + "\"message\": \"Your verification code is 482913\", "
            + "\"messageType\": \"TEXT\""
            + "}";

        HttpRequest req = HttpRequest.newBuilder(URI.create("https://api.broadnet.me/sms/sendSms"))
            .header("Authorization", "Bearer " + System.getenv("BROADNET_TOKEN"))
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(json))
            .build();

        HttpResponse<String> res = HttpClient.newHttpClient()
            .send(req, HttpResponse.BodyHandlers.ofString());

        System.out.println(res.statusCode() + " " + res.body()); // 200 + message ID
    }
}
```

C# · .NET 6+ HttpClient

```
// .NET 6+ console app (Program.cs) — HttpClient is built in, no NuGet package
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Net.Http.Json;

using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
    "Bearer", Environment.GetEnvironmentVariable("BROADNET_TOKEN"));

// PostAsJsonAsync sends Content-Type: application/json
var res = await http.PostAsJsonAsync("https://api.broadnet.me/sms/sendSms", new
{
    senderId = "BroadNet",
    destinationNumber = "447700900123",
    message = "Your verification code is 482913",
    messageType = "TEXT",
});

var id = await res.Content.ReadAsStringAsync();
Console.WriteLine($"{(int)res.StatusCode} {id}"); // 200 + message ID
```

Go · net/http

```
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	body := []byte(`{
		"senderId": "BroadNet",
		"destinationNumber": "447700900123",
		"message": "Your verification code is 482913",
		"messageType": "TEXT"
	}`)

	req, err := http.NewRequest(http.MethodPost, "https://api.broadnet.me/sms/sendSms", bytes.NewReader(body))
	if err != nil {
		panic(err)
	}
	req.Header.Set("Authorization", "Bearer "+os.Getenv("BROADNET_TOKEN"))
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()

	id, _ := io.ReadAll(res.Body)
	fmt.Println(res.StatusCode, string(id)) // 200 + message ID
}
```

Ruby · Net::HTTP

```
require "net/http"
require "json"

uri = URI("https://api.broadnet.me/sms/sendSms")
req = Net::HTTP::Post.new(uri)
req["Authorization"] = "Bearer #{ENV.fetch('BROADNET_TOKEN')}"
req["Content-Type"]  = "application/json"
req.body = {
  senderId:          "BroadNet",
  destinationNumber: "447700900123",
  message:           "Your verification code is 482913",
  messageType:       "TEXT"
}.to_json

res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
puts "#{res.code} #{res.body}" # 200 + message ID
```

TypeScript SDK · @broadnet/cpaas-sdk

```
// npm install @broadnet/cpaas-sdk axios
import { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk";

const sms = new SMSSMSApi(
  new Configuration({
    basePath: "https://api.broadnet.me",
    accessToken: process.env.BROADNET_TOKEN!,
  }),
);

const res = await sms.smsSendsmsPost({
  sMSSmsRequest: {
    senderId: "BroadNet",
    destinationNumber: "447700900123",
    message: "Your verification code is 482913",
    messageType: "TEXT",
  },
});

console.log(res.data); // message ID
```

يؤدي الاتصال الناجح إلى إرجاع HTTP 200 ومعرف الرسالة كنص الاستجابة، بدون غلاف JSON:

200 OK

```
HTTP/1.1 200 OK

2603121407537573731
```

لا توجد حقول طلب أخرى

استخدم أسماء الحقول المذكورة أعلاه تمامًا. أسماء مثل `to`، `from`، `text` أو `channel` ليست جزءًا من هذه النقطة النهائية.

## الترميز والمقاطع

يُحدد الحقل messageType الترميز، ويُحدد الترميز عدد الأحرف التي يتسع لها مقطع SMS الواحد. تُقسّم الرسائل الطويلة إلى مقاطع ويُعاد تجميعها على الهاتف.

| messageType | رسالة SMS واحدة | لكل مقطع (رسالة طويلة) | يستخدم لـ |
|---|---|---|---|
| TEXT | 160 | 153 | أحرف GSM-7 فقط. |
| UNICODE | 70 | 67 | أي نص آخر: العربية، السيريلية، الرموز التعبيرية، الأحرف المُشكّلة خارج نطاق GSM-7. |

لست متأكدًا من الترميز الذي يجب استخدامه؟ استشر API. تقوم نقطة النهاية "identify" بتحليل الرسالة وإرجاع ترميزها، وعدد الأحرف، وعدد المقاطع، وعدد الأحرف في كل مقطع، والتي يمكنك تمريرها مباشرةً إلى طلب الإرسال.

curl · /sms/identify

```
curl -X POST https://api.broadnet.me/sms/identify \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "message": "Your verification code is 482913" }'
```

200 OK

```
{
  "message": "Your verification code is 482913",
  "messageType": "TEXT",
  "smscount": 1,
  "charCount": 32,
  "charLimit": 160
}
```

جرب ذلك بدون كتابة أي كود في [عداد أحرف رسائل SMS](https://www.broadnet.me/ar/developers/sms-counter).

## تنسيقات أرقام الهواتف

أرقام الوجهة هي رمز الدولة متبوعًا بالرقم الوطني، بالأرقام فقط. لا تُضف علامة زائد في البداية، أو بادئة 00، أو مسافات، أو شرطات، أو أقواس.

| مثال | نتيجة | لماذا |
|---|---|---|
| 447700900123 | صالح | رمز الدولة 44 بالإضافة إلى الرقم الوطني، أرقام فقط. |
| +44 7700 900123 | يرفض | يحتوي على علامة زائد ومسافات. قم بإزالتها أولاً. |
| 07700900123 | يرفض | تنسيق وطني يبدأ بصفر ولا يحتوي على رمز الدولة. |

قم بتطبيع البيانات قبل الإرسال

خزّن الأرقام في E.164، ثم احذف علامة الجمع عند إنشاء الطلب. استبدل الصفر البادئ للرقم الوطني برمز الدولة. الأرقام المعروضة في هذه الصفحة هي أرقام من نطاق لا يُستخدم أبدًا لمشتركين حقيقيين.

## الرسائل النصية الجماعية

لإرسال رسالة واحدة إلى عدة مستلمين، حمّل ملفًا من الأرقام في طلب متعدد الأجزاء. يتكون الطلب من جزأين: الأول، destinationNumberFile، وهو ملف CSV أو TXT يحتوي على أرقام. أما الثاني، bulkRequest، فهو سلسلة JSON تتضمن اسم المرسل، والنص، والترميز، واسم الحملة.

POST https://api.broadnet.me/sms/sendbulk

curl · /sms/sendbulk

```
curl -X POST https://api.broadnet.me/sms/sendbulk \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -F destinationNumberFile=@recipients.csv \
  -F 'bulkRequest={"senderId":"BroadNet","message":"Your statement is ready","messageType":"TEXT","campaignName":"statements"}'
```

200 OK

```
{
  "status": "success",
  "bulkSessionId": "1_20260228105000887",
  "credits": "9966465.42850",
  "deductcredits": "0.60000",
  "bulkListInfo": {
    "total": 4,
    "validCount": 3,
    "invalidCount": 0,
    "duplicate": 1
  }
}
```

يُظهر لك كائن bulkListInfo عدد الأرقام المقبولة، وعدد الأرقام غير الصالحة، وعدد الأرقام المكررة. بمجرد تشغيل المهمة، يمكنك إدارتها باستخدام معرّف الدفعة الخاص بها.

| طريقة HTTP | مسار نقطة النهاية | وصف |
|---|---|---|
| GET | /sms/list | اعرض مهام الإرسال الجماعي مع عدد الرسائل المُعالجة والمعلّقة. |
| GET | /sms/pause?batch_Id=… | إيقاف مؤقت لمهمة قيد التشغيل. |
| GET | /sms/resume?batch_Id=… | استئناف مهمة متوقفة مؤقتًا. |
| DELETE | /sms/abort?batch_Id=… | إلغاء المهمة؛ لن يتم إرسال الرسائل المعلقة. |
| POST | /sms/resend | إعادة إرسال الرسائل من مهمة سابقة. |
| POST | /sms/send-now | إطلاق مهمة مجدولة للإرسال فورًا. |
| POST | /sms/auto-schedule | جدولة مهمة جماعية تلقائيًا. |

curl · batch control

```
# List your bulk jobs (each entry's id is the batch_Id below)
curl https://api.broadnet.me/sms/list \
  -H "Authorization: Bearer $BROADNET_TOKEN"

# Pause, then resume, a running job
curl "https://api.broadnet.me/sms/pause?batch_Id=1024" \
  -H "Authorization: Bearer $BROADNET_TOKEN"
curl "https://api.broadnet.me/sms/resume?batch_Id=1024" \
  -H "Authorization: Bearer $BROADNET_TOKEN"
```

## البحث عن رقم

تحقق من حالة الرقم (HLR و MNP) قبل إرساله، على سبيل المثال لتنظيف قائمة أو لمعالجة الأرقام المنقولة. مرر الرقم كمعامل استعلام destinationNumber. يحدد المعامل الاختياري reqType نوع البحث.

POST https://api.broadnet.me/sms/lookup

curl · /sms/lookup

```
curl -X POST "https://api.broadnet.me/sms/lookup?destinationNumber=447700900123" \
  -H "Authorization: Bearer $BROADNET_TOKEN"
```

## حالة التسليم

يتم إرسال حالة التسليم إلى عنوان URL الخاص بخطاف الويب المُكوّن على حساب BroadNet الخاص بك مع انتقال كل رسالة خلال دورة حياتها. وتتبع حالات الرسائل دورة الحياة التالية:

- `SUBMITTED` · تم قبول الطلب من قبل BroadNet ووضعه في قائمة الانتظار للشبكة.
- `SENT` · يتم تسليمها إلى المشغّل أو القناة.
- `DELIVERED` · تم التأكد من ذلك على الهاتف.
- `READ` · يتم فتحها من قبل المستلم، على قنوات يتم الإبلاغ عن قراءتها، مثل WhatsApp.
- `FAILED / REJECTED` · لم يتم التسليم.

يمكنك أيضًا الاستعلام الدوري عن الحالة (polling). بالنسبة إلى WhatsApp، تُعيد نقطة النهاية bulk-insights حالة كل مُستلم في الدفعة. أما مهام SMS الجماعية، فتُعيد نقطة النهاية list عدد الرسائل المُعالجة والمعلقة.

احتفظ بمعرفات الرسائل الخاصة بك

قم بتخزين معرّف الرسالة أو معرّف الدفعة الذي يتم إرجاعه مع كل عملية إرسال. إنه المفتاح الذي يربط حالة التسليم بطلبك أو بيانات تسجيل دخولك أو حملتك، ويتيح لك تجنب إعادة إرسال رسالة تم قبولها بالفعل.

## أخطاء

يتم رفض رمز Bearer المفقود أو غير الصالح عند بوابة API قبل وصول الطلب إلى API. تُعيد البوابة HTTP 401 مع نص JSON يحتوي على حقلين: error وmessage.

401 Unauthorized

```
{
  "error": "Unauthorized",
  "message": "Missing Authorization token"
}
```

تُعيد الأخطاء التي يُثيرها API نفسها، مثل خطأ التحقق 400، نص JSON يُسمى ExceptionResponse، يحتوي على خمسة حقول: status و error و message و errorCode و requestUri. القيم أدناه عناصر نائبة للتوضيح.

400 · ExceptionResponse

```
{
  "status": 400,
  "error": "Bad Request",
  "message": "…",
  "errorCode": "…",
  "requestUri": "/sms/sendSms"
}
```

| حالة | معنى |
|---|---|
| 200 | نجاح. |
| 400 | طلب غير صالح: خطأ في التحقق من الصحة أو حقل مطلوب مفقود. |
| 401 | رمز Bearer مفقود أو غير صالح. |
| 403 | الرمز المميز صالح ولكن لا يُسمح له باستدعاء هذه العملية. |
| 500 | خطأ غير متوقع في الخادم. أعد المحاولة لاحقًا بتأخير تدريجي (backoff). |

أعد المحاولة فقط في حالة حدوث أخطاء في الشبكة أو تلقي استجابات من نوع 5xx، مع تطبيق آلية التراجع الأسي. أصلح أخطاء 4xx بدلاً من إعادة محاولة معالجتها. إذا كان حسابك مرتبطًا أيضًا عبر SMPP، فإن عمليات الإرسال هناك تُعيد رموز حالة SMPP القياسية، والمُدرجة في [دليل بروتوكول SMPP](https://www.broadnet.me/ar/developers/smpp).

## قنوات مراسلة أخرى

يُستخدم نفس الرمز المميز وعنوان URL الأساسي لكل قناة. هذه هي نقاط الإرسال؛ وتوثّق مواصفات OpenAPI حقولها ونقاط الإدارة المرتبطة بها (القوالب، جهات الاتصال، التقارير).

| قناة المراسلة | طريقة HTTP | مسار نقطة النهاية | وصف |
|---|---|---|---|
| SMS | POST | /sms/sendSms | رسالة واحدة (JSON). |
| SMS | POST | /sms/sendbulk | إرسال جماعي من ملف (multipart). |
| WhatsApp | POST | /whatsapp/message/sendbulk | نص، وسائط، قوالب، تفاعلي (متعدد الأجزاء). |
| RCS | POST | /rcs/message/sendbulk | رسائل RCS (متعددة الأجزاء). |
| Telegram | POST | /telegram-sms/send | رسائل تيليجرام. |
| Email | POST | /email/email-service/send | بريد إلكتروني يتضمن الموضوع، والنص، والمستلمين. |
| Messenger | POST | /messenger/message/sendbulk | رسائل فيسبوك ماسنجر (متعددة الأجزاء). |
| Instagram | POST | /instagram/message/sendbulk | رسائل إنستغرام (متعددة الأجزاء). |
| Push | POST | /push/message/send | إشعارات الدفع (JSON). |

نموذج إرسال WhatsApp، على سبيل المثال:

curl · /whatsapp/message/sendbulk

```
curl -X POST https://api.broadnet.me/whatsapp/message/sendbulk \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -F batchId=0 \
  -F campaignName=order-updates \
  -F destinationNo=447700900123 \
  -F messageType=TEMPLATE \
  -F templateName=order_update \
  -F templateLanguage=en_US \
  -F bodyTemplateVariables=INV-400
```

عيّن قيمة batchId إلى 0 لبدء دفعة جديدة. يقبل حقل destinationNo عدة أرقام مفصولة بفواصل. تحتوي الاستجابة على معرّف الدفعة الذي تستخدمه لقراءة حالة كل مستلم.

## SDK TypeScript

تنشر BroadNet SDK رسمية واحدة، لـ TypeScript و Node.js: [@broadnet/cpaas-sdk](https://www.npmjs.com/package/@broadnet/cpaas-sdk) متوفر على npm. تم إنشاؤه من مواصفات BroadNet OpenAPI، ويأتي مزودًا بوحدات CommonJS وES مع تعريفات كاملة للأنواع، ويحتوي على ميزة فئة API واحدة لكل قناة. اعتماديته الوحيدة وقت التشغيل هي axios، ويثبّتها npm معه.

terminal

```
npm install @broadnet/cpaas-sdk axios
```

TypeScript · WhatsApp

```
import { Configuration, WhatsAppWhatsAppMessagingAPIApi } from "@broadnet/cpaas-sdk";

const wa = new WhatsAppWhatsAppMessagingAPIApi(
  new Configuration({
    basePath: "https://api.broadnet.me",
    accessToken: process.env.BROADNET_TOKEN!,
  }),
);

const res = await wa.whatsappMessageSendbulkPost({
  campaignName: "order-updates",
  messageType: "TEXT",
  destinationNo: "447700900123",
  content: "Your order has shipped.",
});

console.log(res.data); // batchId + per-file acceptance counts
```

بالنسبة لأي لغة أخرى، قم باستدعاء API REST مباشرة (أمثلة Node.js و Python و Java و C# و Go و Ruby المذكورة أعلاه لا تستخدم مكتبة BroadNet) أو قم بإنشاء عميل من مواصفات OpenAPI.

## مواصفات OpenAPI

تم وصف API بالكامل في ملف واحد من OpenAPI 3.1: 329 مسارًا و376 عملية عبر ثماني قنوات. هذه نسخة عامة من المواصفات مع حذف الأمثلة الداخلية. يمكنك استيرادها إلى Postman أو Insomnia، أو استعراضها في واجهة Swagger UI، أو إنشاء عميل.

[openapi.yaml](https://www.broadnet.me/developers/openapi.yaml) [openapi.json](https://www.broadnet.me/developers/openapi.json)

terminal

```
curl -O https://www.broadnet.me/developers/openapi.yaml

# Generate a client in any language, e.g. Python
npx @openapitools/openapi-generator-cli generate \
  -i openapi.yaml -g python -o broadnet-python
```

هل تفضل استخدام Postman؟ استورد المواصفات للحصول على كل عملية، أو ابدأ بمجموعة صغيرة من الاستدعاءات الأساسية.

[نزّل مجموعة Postman](https://www.broadnet.me/docs/api/postman-collection) [قم بتوصيل وكلاء الذكاء الاصطناعي بخادم MCP](https://www.broadnet.me/ar/developers/mcp)

## API HTTP القديمة (/websmpp)

قد تستخدم الحسابات التي تم إنشاؤها على منصة BroadNet الخاصة ببروتوكول SMPP API HTTP القديمة ضمن المسار /websmpp. وهي تعمل باستمرار مع عمليات التكامل الحالية، وموثقة في مواصفات OpenAPI. وتستقبل هذه الواجهة بيانات الاعتماد كمعاملات طلب (اسم المستخدم وكلمة المرور، أو مفتاح الوصول) بدلاً من رمز Bearer. أما عمليات التكامل الجديدة، فينبغي أن تستخدم API REST الموضحة أعلاه.

| طريقة HTTP | مسار نقطة النهاية | وصف |
|---|---|---|
| GET | /websmpp/websms | أرسل رسالة SMS. أضف schtime وgmt لجدولتها.user, pass (or accesskey), sid, mno, type, text, schtime, gmt |
| POST | /websmpp/json/sms | أرسل باستخدام كائن حملة JSON الذي يحمل بيانات الاعتماد والمرسل والأرقام والنص.campaign { username, password, sender, gsm, text, type } |
| GET | /websmpp/websmsstatus | حالة الرسالة المُرسلة، حسب معرّف الاستجابة الخاص بها.respid, format |
| POST | /websmpp/api/dlrreport | تقرير التسليم لفترة زمنية محددة، بصيغة جدول بيانات.username, pass, from_date, to_date |
| GET | /websmpp/hlr/lookup | البحث عن رقم واحد في HLR.username, password, destination |

curl · legacy

```
# Legacy HTTP API — credentials as query parameters (existing integrations only)
curl "https://api.broadnet.me/websmpp/websms?user=USERNAME&pass=PASSWORD&sid=BroadNet&mno=447700900123&type=1&text=Hello"

# Status of a submitted message
curl "https://api.broadnet.me/websmpp/websmsstatus?respid=MESSAGE_ID&format=json"
```

بيانات الاعتماد الموجودة في عنوان URL تُسجل في السجلات.

تُسجّل بيانات اعتماد سلسلة الاستعلام في سجلات الخادم والوكيل وشبكة توصيل المحتوى (CDN). إذا كنت لا تزال تستخدم API التطبيقات القديمة، فاستخدم بروتوكول HTTPS فقط، وقم بتغيير بيانات الاعتماد بانتظام، وخطط للانتقال إلى API REST التي تعتمد على رمز Bearer.

## الأسئلة الشائعة

**كيف أقوم بالمصادقة؟**

أرسل رمز الوصول الخاص بك في ترويسة Authorization: Bearer مع كل طلب. يأتي الرمز من حسابك BroadNet؛ ولا توجد عملية إنشاء رموز في API. يتم رفض الرمز المميز المفقود أو غير الصالح عند بوابة API باستخدام HTTP 401 وجسم JSON يحتوي على حقلين، error وmessage. احتفظ بالرمز في متغير بيئي أو مدير أسرار، ولا تقم أبدًا بتضمينه في نظام التحكم بالمصادر أو في كود جانب العميل.

**ما هو عنوان URL الأساسي؟**

تستدعي كل عينة بيئة الإنتاج، https://api.broadnet.me. تصلك بيانات اعتماد الاختبار، ومعها وجهة إرسال حركة الاختبار، مع وصولك التجريبي: اطلبه عبر /signup وسنرد عليك خلال يوم عمل واحد.

**كيف يمكنني إرسال نص عربي أو نص آخر بتنسيق يونيكود؟**

اضبط messageType على UNICODE. واستخدم TEXT فقط عندما تكون كل الأحرف من أبجدية GSM-7. وإذا لم تكن متأكدًا، فاستدعِ POST /sms/identify مع الرسالة: فهو يُعيد messageType، وعدد الأحرف، وعدد المقاطع، وعدد الأحرف في كل مقطع.

**ماذا يُرجع الإرسال الناجح؟**

يُعيد POST /sms/sendSms الرمز HTTP 200 ومعرّف الرسالة في جسم الاستجابة. أما الإرسال الجماعي فيُعيد كائن JSON يحتوي على status وbulkSessionId وcredits وdeductcredits وbulkListInfo.

**كيف يمكنني إرسال رسالة SMS إلى العديد من المستلمين؟**

استخدم POST /sms/sendbulk مع تحميل متعدد الأجزاء: حيث يمثل destinationNumberFile ملف CSV أو TXT يحتوي على أرقام، بينما يمثل bulkRequest سلسلة JSON تتضمن senderId وmessage وmessageType وcampaignName. يمكن بعد ذلك عرض المهام أو إيقافها مؤقتًا أو استئنافها أو إلغاؤها باستخدام معرّف الدفعة.

**كيف يمكنني معرفة حالة التسليم؟**

يتم إرسال حالة التسليم إلى عنوان URL الخاص بخطاف الويب المُعدّ في حسابك. بالنسبة WhatsApp، يمكن أيضًا قراءة حالة كل مُستلم من خلال الرابط /whatsapp/message/bulk-insights.

**هل يوجد SDK؟**

نعم، واحدة: SDK الرسمية لـ TypeScript / Node.js، @broadnet/cpaas-sdk على npm، والمُنشأة من مواصفات BroadNet OpenAPI. لأي لغة أخرى، يُمكنك استدعاء API REST مباشرةً أو إنشاء عميل من مواصفات OpenAPI 3.1 الموجودة في /developers/openapi.yaml.

**ما هي API /websmpp؟**

API HTTP القديمة، المستخدمة حاليًا لعمليات التكامل القائمة من عصر SMPP. وهي تقبل بيانات الاعتماد كمعاملات طلب. أما عمليات التكامل الجديدة، فينبغي أن تستخدم API REST الخاصة برمز Bearer الموضحة في هذه الصفحة.

## متعلق ب

[دليل التشغيل السريع /developers/quickstart](https://www.broadnet.me/ar/developers/quickstart) [وكلاء الذكاء الاصطناعي خادم MCP /developers/mcp](https://www.broadnet.me/ar/developers/mcp) [بروتوكول دليل بروتوكول SMPP /developers/smpp](https://www.broadnet.me/ar/developers/smpp) [الوثائق مركز المطورين /developers](https://www.broadnet.me/ar/developers) [منتج API رسائل SMS /products/sms-api](https://www.broadnet.me/ar/products/sms-api) [منتج API WhatsApp للأعمال /products/whatsapp-business-api](https://www.broadnet.me/ar/products/whatsapp-business-api)

ابدأ الإرسال

## هل أنت مستعد لإرسال أول رسالة SMS؟

[اطلب وصولاً تجريبياً](https://www.broadnet.me/ar/signup) [تحدث إلى مهندس تكامل](https://www.broadnet.me/ar/contact)
