📚 API Documentation

DevSMS API

RESTful API for SMS sending

Asosiy URL

https://devsms.uz/api

Muhim:

Barcha API so'rovlarda Authorization: Bearer {token} header kerak.

🔐 Autentifikatsiya

Har bir so'rovda quyidagi header yuborilishi kerak:

Authorization: Bearer your_token_here
POST

1. SMS Yuborish

https://devsms.uz/api/send_sms.php

Request Body:

{
    "phone": "998901234567",
    "message": "Test SMS xabari",
    "from": "4546"
}

Parametrlar:

Parametr Turi Majburiy Tavsif
phone string Ha Telefon raqam (998901234567 formatida)
message string Ha SMS matni
from string Yo'q Kimdan (default: 4546)

Response:

{
    "success": true,
    "message": "SMS muvaffaqiyatli yuborildi",
    "data": {
        "sms_id": 123,
        "request_id": "uuid-here",
        "status": "waiting",
        "parts_count": 1,
        "total_cost": 50,
        "balance": 950
    }
}
GET

2. SMS Tarixini Olish

https://devsms.uz/api/get_history.php

Query Parametrlar:

Parametr Turi Default Tavsif
limit integer 50 Nechta SMS (max: 200)
offset integer 0 Offset
status string null Status filter (DELIVERED, waiting, REJECTED)

Misol:

GET https://devsms.uz/api/get_history.php?limit=10&offset=0&status=DELIVERED
GET

3. Balansni Olish

https://devsms.uz/api/get_balance.php

Response:

{
    "success": true,
    "data": {
        "balance": 1000,
        "sms_price": 50,
        "statistics": {
            "total_sms": 100,
            "total_spent": 5000,
            "today_sms": 10,
            "today_spent": 500,
            "month_sms": 50,
            "month_spent": 2500
        }
    }
}
GET

4. SMS Statusini Olish

https://devsms.uz/api/get_status.php

Query Parametrlar:

Parametr Turi Tavsif
sms_id integer SMS ID (database'dagi ID)
request_id string Eskiz request ID

Misol:

GET https://devsms.uz/api/get_status.php?sms_id=123

yoki

GET https://devsms.uz/api/get_status.php?request_id=uuid-here

📝 SMS Statuslar

Status Tavsif
waiting SMS kutish holatida
ACCEPTED SMS operatorga yuborildi
DELIVERED SMS yetkazildi
REJECTED SMS rad etildi
UNDELIVERABLE SMS yetkazilmadi

❌ Xatoliklar

Xatolik yuz berganda quyidagi format qaytariladi:

{
    "success": false,
    "error": "Xatolik xabari"
}

HTTP Status Kodlar:

Kod Tavsif
200 Muvaffaqiyatli
400 Noto'g'ri so'rov
401 Autentifikatsiya xatosi
403 Ruxsat yo'q
404 Topilmadi
500 Server xatosi

Maslahat:

API'ni test qilish uchun Postman yoki cURL ishlatishingiz mumkin.

🔧 cURL Misollari

SMS Yuborish:

curl -X POST https://devsms.uz/api/send_sms.php \
  -H "Authorization: Bearer your_token" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "998901234567",
    "message": "Test SMS"
  }'

Balansni Olish:

curl -X GET https://devsms.uz/api/get_balance.php \
  -H "Authorization: Bearer your_token"

💻 Kod Namunalari

Dasturlash tilini tanlang:

<?php
// DevSMS API - PHP Example

$token = "your_api_token_here";
$baseUrl = "https://devsms.uz/api";

// SMS Yuborish
function sendSMS($token, $baseUrl, $phone, $message) {
    $ch = curl_init("$baseUrl/send_sms.php");
    
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_HTTPHEADER => [
            "Authorization: Bearer $token",
            "Content-Type: application/json"
        ],
        CURLOPT_POSTFIELDS => json_encode([
            "phone" => $phone,
            "message" => $message
        ])
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

// Balansni olish
function getBalance($token, $baseUrl) {
    $ch = curl_init("$baseUrl/get_balance.php");
    
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            "Authorization: Bearer $token"
        ]
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

// Ishlatish
$result = sendSMS($token, $baseUrl, "998901234567", "Salom!");
print_r($result);

$balance = getBalance($token, $baseUrl);
print_r($balance);
?>