API hujjatlari

REST API orqali SMS yuboring. Barcha so'rovlar JSON formatida.

Asosiy manzil (Base URL)
https://sms.identify.uz

Autentifikatsiya

Har bir so'rovda API kalitni yuboring (dashboard → "API kalitlar" bo'limidan oling):

Authorization: Bearer sk_live_...

SMS yuborish

POST/v1/messages

MaydonTavsif
toTelefon raqam, masalan +998901234567 (majburiy)
textXabar matni, 1–1000 belgi (majburiy)
sim1 yoki 2 — qaysi SIM (ixtiyoriy)
ttlSoniyada amal qilish muddati — o'tsa yuborilmaydi (ixtiyoriy)

Takror yuborilmasligi uchun Idempotency-Key sarlavhasini qo'shing.

curl -X POST https://sms.identify.uz/v1/messages \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"to":"+998901234567","text":"Salom!"}'

Javob:

{ "id": "a3ce...", "status": "queued", "cost": 9900 }

Holatlar: queueddispatchedsentdelivered (yoki failed).

Bulk yuborish

POST/v1/messages/bulk

{ "messages": [
  { "to": "+998901111111", "text": "Birinchi" },
  { "to": "+998902222222", "text": "Ikkinchi" }
] }

OTP — tasdiqlash kodi

Kodni o'zingiz yaratmaysiz — biz yaratamiz, yuboramiz va tekshiramiz.

POST/v1/otp/send

curl -X POST https://sms.identify.uz/v1/otp/send \
  -H "Authorization: Bearer sk_live_..." \
  -d '{"to":"+998901234567"}'

Javob: { "otpId": "...", "status": "queued" }. Ixtiyoriy: length (4–8), ttl (soniya), template ({code} bilan).

POST/v1/otp/verify

curl -X POST https://sms.identify.uz/v1/otp/verify \
  -H "Authorization: Bearer sk_live_..." \
  -d '{"otpId":"...","code":"123456"}'

Javob: { "verified": true } yoki { "verified": false, "error": "kod noto'g'ri" }. (otpId o'rniga to ham bering.)

Boshqa endpointlar

MetodYo'lTavsif
GET/v1/messages/:idBitta xabar holati
GET/v1/messages?limit=50&status=sent&search=998Ro'yxat (filtr + pagination)
GET/v1/statsBugungi statistika
GET/v1/balanceHisob balansi (tiyin)
GET/v1/inboundKelgan SMS'lar

Webhooks

Xabar holati o'zgarganda (yetkazildi/xato) yoki SMS kelganda sizning serveringizga POST yuboramiz.

POST/v1/webhooks

{ "url": "https://sizning-server.uz/hook",
  "events": ["delivered", "failed", "inbound"],
  "secret": "maxfiy_kalit" }

Yuboriladigan payload (X-Signature = HMAC-SHA256(secret, body)):

{ "event": "delivered", "data": { ... }, "timestamp": "..." }

Xato kodlari

KodMa'no
400So'rov noto'g'ri (raqam/matn)
401API kalit yo'q yoki noto'g'ri
402Balans yetarli emas
429Juda ko'p so'rov (rate limit)