OsonTopshir API
Loyiha holati: Hamkor API ishga tushirilmoqda. Quyidagi shartnoma (kontrakt) yakuniy v1 ko'rinishida, lekin kalitlar hozircha faqat tanlangan hamkorlarga beriladi.

Tez boshlash

API kalitdan birinchi tayyor hujjatgacha — to'rt qadam.

1. API kalitni saqlang

Kalit sizga xavfsiz tarzda topshiriladi va faqat bir marta to'liq ko'rsatiladi. Uni server muhit o'zgaruvchisida saqlang, brauzer yoki mobil ilova kodiga qo'ymang.

export OSONTOPSHIR_API_KEY="ot_live_..."

2. Kredit sotib oling

Buyurtma berish uchun tegishli xizmat bo'yicha kredit bo'lishi kerak. To'lov havolasini oling va Click orqali to'lang:

curl https://api.osontopshir.uz/partner/v1/credits/purchases \
  -H "Authorization: Bearer $OSONTOPSHIR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service": "taqdimot", "quantity": 20}'
import os, requests

H = {"Authorization": f"Bearer {os.environ['OSONTOPSHIR_API_KEY']}"}
r = requests.post(
    "https://api.osontopshir.uz/partner/v1/credits/purchases",
    headers=H,
    json={"service": "taqdimot", "quantity": 20},
)
print(r.json()["payment_url"])
const H = { Authorization: `Bearer ${process.env.OSONTOPSHIR_API_KEY}`, "Content-Type": "application/json" };
const r = await fetch("https://api.osontopshir.uz/partner/v1/credits/purchases", {
  method: "POST",
  headers: H,
  body: JSON.stringify({ service: "taqdimot", quantity: 20 }),
});
console.log((await r.json()).payment_url);

To'lov tasdiqlangach kreditlar balansga tushadi. Kreditlar haqida batafsil.

3. Buyurtma yarating

curl https://api.osontopshir.uz/partner/v1/orders \
  -H "Authorization: Bearer $OSONTOPSHIR_API_KEY" \
  -H "Idempotency-Key: 5f1c0c1e-order-1001" \
  -H "Content-Type: application/json" \
  -d '{
    "service": "taqdimot",
    "params": {
      "topic": "Sun'iy intellektning ta'limdagi o'rni",
      "slides": 15,
      "language": "uz"
    },
    "metadata": {"your_order_id": "1001"}
  }'
import os, uuid, requests

r = requests.post(
    "https://api.osontopshir.uz/partner/v1/orders",
    headers={
        "Authorization": f"Bearer {os.environ['OSONTOPSHIR_API_KEY']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={
        "service": "taqdimot",
        "params": {"topic": "Sun'iy intellektning ta'limdagi o'rni", "slides": 15, "language": "uz"},
        "metadata": {"your_order_id": "1001"},
    },
)
order = r.json()
print(order["id"], order["status"])
import { randomUUID } from "node:crypto";

const r = await fetch("https://api.osontopshir.uz/partner/v1/orders", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.OSONTOPSHIR_API_KEY}`,
    "Idempotency-Key": randomUUID(),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    service: "taqdimot",
    params: { topic: "Sun'iy intellektning ta'limdagi o'rni", slides: 15, language: "uz" },
    metadata: { your_order_id: "1001" },
  }),
});
const order = await r.json();
console.log(order.id, order.status);

Javob 202 Accepted bo'ladi:

{
  "id": "ord_8f3a1c9e2b",
  "object": "order",
  "service": "taqdimot",
  "status": "queued",
  "credits_charged": 1,
  "created_at": "2026-10-14T09:30:00Z",
  "result": null,
  "metadata": {"your_order_id": "1001"}
}

4. Natijani oling

Ikki yo'l bor: webhook orqali xabar olish (tavsiya etiladi) yoki buyurtmani vaqti-vaqti bilan so'rash.

curl https://api.osontopshir.uz/partner/v1/orders/ord_8f3a1c9e2b \
  -H "Authorization: Bearer $OSONTOPSHIR_API_KEY"
order = requests.get(
    "https://api.osontopshir.uz/partner/v1/orders/ord_8f3a1c9e2b", headers=H
).json()
if order["status"] == "succeeded":
    print(order["result"]["files"][0]["url"])
const order = await (await fetch(
  "https://api.osontopshir.uz/partner/v1/orders/ord_8f3a1c9e2b", { headers: H }
)).json();
if (order.status === "succeeded") console.log(order.result.files[0].url);
So'rash oralig'i

Holatni so'raganda kamida 10 soniya kuting. Taqdimot odatda 1–3 daqiqa, kurs ishi 5–15 daqiqa oladi. Vaqt yuklamaga qarab o'zgaradi.