API ma’lumotnomasi Tekshirilmoqda…
Konsolni ochish

LiveImg API

Rasmlarni yuklang — biz ularni optimallashtiramiz, xavfsiz saqlaymiz va dunyoning istalgan nuqtasiga oqim sifatida yetkazamiz.

REST · JSON Diskka yozmasdan oqim Progressive yetkazish HTTP Range Bazaviy manzil: https://api.vebox.uz

Nima uchun LiveImg?

Ikki bosqichli yetkazish

Har bir rasm uchun placeholder va HD versiya.

Diskka tegmaydigan oqim

Fayllar bevosita xotira orqali uzatiladi.

Aniq o‘lcham ma’lumoti

Hajm baytlarda va kilobaytlarda qaytariladi.

Moslashuvchan tariflar

Free, Pro va sozlanadigan Business.

Autentifikatsiya

Ro‘yxatdan o‘tish faqat Google yoki GitHub orqali.

Qadam Manzil
Google orqali kirishGET /auth/google/login
GitHub orqali kirishGET /auth/github/login
Kalitlarni boshqarishGET · POST /v1/keys

Barcha API so‘rovlari quyidagi sarlavha bilan yuboriladi:

X-API-Key: li_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
API kalit faqat bir marta ko‘rsatiladi.

Tez start

Misolni o‘z kalitingiz bilan almashtiring.

curl -X POST https://api.vebox.uz/v1/images \
  -H "X-API-Key: $LI_KEY" \
  -F "file=@photo.jpg"
const form = new FormData();
form.append("file", input.files[0]);

const res = await fetch("https://api.vebox.uz/v1/images", {
  method: "POST",
  headers: { "X-API-Key": LI_KEY },
  body: form
});
const { data } = await res.json();

// Lahzada ko'rinadi
img.src = data.image.urls.placeholder;

// HD fonda yuklanib, almashadi (ochiq rasm — kalit kerak emas)
const hd = new Image();
hd.onload = () => { img.src = hd.src; };
hd.src = data.image.urls.cdn;
import requests

r = requests.post(
    "https://api.vebox.uz/v1/images",
    headers={"X-API-Key": LI_KEY},
    files={"file": open("photo.jpg", "rb")},
)
img = r.json()["data"]["image"]
print(img["size_bytes"], "bytes", img["size_kb"], "KB")
body := &bytes.Buffer{}
mw := multipart.NewWriter(body)
fw, _ := mw.CreateFormFile("file", "photo.jpg")
f, _ := os.Open("photo.jpg")
io.Copy(fw, f)
mw.Close()

req, _ := http.NewRequest("POST", "https://api.vebox.uz/v1/images", body)
req.Header.Set("Content-Type", mw.FormDataContentType())
req.Header.Set("X-API-Key", os.Getenv("LI_KEY"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()

Rasm yuklash

POST /v1/images X-API-Key

multipart/form-data yoki xom bayt oqimi.

ParametrTuri MajburiyTavsif
filefileHaYuklanadigan rasm fayli
filenamestringYo‘qFayl nomi (xom oqim rejimida)
visibility · modepublic · privateYo‘qRasmning ochiq/yopiq rejimi — query parametri yoki form maydoni (ikala nom ham bir ma'noda). Standart: public

Javob

{
  "ok": true,
  "data": {
    "image": {
      "id": "img_9f1c2ab7c4e80a3d5b6e7f10",
      "filename": "photo.jpg",
      "mime_type": "image/jpeg",
      "size_bytes": 248391,
      "size_kb": 242.57,
      "width": 1920,
      "height": 1280,
      "checksum": "3f8a…c19",
      "visibility": "public",
      "created_at": "2026-09-04T10:22:31Z",
      "urls": {
        "cdn":         "https://api.vebox.uz/cdn/img_9f1c…",
        "preview":     "https://api.vebox.uz/preview/img_9f1c…",
        "original":    "https://api.vebox.uz/i/img_9f1c…",
        "hd":          "https://api.vebox.uz/i/img_9f1c…?v=hd",
        "thumbnail":   "https://api.vebox.uz/i/img_9f1c…?v=thumb",
        "placeholder": "data:image/jpeg;base64,/9j/4AAQ…"
      }
    },
    "stored_hd_bytes": 248391,
    "placeholder_bytes": 1874,
    "processing_ms": 63
  }
}

Rasmni yetkazib berish

GET /i/{id} Ochiq

Rasmlar oqim ko‘rinishida uzatiladi.

ParametrQiymatTavsif
vhd · thumbVersiya.
w1–4096Kenglikni o‘zgartirish.
api_keystringKalitni so‘rov satrida uzatish.

Javob sarlavhalari

X-Image-Size-Bytes: 248391
X-Image-Size-KB:    242.57
X-Delivery:         instant-cache | stream | transform
ETag:               "3f8a1c92b7e4d05a-hd"
Accept-Ranges:      bytes
Cache-Control:      public, max-age=31536000, immutable

Ochiq yetkazib berish (CDN)

Ochiq rasmlar kalitsiz, faqat ID bo‘yicha olinadi.

ManzilNima qaytadiKesh
GET /cdn/{id}HD versiya, ?w= bilan o‘lcham1 yil, immutable
GET /preview/{id}Lahzali blur placeholder1 yil, immutable
GET /i/{id}Universal: ?v=hd|thumb&w=1 yil, immutable

HTML’da ishlatish

<!-- blur-up: avval preview, keyin HD -->
<img
  src="https://api.vebox.uz/preview/img_9f1c2ab7c4e80a3d"
  data-src="https://api.vebox.uz/cdn/img_9f1c2ab7c4e80a3d"
  onload="if(this.dataset.src){this.src=this.dataset.src;delete this.dataset.src}"
  width="800" alt="">

<!-- oddiy holat -->
<img src="https://api.vebox.uz/cdn/img_9f1c2ab7c4e80a3d?w=640">

Ko‘rinish (public / private)

Yuklashda visibility yoki mode parametri bilan belgilanadi (query yoki form maydoni).

# form maydoni
curl -X POST https://api.vebox.uz/v1/images \
  -H "X-API-Key: $LI_KEY" \
  -F "file=@photo.jpg" -F "visibility=private"

# yoki mode parametri (query) — xom oqimda faqat shu ishlaydi
curl -X POST "https://api.vebox.uz/v1/images?mode=private" \
  -H "X-API-Key: $LI_KEY" \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg

# keyinroq o‘zgartirish
curl -X PATCH https://api.vebox.uz/v1/images/img_9f1c2ab7c4e80a3d \
  -H "X-API-Key: $LI_KEY" -H "Content-Type: application/json" \
  -d '{"visibility":"public"}'

Rasmlar ro‘yxati

GET/v1/images?limit=30&offset=0 X-API-Key

Barcha rasmlar sahifalab qaytariladi.

{
  "ok": true,
  "data": [ /* PublicImage[] */ ],
  "pagination": { "total": 128, "limit": 30, "offset": 0 }
}

Metadata

GET/v1/images/{id} X-API-Key

Rasmning to‘liq ma’lumotlari.

Rasmni o‘chirish

DELETE/v1/images/{id} X-API-Key

Bu amalni qaytarib bo‘lmaydi.

Hisob holati

GET/v1/me X-API-Key

Joriy tarif va foydalanish statistikasi.

Tariflar

Tarifni istalgan vaqtda o‘zgartirishingiz mumkin.

Free

Kichik loyihalar uchun

$0/oy
  • 120 so‘rov/daqiqa
  • 25 MB har bir fayl
  • 2 GB saqlash
  • 2 000 oyiga fayl
  • 1600px HD kenglik

Business

To‘liq moslashtiriladigan

Kelishuv asosida
  • Individual limitlar
  • Individual saqlash qoidalari
  • 8192px HD kenglik
  • Ustuvor navbat
  • Analitika
Business tarifdagi limitlar alohida sozlanadi.

Progressive delivery qanday ishlaydi

Har bir yuklamada ikkita mahsulot tayyorlanadi.

VersiyaTaxminiy hajm ManbaKechikish
?v=thumb1–5 KBissiq kesh~1 ms
?v=hdasl o‘lchamdabulut oqimitarmoqqa bog‘liq

Namoyish

Ikki bosqichli yuklanishni ko‘ring.

Namoyishda har safar tasodifiy HD rasm tanlanadi (picsum.photos).

So‘rov cheklovi

Joriy holat sarlavhalarda qaytariladi.

X-RateLimit-Limit:     600
X-RateLimit-Remaining: 587
Retry-After:           3   # faqat 429 javobida
Yuqori yuklamada yengil versiya qaytarilishi mumkin.

Xatolar

Barcha xatolar bir xil tuzilishda.

{
  "ok": false,
  "error": {
    "code": "rate_limit_exceeded",
    "message": "…",
    "status": 429,
    "timestamp": "2026-09-04T10:22:31Z"
  }
}
KodHTTPMa’nosi
missing_api_key401Sarlavha yuborilmagan
invalid_api_key401Kalit yaroqsiz
forbidden403Resurs sizga tegishli emas
not_found404Rasm topilmadi
storage_quota_exceeded402Kvota tugadi
file_too_large413Fayl juda katta
unsupported_format415Format qo‘llanmaydi
rate_limit_exceeded429Chegara oshdi
server_busy503Vaqtinchalik yuklama

Playground

API’ni shu sahifadan sinab ko‘ring.

Kalit faqat brauzeringizda saqlanadi.
Rasmni bu yerga tashlang
yoki tanlash uchun bosing
LiveImg API · Holat · OpenAPI · Konsol
Rasmlaringiz shifrlangan bulut qatlamida saqlanadi.