واجهة المصادقة — تحقق من المستخدمين فوراً
مجموعة أدوات تحقق كاملة: إرسال OTP عبر SMS/واتساب والتحقق من الرموز والتحقق من صيغة الرقم — كل ذلك عبر واجهة REST API واحدة.
✦ No credit card required · Free plan available · Setup in 5 minutes
توجيه التحقق متعدد القنوات
أرسل رموز OTP مع آلية تجاوز ذكية. يجرب واتساب أولاً لمعدلات تحويل أعلى ثم ينتقل تلقائياً إلى SMS إذا لم يتم التسليم خلال 30 ثانية.
- واتساب أولاً مع احتياطي SMS
- تحليلات التسليم في الوقت الفعلي
- فحص تنسيق أرقام الهاتف العالمية E.164
المصادقة
تتطلب جميع طلبات API مفتاح API السري في رأس X-API-Key. يمكنك إنشاء المفاتيح من لوحة تحكم المطور.
X-API-Key: sm_live_your_api_key_hereعنوان URL الأساسي
أرسل جميع طلبات API إلى العنوان التالي:
https://api.startmessaging.comإمكانيات واجهة برمجة التطبيقات
-
POST /otp/send
إنشاء وإرسال رمز مرور لمرة واحدة إلى رقم هاتف. تخصيص قوالب الرسائل بسهولة.
-
POST /otp/verify
التحقق من الرمز الذي أدخله المستخدم. تحقق بسيط باستدعاء واحد يتحقق من انتهاء صلاحية الطلب.
-
GET /messages/:id
الحصول على حالة تسليم رسالة SMS أو واتساب في الوقت الفعلي.
-
منع الاحتيال
فرض حدود المعدل وفحص مخاطر شركات الاتصالات وقواعد الأجهزة للحد من التسجيلات المزيفة.
إنشاء وإرسال رمز OTP
curl -X POST https://api.startmessaging.com/otp/send \
-H "Content-Type: application/json" \
-H "X-API-Key: sm_live_your_api_key_here" \
-d '{
"phoneNumber": "+919876543210",
"templateId": "YOUR_TEMPLATE_ID",
"variables": {
"otp": "123456",
"appName": "YourApp"
}
}' const response = await fetch("https://api.startmessaging.com/otp/send", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "sm_live_your_api_key_here",
},
body: JSON.stringify({
phoneNumber: "+919876543210",
templateId: "YOUR_TEMPLATE_ID",
variables: {
otp: "123456",
appName: "YourApp",
},
}),
});
const data = await response.json();
console.log(data); import requests
response = requests.post(
"https://api.startmessaging.com/otp/send",
headers={
"Content-Type": "application/json",
"X-API-Key": "sm_live_your_api_key_here",
},
json={
"phoneNumber": "+919876543210",
"templateId": "YOUR_TEMPLATE_ID",
"variables": {
"otp": "123456",
"appName": "YourApp"
},
},
)
data = response.json()
print(data) $ch = curl_init("https://api.startmessaging.com/otp/send");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: sm_live_your_api_key_here",
],
CURLOPT_POSTFIELDS => json_encode([
"phoneNumber" => "+919876543210",
"templateId" => "YOUR_TEMPLATE_ID",
"variables" => [
"otp" => "123456",
"appName" => "YourApp"
]
]),
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true); import java.net.http.*;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
String body = """
{
"phoneNumber": "+919876543210",
"templateId": "YOUR_TEMPLATE_ID",
"variables": {
"otp": "123456",
"appName": "YourApp"
}
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.startmessaging.com/otp/send"))
.header("Content-Type", "application/json")
.header("X-API-Key", "sm_live_your_api_key_here")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body()); package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"io"
)
func main() {
payload, _ := json.Marshal(map[string]interface{}{
"phoneNumber": "+919876543210",
"templateId": "YOUR_TEMPLATE_ID",
"variables": map[string]string{
"otp": "123456",
"appName": "YourApp",
},
})
req, _ := http.NewRequest("POST", "https://api.startmessaging.com/otp/send", bytes.NewBuffer(payload))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "sm_live_your_api_key_here")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} تأكيد رموز المستخدم فوراً
curl -X POST https://api.startmessaging.com/otp/verify \
-H "Content-Type: application/json" \
-H "X-API-Key: sm_live_your_api_key_here" \
-d '{
"requestId": "req_abc123",
"otpCode": "123456"
}' const response = await fetch("https://api.startmessaging.com/otp/verify", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "sm_live_your_api_key_here",
},
body: JSON.stringify({
requestId: "req_abc123",
otpCode: "123456",
}),
});
const data = await response.json();
console.log(data); import requests
response = requests.post(
"https://api.startmessaging.com/otp/verify",
headers={
"Content-Type": "application/json",
"X-API-Key": "sm_live_your_api_key_here",
},
json={
"requestId": "req_abc123",
"otpCode": "123456"
},
)
data = response.json()
print(data) $ch = curl_init("https://api.startmessaging.com/otp/verify");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: sm_live_your_api_key_here",
],
CURLOPT_POSTFIELDS => json_encode([
"requestId" => "req_abc123",
"otpCode" => "123456"
]),
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true); import java.net.http.*;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
String body = """
{
"requestId": "req_abc123",
"otpCode": "123456"
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.startmessaging.com/otp/verify"))
.header("Content-Type", "application/json")
.header("X-API-Key", "sm_live_your_api_key_here")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body()); package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"io"
)
func main() {
payload, _ := json.Marshal(map[string]interface{}{
"requestId": "req_abc123",
"otpCode": "123456",
})
req, _ := http.NewRequest("POST", "https://api.startmessaging.com/otp/verify", bytes.NewBuffer(payload))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "sm_live_your_api_key_here")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
} تنسيقات الاستجابة
يُرجع استجابة إرسال OTP حالة التأكيد ومعرفات فريدة:
{
"success": true,
"statusCode": 201,
"requestId": "req_abc123",
"timestamp": "2026-02-15T10:30:00.000Z",
"data": {
"otpRequestId": "uuid-of-otp-request",
"messageId": "uuid-of-message",
"status": "queued"
}
}يُرجع استجابة التحقق قيمة تأكيد منطقية:
{
"success": true,
"statusCode": 200,
"requestId": "req_xyz789",
"timestamp": "2026-02-15T10:31:00.000Z",
"data": {
"verified": true
}
}واجهة Auth — الأسئلة الشائعة
ما هي طرق التحقق التي تدعمها واجهة Auth؟
تدعم واجهة Auth: 1) التحقق من OTP عبر SMS، 2) التحقق من OTP عبر واتساب، 3) واتساب أولاً مع احتياطي SMS، 4) التحقق من تنسيق رقم الهاتف، و5) فحص شركة الاتصالات/إمكانية الوصول. جميع الطرق متاحة عبر واجهة API موحدة واحدة.
صفحات ذات صلة
أضف التحقق من المستخدم إلى تطبيقك
خطة مجانية. مفتاح API خلال 30 ثانية.