واجهة API للمطورين
ادمج التحقق عبر SMS في أي منصة باستخدام REST API القياسي مع دعم العمليات الجماعية والتوثيق الكامل.
أكمل سير عمل رقم واحد أولاً
ابدأ بالعثور على معرّف المشروع، ثم اختر القناة واشترِ الرقم واستقبل الرسالة، وحرر الرقم عند الانتهاء.
http://api.fastpva.com/pvapublic- 01
اختياري: العثور على معرّف المشروع
احصل على pid من قائمة المشاريع أو تخطَّ هذه الخطوة إذا كان متوفراً.
رابط نقطة النهايةGET http://api.fastpva.com/pvapublic/v4/projects - 02
اختيار قناة
استخدم pid ورمز الدولة للحصول على channelId.
رابط نقطة النهايةGET http://api.fastpva.com/pvapublic/v4/project/channels - 03
الحصول على رقم
أرسل اختيارك واحفظ orderId الذي تم إرجاعه.
رابط نقطة النهايةGET http://api.fastpva.com/pvapublic/v4/getNumber - 04
التحقق من الرسائل
استخدم orderId للتحقق من رمز SMS.
رابط نقطة النهايةGET http://api.fastpva.com/pvapublic/sms/codes - 05
تحرير الرقم
حرر الطلب عند عدم الحاجة إلى رسائل أخرى.
رابط نقطة النهايةGET http://api.fastpva.com/pvapublic/sms/releaseNumber
افتح الخطوة الحالية لعرض ما تحتاجه فقط
افهم الغرض أولاً ثم راجع المعاملات، ولا حاجة لقراءة كل نقاط النهاية دفعة واحدة.
الحصول على قائمة المشاريع للعثور على معرّف المشروع
الخطوة 01| المعامل | الوصف | مثال |
|---|---|---|
| page | رقم الصفحة. | 1 |
| limit | عدد النتائج في الصفحة. | 20 |
| keyword? | كلمة بحث اختيارية. | telegram |
استخدم هذه النقطة اختيارياً للعثور على pid.
curl "http://api.fastpva.com/pvapublic/v4/projects?page=1&limit=20&keyword=telegram"أمثلة التعليمات البرمجية
تتبع الأمثلة سير عمل الحصول على الرقم والتحقق من الرسائل خطوة بخطوة.
import requests
import time
TOKEN = "your_token_here"
BASE_URL = "http://api.fastpva.com/pvapublic"
def get_balance():
resp = requests.get(f"{BASE_URL}/v4/balance", params={"token": TOKEN})
return resp.json()
def buy_number(pid: int, channel_id: int, locale: str):
# pid: pid returned by /v4/projects, for example 102103
# channelId: channelId returned by /v4/project/channels, for example 2
# locale: country code, for example SN / AO
# token: Dashboard API Key
resp = requests.get(
f"{BASE_URL}/v4/getNumber",
params={"pid": pid, "channelId": channel_id, "locale": locale, "token": TOKEN}
)
return resp.json()
def wait_for_sms(order_ids: list[str], timeout: int = 120):
# Request uses one string joined by _, response keys stay as individual order IDs.
orders_id = "_".join(order_ids)
received = {}
for _ in range(timeout // 5):
resp = requests.get(
f"{BASE_URL}/sms/codes",
params={"orderId": orders_id, "token": TOKEN}
).json()
data = resp.get("data", {})
orders = data.get("orders", {})
for order_id in order_ids:
order = orders.get(order_id)
if order and (order.get("code") or order.get("content")):
received[order_id] = order.get("code") or order.get("content")
if len(received) == len(order_ids):
return received
time.sleep(5)
return receivedأمثلة الاستجابة
قارن نتائج النجاح أولاً، ثم استخدم المثال المطابق عند ظهور خطأ أو حالة معلقة.
{
"code": 1,
"data": {
"balance": 9950
}
}{
"code": 1,
"data": {
"orderId": "6a4497df5e1f4a5bf82681b1",
"number": "79161234567"
}
}{
"code": 1,
"data": {
"orders": {
"6a4497df5e1f4a5bf82681b1": {
"number": "79161234567",
"code": "84291",
"content": "Telegram code 84291"
},
"6a4497bf50769b5bcf9e61f9": {
"number": "221771234567",
"code": "518204",
"content": "Your verification code is 518204"
}
},
"balance": 99.50
}
}{
"code": -1,
"data": "Insufficient balance, please recharge."
}{
"code": 2,
"data": "The number is getting..."
}{
"code": -1,
"data": "Not found orderId"
}احصل على مفتاح API
أنشئ حساباً لتوليد مفتاح API والبدء بالتكامل فوراً.
