Developer

Public API v1

Virtual raqam xizmatini o‘z tizimingizga ulang. JSON javoblar, API kalit autentifikatsiyasi, tarifga bog‘liq narxlar va limitlar.

Autentifikatsiya

Har bir so‘rovda X-API-Key header yuboring. Kalitni profil sahifasidan oling yoki yangilang.

Header
X-API-Key: octo_YOUR_API_KEY
API kalitni ko‘rish uchun tizimga kiring.

Base URL

Base
https://octobuilder.uz/api/v1

Barcha endpointlar shu manzil ostida. HTTPS majburiy.

Endpointlar

MethodPathTavsif
GET/countriesDavlatlar va narxlar
GET/balanceJoriy balans
POST/buyRaqam sotib olish
GET/status/{id}Buyurtma holati / SMS
GET/historyBuyurtmalar tarixi
GET /countries

Davlatlar va narxlar

Mavjud davlatlar ro‘yxati. Narxlar sizning tarifingizdagi API ustama bilan hisoblanadi.

curl
curl -s -H "X-API-Key: octo_YOUR_API_KEY" "https://octobuilder.uz/api/v1/countries"
Javob
{
  "success": true,
  "data": [
    {"code": "UZ", "name": "O'zbekiston", "price": 1.35, "qty": 42}
  ],
  "meta": {"timestamp": "2026-10-10T12:00:00+05:00"}
}
GET /balance

Balans

Hisobingizdagi joriy balans (USD).

curl
curl -s -H "X-API-Key: octo_YOUR_API_KEY" "https://octobuilder.uz/api/v1/balance"
Javob
{
  "success": true,
  "data": {
    "balance": 120.50,
    "currency": "USD"
  },
  "meta": {"timestamp": "..."}
}
POST /buy

Raqam sotib olish

Tanlangan davlat uchun virtual raqam sotib oladi. Balans, kunlik/oylik limit va provayder mavjudligi tekshiriladi.

ParametrTipMajburiyIzoh
country string Ha ISO kod, masalan UZ, US, RU
idempotency_key string Yo‘q Takroriy so‘rovlarni oldini olish (UUID)
curl
curl -s -X POST \
  -H "X-API-Key: octo_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country":"UZ"}' \
  "https://octobuilder.uz/api/v1/buy"
Javob
{
  "success": true,
  "data": {
    "id": 42,
    "number": "+998901234567",
    "country": "UZ",
    "price": 1.35,
    "balance": 119.15,
    "status": "active",
    "expires_at": "2026-10-10T12:20:00+05:00"
  }
}
GET /status/{id}

Buyurtma holati / SMS kod

Faqat o‘zingizning buyurtmangiz. SMS kelganda code maydoni to‘ldiriladi. Polling tavsiya etiladi (3–5 soniya).

ParametrTipMajburiyIzoh
id integer Ha Buyurtma ID (path parametr)
curl
curl -s -H "X-API-Key: octo_YOUR_API_KEY" "https://octobuilder.uz/api/v1/status/42"
Javob
{
  "success": true,
  "data": {
    "id": 42,
    "status": "waiting",
    "number": "+998901234567",
    "code": null,
    "pass": null,
    "expires_at": "..."
  }
}
GET /history

Buyurtmalar tarixi

Sahifalangan ro‘yxat. Query: page, limit (max 100).

ParametrTipMajburiyIzoh
page integer Yo‘q Default: 1
limit integer Yo‘q Default: 20, max: 100
curl
curl -s -H "X-API-Key: octo_YOUR_API_KEY" "https://octobuilder.uz/api/v1/history?page=1&limit=20"
Javob
{
  "success": true,
  "data": {
    "items": [ ... ],
    "page": 1,
    "limit": 20,
    "total": 5,
    "pages": 1
  }
}

Xatolik kodlari

KodHTTPMa’no
invalid_api_key401Kalit yo‘q yoki noto‘g‘ri
api_access_denied403Tarif API ga ruxsat bermaydi
insufficient_balance402Balans yetarli emas
daily_limit_exceeded429Kunlik limit tugagan
monthly_limit_exceeded429Oylik limit tugagan
rate_limit_exceeded429Daqiqasiga 30 so‘rov
country_required400country majburiy
country_not_found404Davlat topilmadi
not_found404Buyurtma topilmadi
provider_error502Provayder xatosi

Xato javob formati:

{
  "success": false,
  "error": {
    "code": "insufficient_balance",
    "message": "Balans yetarli emas"
  }
}

Limitlar

  • Rate limit: daqiqasiga 30 so‘rov (API kalit bo‘yicha).
  • Kunlik / oylik: tarifingizdagi limitlar. Profil va status stripda ko‘rinadi.
  • Narx: har doim serverda hisoblanadi; client yuborgan narxga ishonilmaydi.
  • Idempotency: buy da idempotency_key ishlatish tavsiya etiladi.

Namunalar

PHP

PHP
$ch = curl_init('https://octobuilder.uz/api/v1/countries');
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ['X-API-Key: octo_YOUR_API_KEY'],
]);
$json = json_decode(curl_exec($ch), true);

Python

Python
import requests
r = requests.get(
  "https://octobuilder.uz/api/v1/countries",
  headers={"X-API-Key": "octo_YOUR_API_KEY"}
)
print(r.json())

Node.js

Node.js
const res = await fetch("https://octobuilder.uz/api/v1/countries", {
  headers: { "X-API-Key": "octo_YOUR_API_KEY" }
});
const data = await res.json();