v1.1

IshonchSIM Partner API

REST API: HTTPS orqali JSON. Telegram raqamlarini o'z saytingiz, botingiz yoki do'koningiz orqali sotish uchun. Xaridlar saytdagi balansingizdan yechiladi.

Base URLhttps://originsim.xuss.us/api/v1
API kaliti olish OpenAPI 3 (JSON)

Javob formati

Har bir javobda ok maydoni bor. Xatoda error (mashina uchun kod), message (odam uchun matn) va request_id. Narxlar butun son, so'mda. Vaqt: Unix soniya.

Autentifikatsiya

Kalitni har bir so'rovda Authorization sarlavhasida yuboring (yoki X-API-Key). Kalitni URL yoki brauzer kodiga qo'ymang: faqat serveringizda saqlang.

Authorization: Bearer osk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Panelda kalitni serveringiz IP'siga bog'lashingiz mumkin. Kalit begonaga tushsa, "Yangi kalit yaratish" eskisini darhol o'chiradi.

Limitlar

Har bir kalitga daqiqasiga 60 ta so'rov. Har bir javobda joriy holat sarlavhalarda keladi:

X-RateLimit-LimitDaqiqalik limit
X-RateLimit-RemainingQolgan so'rovlar
X-RateLimit-ResetNecha soniyada bo'shaydi
Retry-After429 javobida: shuncha soniya kuting
X-Request-IdSo'rov identifikatori: yordamga murojaatda yuboring

Idempotentlik

Xarid so'roviga Idempotency-Key sarlavhasini qo'shing (masalan o'z buyurtmangiz ID'si). Javob kelmay qolsa, xuddi shu kalit bilan qayta yuboring: xarid allaqachon bo'lgan bo'lsa, yangisi qilinmaydi, o'sha buyurtma qaytadi (Idempotent-Replayed: true).

Kalitsiz qayta yuborilgan xarid — yangi xarid. Har bir mijoz buyurtmasi uchun alohida kalit ishlating.

Xatolar

{"ok": false, "error": "no_balance", "message": "Balans yetarli emas. Saytda hisobni to'ldiring", "price": 14800, "request_id": "req_3f9a1c2b7d4e8a10"}
400 bad_json / bad_country / bad_section / bad_max_priceSo'rov noto'g'ri tuzilgan
401 bad_keyKalit noto'g'ri yoki yuborilmagan
402 expiredKalit muddati tugagan: saytda uzaytiring
402 no_balanceBalans yetmaydi: javobdagi price ni ko'ring
403 pending / blockedKalit tasdiqlanmagan yoki bloklangan
403 ip_deniedSo'rov ruxsat etilmagan IP'dan keldi
404 no_stock / not_foundRaqam yoki buyurtma yo'q
409 price_changed / sold_outNarx o'zgardi: javobdagi price bilan qayta urinib ko'ring
409 busyOldingi xaridingiz hali tugamagan
429 rate_limit / too_fastLimitdan oshdi: Retry-After soniya kuting
202 checkingXarid tekshirilmoqda: /orders/{order_id} ni so'rang, pul yo'qolmaydi
503 supply_error / disabledVaqtincha xizmat ko'rsatilmayapti: birozdan so'ng qayta urining

Hisob

GET/api/v1/me

Hisob va kalit

Balans, kalit muddati va so'rovlar soni.

Parametrsiz.

curl "https://originsim.xuss.us/api/v1/me" \
  -H "Authorization: Bearer $OSK_KEY"
Javob · 200
{
  "ok": true,
  "username": "mybot",
  "balance": 250000,
  "key": {
    "prefix": "osk_AbC12345",
    "expires_at": 1794836867,
    "requests": 1204
  }
}
Sinab ko'rish
GET/api/v1/pingkalitsiz

Holat

Kalitsiz: API ishlayotganini tekshirish.

Parametrsiz.

curl "https://originsim.xuss.us/api/v1/ping"
Javob · 200
{
  "ok": true,
  "version": "1.1",
  "time": 1792244867
}
Sinab ko'rish

Katalog

GET/api/v1/sections

Bo'limlar

Raqamlar toifalari: arzon, kafolatli, premium, toza, spamli.

Parametrsiz.

curl "https://originsim.xuss.us/api/v1/sections" \
  -H "Authorization: Bearer $OSK_KEY"
Javob · 200
{
  "ok": true,
  "default": "arzon",
  "sections": [
    {
      "id": "arzon",
      "title": "Arzon raqamlar",
      "description": "Mashhur sotuvchilardan eng arzon raqamlar: spamsiz ham, spamli ham"
    }
  ]
}
Sinab ko'rish
GET/api/v1/countries

Davlatlar

Davlatlar, raqamlar soni va taxminiy eng arzon narx. Soatda bir yangilanadi; sotib olishdan oldin aniq narxni /price dan oling.

Query parametrlari

sectionstringBo'lim, standart: arzon
curl "https://originsim.xuss.us/api/v1/countries?section=arzon" \
  -H "Authorization: Bearer $OSK_KEY"
Javob · 200
{
  "ok": true,
  "section": "arzon",
  "countries": [
    {
      "country": "UZ",
      "name": "O'zbekiston",
      "count": 15,
      "min_price": 14800
    }
  ]
}
Sinab ko'rish
GET/api/v1/price

Aniq narx

Hozirgi eng arzon narx va mavjudligi (jonli).

Query parametrlari

country*stringISO 3166 kodi, masalan UZ (majburiy)
sectionstringBo'lim, standart: arzon
curl "https://originsim.xuss.us/api/v1/price?country=UZ&section=arzon" \
  -H "Authorization: Bearer $OSK_KEY"
Javob · 200
{
  "ok": true,
  "country": "UZ",
  "section": "arzon",
  "available": true,
  "count": 15,
  "price": 14800
}
Sinab ko'rish

Xarid

POST/api/v1/buy

Raqam sotib olish

Shu davlatning eng arzon mos raqamini sotib oladi va darhol raqam, 2FA parol va Telethon sessiya satrini qaytaradi. Pul saytdagi balansingizdan yechiladi. max_price dan qimmat raqam hech qachon olinmaydi. Tarmoq uzilsa, xuddi shu Idempotency-Key bilan qayta yuboring: ikkinchi xarid bo'lmaydi.

Sarlavhalar

Idempotency-KeystringTakroriy so'rovdan himoya (tavsiya etiladi), masalan buyurtmangiz ID'si

JSON tanasi

country*stringISO 3166 kodi (majburiy)
sectionstringBo'lim, standart: arzon
max_priceintegerEng ko'pi bilan shuncha so'm. Berilmasa: hozirgi eng arzon narx
curl -X POST "https://originsim.xuss.us/api/v1/buy" \
  -H "Authorization: Bearer $OSK_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1001" \
  -d '{"country": "UZ", "max_price": 15000}'
Javob · 200
{
  "ok": true,
  "order": {
    "id": 812,
    "status": "ok",
    "country": "UZ",
    "title": "O'zbekiston akkaunti",
    "price": 14800,
    "via": "api",
    "created_at": 1792244867,
    "phone": "+998901234567",
    "password": null,
    "session": "1BVtsOK4Bu..."
  }
}

Buyurtmalar

GET/api/v1/orders

Buyurtmalar ro'yxati

Oxirgi buyurtmalar, eng yangisidan.

Query parametrlari

limitinteger1–100, standart 20
curl "https://originsim.xuss.us/api/v1/orders" \
  -H "Authorization: Bearer $OSK_KEY"
Javob · 200
{
  "ok": true,
  "orders": [
    {
      "id": 812,
      "status": "ok",
      "country": "UZ",
      "title": "O'zbekiston akkaunti",
      "price": 14800,
      "via": "api",
      "created_at": 1792244867,
      "phone": "+998901234567",
      "password": null,
      "session": "1BVtsOK4Bu..."
    }
  ]
}
Sinab ko'rish
GET/api/v1/orders/{id}

Bitta buyurtma

Holat: ok (tayyor), pending / review (tekshirilmoqda), failed (pul qaytarilgan).

Yo'l parametrlari

id*integerBuyurtma ID
curl "https://originsim.xuss.us/api/v1/orders/812" \
  -H "Authorization: Bearer $OSK_KEY"
Javob · 200
{
  "ok": true,
  "order": {
    "id": 812,
    "status": "ok",
    "country": "UZ",
    "title": "O'zbekiston akkaunti",
    "price": 14800,
    "via": "api",
    "created_at": 1792244867,
    "phone": "+998901234567",
    "password": null,
    "session": "1BVtsOK4Bu..."
  }
}
Sinab ko'rish
GET/api/v1/orders/{id}/code

Kirish kodi

Telegram ilovasida raqamga kod so'rang, 10–20 soniyadan so'ng shu yerdan oling. 5 soniyada bir martadan ko'p so'ramang.

Yo'l parametrlari

id*integerBuyurtma ID
curl "https://originsim.xuss.us/api/v1/orders/812/code" \
  -H "Authorization: Bearer $OSK_KEY"
Javob · 200
{
  "ok": true,
  "codes": [
    "52817"
  ]
}
Sinab ko'rish

To'liq misol: Python

Narxni tekshirish, idempotent xarid va kirish kodini kutish.

ishonchsim.py
import os, time, uuid, requests

API = "https://originsim.xuss.us/api/v1"
S = requests.Session()
S.headers["Authorization"] = f"Bearer {os.environ['OSK_KEY']}"


def call(method, path, **kw):
    r = S.request(method, API + path, timeout=90, **kw)
    data = r.json()
    if r.status_code == 429:                      # limit: kutib, qayta
        time.sleep(int(r.headers.get("Retry-After", 5)))
        return call(method, path, **kw)
    if not data["ok"] and r.status_code != 202:
        raise RuntimeError(f"{data['error']}: {data['message']} ({data['request_id']})")
    return data


def buy(country, max_price, order_ref=None):
    ref = order_ref or str(uuid.uuid4())         # o'z buyurtmangiz ID'si
    for _ in range(3):                           # tarmoq uzilsa: xavfsiz qayta urinish
        try:
            return call("POST", "/buy", json={"country": country, "max_price": max_price},
                        headers={"Idempotency-Key": ref})["order"]
        except requests.ConnectionError:
            time.sleep(2)


price = call("GET", "/price", params={"country": "UZ"})["price"]
order = buy("UZ", max_price=price)
print(order["phone"], order["session"])