Source: https://ailoot.ai/models/uz/gemini-3-1-flash-image/
Canonical: https://ailoot.ai/models/uz/gemini-3-1-flash-image/
Language: uz

# Google: Nano Banana 2 (Gemini 3.1 Flash Image)

[Markdown](https://ailoot.ai/models/uz/gemini-3-1-flash-image/index.md) · [JSON](https://ailoot.ai/models/uz/gemini-3-1-flash-image/facts.json)

## [Google: Nano Banana 2 (Gemini 3.1 Flash Image)](https://ailoot.ai/models/uz/gemini-3-1-flash-image/)

Nano Banana 2 (Gemini 3.1 Flash Image) suhbat davomida tasvirlar yaratadi va tahrirlaydi. U mahsulot sahnalari, infografika va bosqichma-bosqich vizual ishlar uchun matn va vizual manbalar, 0.5K–4K chiqish, namuna tasvirlaridan kompozitsiya tuzish va qidiruv manbalari bilan asoslashni qo‘llab-quvvatlaydi.

- [**Ailoot · Rasmlar** `POST /v1/images/generations` `gemini-3.1-flash-image`](https://ailoot.ai/models/uz/gemini-3-1-flash-image/#method-0)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/gemini-3-1-flash-image/#method-1)
- [**Ailoot Ultra · Rasmlar** `POST /v1/images/generations` `google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/gemini-3-1-flash-image/#method-2)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/gemini-3-1-flash-image/#method-3)

Model haqida

Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.

Nano Banana 2 — Google’ning bevosita tasvir yaratish va suhbat davomida tahrirlash uchun mo‘ljallangan Gemini 3.1 Flash Image modeli. Uning tuzilishi samarali vizual yaratish va takroriy tuzatishlarga urg‘u beradi. Hujjatlashtirilgan API profili matn, tasvir, video va PDF qabul qiladi hamda tasvir va matn qaytaradi. Bu Gemini Nano Banana 2.1’dan alohida nomlangan nashr bo‘lib, keyingi barcha Nano Banana yangilanishlarini bildiruvchi yorliq emas.

Chiqish o‘lchamlari 0.5K, 1K, 2K va 4K’ni o‘z ichiga oladi, standart qiymat esa 1K. Kichikroq 0.5K varianti aynan shu profilga xos bo‘lib, boshlang‘ich kompozitsiya uchun mos kelishi mumkin; kattaroq darajalar tanlangan chiqish shakli uchun ko‘proq piksel beradi. Hujjatlashtirilgan nisbatlar kvadrat, portret va albom formatlarini, jumladan 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 va 21:9’ni, shuningdek qo‘shimcha 1:4, 4:1, 1:8 va 8:1 formatlarini qamrab oladi. Masalan, kvadrat chiqishlar 0.5K’da 512 × 512’dan 4K’da 4096 × 4096’gacha bo‘ladi. Mayda tafsilotlarni takomillashtirishdan oldin shaklni mo‘ljallangan joylashtirishga mos tanlang.

Google bu nashr yangilanishlari qatorida tomonlar nisbatiga yaxshiroq rioya qilish, vizual izchillik va ko‘p tilli matnni tushirishni ko‘rsatadi. Poster, menyu yoki infografika uchun aniq matnni ishlating va qaysi yozuv qaysi obyektga tegishli ekanini belgilang. Model kartasida mayda matn yoki uzun parcha uchun, ayniqsa 1K’da, o‘qilish bilan bog‘liq cheklovlar hali borligi qayd etilgan. Izohlarni ixcham qiling va ularning nisbiy o‘lchamini aniq ko‘rsating; zich asosiy matn uchun tasvirni vizual maket namunasi sifatida qabul qiling va haqiqiy yozuvlarni diqqat bilan tekshiring.

Bitta ish jarayonida 14 tagacha namuna tasvirini birlashtirish mumkin. Tasvir qo‘llanmasida o‘ntagacha obyektning tafsilotlariga moslik va to‘rttagacha qahramonning o‘xshashligi tavsiflangan. Namunalarni belgilang va har biri nimani berishini ko‘rsating. Mahsulot sahnasida bir tasvir obyektni, boshqasi muhitni, yana biri yoritishni belgilashi mumkin. Qahramonlar ketma-ketligida oldingi chiqishlarni keyingi promptga kiriting va ko‘rish burchagi yoki poza o‘zgarganda saqlanishi shart bo‘lgan xususiyatlarni ayting.

Web Search va Image Search orqali manbalarga asoslash generatsiyaga dolzarb ma’lumot hamda topilgan vizual namunalarni kiritishi mumkin. Image Search qidiruv natijasining faqat yozma tavsifini emas, vizual kontekstni ham qo‘shadi. Ishlab chiqaruvchi qidiruv funksiyasini hujjatlashtirilgan barcha fikrlash sozlamalarida qo‘llab-quvvatlaydi. Uning tasvir qidiruvi jarayoni haqiqiy odamlarning tasvirlarini qidiruvdan olingan namuna sifatida ishlatmaydi va manbalarga asoslangan natijalar bilan manba ko‘rsatish metama’lumotlarini qaytaradi; natijadan ilovada foydalanganda bu metama’lumotlarni saqlang.

Gemini 3.1 Flash Image uchun hujjatlashtirilgan fikrlash boshqaruvlari minimal va high bo‘lib, standart qiymat minimal. Bu Nano Banana 2.1’ning standart darajasi medium bo‘lgan uch darajali profilidan farq qiladi. Fikrlash murakkabroq kompozitsiya va ko‘rsatmalarni qayta ishlashga yordam beradi. Model Gemini 3 Flash asosida yaratilgan, ammo bu bog‘liqlik uni umumiy kod bajarish yoki funksiya chaqirish modeliga aylantirmaydi: ushbu tasvir nashri jadvalida bu imkoniyatlar qo‘llab-quvvatlanmasligi belgilangan.

Suhbat davomida tahrirlash taqdim etilgan tasvirni o‘zgartirish yoki oldingi generatsiyani takomillashtirishni qo‘llab-quvvatlaydi. Aniq topshiriq shunday bo‘lishi mumkin: “Shisha idish shakli, yorliq matni va kamera burchagini saqlang. Fonni och rangli tosh sirtiga almashtiring va yumshoqroq soyalar qo‘shing.” Saqlanadigan elementlarni o‘zgartiriladiganlari kabi puxta ta’riflang. Model kartasida qahramon izchilligi, chap/o‘ngni to‘g‘ri joylashtirish va qoralama chizmalarga asoslangan tahrirlar hali mukammal bo‘lmasligi qayd etilgan, shuning uchun vizual ketma-ketlikni davom ettirishdan oldin aynan shu tafsilotlarni solishtiring.

API modellar jadvalida 131,072 kirish tokeni va 32,768 chiqish tokeni keltirilgan. U tasvir yaratish, qidiruv manbalari bilan asoslash, fikrlash va paketli ishlovni qo‘llab-quvvatlaydi; audio yaratish, keshlash, tuzilgan chiqishlar, fayl qidirish, Live API va URL konteksti esa qo‘llab-quvvatlanmaydi. Tasvir bilan ishlash jarayoni audio kirishini qabul qilmaydi. Ushbu API profilida video yoki PDF harakatsiz tasvir vazifasiga ma’lumot berishi mumkin; chiqish baribir tasvir va matndan iborat. Yaratilgan tasvirlarda SynthID bor, so‘ralgan tasvirlar soniga esa har doim aynan rioya qilinmaydi.

Amaliy infografika uchun tasdiqlangan yozuvlar, maqsad auditoriya, o‘qish tartibi, namuna materiali va maqsad tomonlar nisbatini bering. Bitta aniq vizual tushuntirishni so‘rang, so‘ng keyingi suhbat navbatida o‘rnatilgan kompozitsiyani saqlagan holda matn yoki oraliqlarni tuzating. Mahsulot maketi uchun geometriya, sirt, yorug‘lik va mahsulotni belgilovchi vizual tafsilotlarni ko‘rsating. Foydali natija — boshqariladigan ketma-ketlikda tekshirish, tanlash va takomillashtirish mumkin bo‘lgan tasvir va unga bog‘liq matn.

Amaliy vazifa

### Amaliy vazifa

Ingliz tilidagi texnik misol

```
Create a simple bicycle-care infographic

Create one portrait infographic teaching three bicycle checks before a short ride: tires, brakes and chain. Use three large illustrated steps in that order, a warm ivory background and dark green accents. Include only these headings: 'TIRES', 'BRAKES', 'CHAIN'. Leave generous space around each heading and keep the illustrations clearly separated.
```

#### Kutiladigan natija

```
One portrait image with three ordered illustrated steps and the three exact, readable headings.
```

#### Natijani tekshirish

```
Inspect the rendered image for heading spelling, order and clear separation of the three checks.
```

**Ailoot · Rasmlar** `POST /v1/images/generations` `gemini-3.1-flash-image`

[`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image&fmt=images)

Google /`gemini-3.1-flash-image`

### Boshlash

Nano Banana 2 (Gemini 3.1 Flash Image) suhbat davomida tasvirlar yaratadi va tahrirlaydi. U mahsulot sahnalari, infografika va bosqichma-bosqich vizual ishlar uchun matn va vizual manbalar, 0.5K–4K chiqish, namuna tasvirlaridan kompozitsiya tuzish va qidiruv manbalari bilan asoslashni qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari

Matn

Natijalar

Rasmlar · Matn

### Ailoot da mavjud · kirish ma’lumotlari va usullar

**Ailoot · Rasmlar** `POST /v1/images/generations`

Kirish

`text`

Chiqish

`image`, `text`

Kontekst

131 072 tokens

Eng katta chiqish

32 768 tokens

Chiqish formati

Rasm fayli

| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar gemini-3.1-flash-image | Standart— |
| Maydon`prompt` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
| Maydon`n` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 | Standart1 |
| Maydon`response_format` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar url, b64\_json | Standart— |
| Maydon`stream` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standartfalse |
| Maydon`size` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`quality` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`background` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`output_format` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`output_compression` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`moderation` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`input_fidelity` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`style` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`partial_images` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |

Kirish materiallari birikmalari

**Matndan rasm** · Majburiy: prompt

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`material_types` | Parametr talablaritext |
| Parametr`required` | Parametr talablarimodel, prompt |
| Parametr`optional_controls` | Parametr talablarinull |
| Parametr`content_type` | Parametr talablariapplication/json |

Hayot sikli: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Amalda qaytarilgan task\_id yoki media kutubxonasidagi yozuv

`GET /v1/media/assets/{asset_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.

### Tariflar

#### Ailoot usullari tariflari

Matnli kirish

0,0005 US$ */ 1K*

Matnli chiqish

0,003 US$ */ 1K*

Chiqish, rasm

0,06 US$ */ 1K tokens*

Kirish

0,0005 US$ */ 1K rasm tokeni*

Chiqish

≈0,0448 US$ *0.5K o‘lchamdagi rasm uchun*

Chiqish

0,0672 US$ *1K o‘lchamdagi rasm uchun*

Chiqish

≈0,101 US$ *2K o‘lchamdagi rasm uchun*

Chiqish

≈0,151 US$ *4K o‘lchamdagi rasm uchun*

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. [Summani band qilish va to‘lovni hisoblash tartibi →](https://ailoot.ai/docs/uz/billing/reserve/)

#### Ma’lumot uchun tarif tafsilotlari

Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.

Modelning ma’lumot jadvallari

#### Sozlamalar bo‘yicha narxlar

| Sozlama | Tariflar jadvali | To‘lov |
| --- | --- | --- |
| SozlamaUltra | Tariflar jadvaliAsosiy tarif | To‘lov Kirish · Kirish tokenlari **$0.0010000** / 1K token Chiqish · Chiqish tokenlari **$0.006000** / 1K token Chiqish · rasm chiqishi **$0.12000** / 1K token Chiqish · veb-qidiruv **$0.028** internetda qidirish uchun |

### So‘rov namunalari

#### Ailoot · Rasmlar

curlPython SDKNode.js SDK

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
export AILOOT_API_KEY
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 image brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gemini-3.1-flash-image", "prompt": ""}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
```

```python
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Set your actual UTF-8 image brief file")
request={'model': 'gemini-3.1-flash-image', 'prompt': ''}
request["prompt"]=f.read_text(encoding="utf-8")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
```

```js
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "gemini-3.1-flash-image", "prompt": ""};
if(!process.env.AILOOT_PROMPT_FILE)throw new Error("Set your actual UTF-8 image brief file");
request.prompt=readFileSync(process.env.AILOOT_PROMPT_FILE,"utf8");
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");
```

### Natijalarni olish va saqlash

#### Ailoot · Rasmlar

Har bir qaytarilgan rasmni yuklab oling yoki uning Base64 kontentini saqlang

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Barcha tayyor natijalarni saqlash

Har bir tayyor rasmni saqlang; har bir qaytarilgan URL dan kontentni oling yoki uning Base64 kontentini dekodlang.

Har bir ma’lumot elementini saqlang. Har bir b64\_json ni dekodlang yoki qaytarilgan har bir imzolangan URL dan faylni yuklab oling. Fayl nomi kengaytmasini haqiqiy MIME turi/baytlar asosida tanlang.

##### Asl javobni tekshirish kerak bo‘lsa

Rasm yaratish yoki tahrirlash natijasini tekshirish kerak bo‘lsa, dastlabki operation\_id/X-Client-Request-ID va qaytarilgan natija haqidagi ma’lumotlarni saqlang. Amalda qaytarilgan task\_id yoki asset\_id qiymatlari yordamida media kutubxonasidan o‘zingizga tegishli mavjud natijalarni tiklang. Rasm yaratish/tahrirlash so‘rovini qayta yubormang va operation\_id dan holatni davriy tekshirish uchun URL tuzmang.

Javob maydonlari

| Maydon | Tur |
| --- | --- |
| Maydon`created` | Turinteger |
| Maydon`data[].url` | Turstring |
| Maydon`data[].b64_json` | Turbase64 string |
| Maydon`usage` | Turobject |

Xatolar va keyingi qadamlar

| Javob | Shart | Keyingi qadam |
| --- | --- | --- |
| Javob400 · `invalid_request_error` | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |
| Javob`server_error` | ShartQaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi | Keyingi qadamDastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang. |

### Taxalluslar

#### Model taxalluslari

<strong>Ailoot</strong> [`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image&fmt=images)
**Ailoot Ultra** [`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=images)

#### Usul yo‘llari taxalluslari

`/v1/images`

#### Chaqirish uchun tegishli ID lar

[`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=images), [`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image&fmt=images)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `google/gemini-3.1-flash-image`

[`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=chat)

Google /`google/gemini-3.1-flash-image`

### Boshlash

Nano Banana 2 (Gemini 3.1 Flash Image) suhbat davomida tasvirlar yaratadi va tahrirlaydi. U mahsulot sahnalari, infografika va bosqichma-bosqich vizual ishlar uchun matn va vizual manbalar, 0.5K–4K chiqish, namuna tasvirlaridan kompozitsiya tuzish va qidiruv manbalari bilan asoslashni qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari

Matn

Natijalar

Matn

### Ailoot da mavjud · kirish ma’lumotlari va usullar

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Kirish

`text`

Chiqish

`text`

Chiqish formati

json yoki SSE

| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar google/gemini-3.1-flash-image | Standart— |
| Maydon`messages` | Tur`message[]` | TalabMajburiy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 1 | Standart— |
| Maydon`messages[].role` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Namunalar: system, user, assistant, tool, function Shartlar: Bu rollar manba kodining moslik turlarida ochiq ifodalangan; aniq rollar to‘plami har bir modelga xos bo‘lib qoladi. Modelga bogʻliq | Standart— |
| Maydon`messages[].content` | Tur`string\|content_part[]\|null` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].tool_calls` | Tur`tool_call[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].tool_call_id` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Quyidagi holatda qo‘llanadi: role=tool; haqiqatan qaytarilgan IDdan foydalaning | Standart— |
| Maydon`messages[].name` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].reasoning_content` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Quyidagi holatda qo‘llanadi: Ushbu model foydalanganda, haqiqatan qaytarilgan fikrlash ma’lumotlarini keyingi so‘rovda qayta yuboring | Standart— |
| Maydon`messages[].reasoning_details` | Tur`object\|array` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`max_tokens` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 Modelga bogʻliq | Standart— |
| Maydon`max_completion_tokens` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 Modelga bogʻliq | Standart— |
| Maydon`stream` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standartfalse |
| Maydon`stream_options.include_usage` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`temperature` | Tur`number` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`top_p` | Tur`number` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`stop` | Tur`string\|string[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`tools` | Tur`function_tool[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`tools[].type` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar function Modelga bogʻliq | Standart— |
| Maydon`tools[].function.name` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Quyidagi holatda qo‘llanadi: Funksiya vositasi taqdim etilgan | Standart— |
| Maydon`tools[].function.description` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`tools[].function.parameters` | Tur`JSON_schema` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |
| Maydon`tool_choice` | Tur`string\|object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`parallel_tool_calls` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`response_format` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`reasoning_effort` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`reasoning` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`service_tier` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`instructions` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Moslik maydoni | Standart— |
| Maydon`functions` | Tur`function[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`function_call` | Tur`string\|object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`prompt_cache_options` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
| Maydon`modalities` | Tur`string[]` | TalabIxtiyoriy | Qiymatlar va cheklovlar text | Standart— |
| Maydon`provider` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar Shartlar: Ushbu Ultra matn marshrutida provider.options rad etiladi | Standart— |
| Maydon`cache_control.ttl` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar Shartlar: Haqiqiy prompt-kesh joylarida 1h rad etiladi | Standart— |

Kirish materiallari birikmalari

**Matn** · UTF8 matni

`messages[].content`

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`content_type` | Parametr talablariapplication/json |
| Parametr`required` | Parametr talablarimodel, messages |
| Parametr`material_types` | Parametr talablaritext |
| Parametr`messages` | Parametr talablarirole/content tuzilishidagi xabarlar massivi |
| Parametr`file_material` | Parametr talablariHaqiqiy UTF-8 hujjati aynan matn sifatida kiritiladi; fayl IDsi faraz qilinmaydi |
| Parametr`optional_controls` | Parametr talablaristream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parametr`control_scope` | Parametr talablariModelga xos; foydalanuvchi funksiya vositalari hostingdagi vositalardan farq qiladi |
| Parametr`output_modalities` | Parametr talablaritext |
| Parametr`hosted_operations` | Parametr talablarifalse |
| Parametr`multimodal_input_binding` | Parametr talablarinull |

Hayot sikli: `synchronous_or_streamed`

Aniq model IDsini messages bilan yuboring.

Kontekst uzunligi chiqishning yuqori chegarasi emas.

Matn fayli aynan matnni taqdim etishi mumkin; tasvir, audio va fayl obyekti kirishlari aniq bog‘lashni talab qiladi.

### Tariflar

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim

Standart tarif Tezkor rejim tanlanganda

Flex rejimi

Standart tarif flex rejimi tanlanganda

Maksimal fikrlash darajasi

Standart tarif Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda

Fikrlash darajasi · yuqori

Standart tarif Fikrlash darajasi yuqori bo‘lganda

Fikrlash darajasi · minimal

Standart tarif Fikrlash darajasi minimal bo‘lganda

Ochiq ko‘rsatilgan keshlash narxlari

Yoqilmagan Ochiq ko‘rsatilgan keshlash so‘ralganda

#### Ailoot tariflari

#### Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

| Sozlama | Tariflar jadvali | Kontekst tokenlari soni bundan ko‘p | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi | To‘lov |
| --- | --- | --- | --- | --- |
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Kontekst tokenlari soni bundan ko‘p— | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.001** / 1K token Chiqish · Chiqish tokenlari **$0.006** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **—** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token Chiqish · Chiqish rasmi tokenlari **$0.12** / 1K rasm tokeni |
| SozlamaSo‘rov uzunligi bo‘yicha 1-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p0 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.001** / 1K token Chiqish · Chiqish tokenlari **$0.006** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **—** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |

#### Ma’lumot uchun tarif tafsilotlari

Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.

Google: Nano Banana 2 (Gemini 3.1 Flash Image)

#### Sozlamalar bo‘yicha narxlar

| Sozlama | To‘lovni hisoblash shartlari | To‘lov |
| --- | --- | --- |
| SozlamaGoogle: Nano Banana 2 (Gemini 3.1 Flash Image) · Standart sozlama | To‘lovni hisoblash shartlariStandart konfiguratsiya | To‘lov Kirish · Kirish tokenlari **0,001 US$** / 1K token Chiqish · Chiqish tokenlari **0,006 US$** / 1K token Chiqish · Chiqish rasmi **0,12 US$** / 1K token Chiqish · Veb-qidiruv **0,028 US$** har bir qidiruv uchun |

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. [Summani band qilish va to‘lovni hisoblash tartibi →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython oqimi

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/gemini-3.1-flash-image", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='google/gemini-3.1-flash-image',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='google/gemini-3.1-flash-image',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Natijalarni olish va saqlash

#### Ailoot Ultra · OpenAI Chat

json yoki SSE

##### Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Har bir javob variantini va uning kontenti, vosita chaqiruvlari hamda fikrlash ma’lumotlarini saqlang. SSEda o‘zgarish qismlarini variant va vosita indeksi bo‘yicha yig‘ing, yakuniy tugash sababi va sarf ma’lumotlarini saqlang.

##### Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari

| Maydon | Tur |
| --- | --- |
| Maydon`choices[].index` | Turinteger |
| Maydon`choices[].message.content` | Turstring\|null |
| Maydon`choices[].message.tool_calls` | Turtool\_call\[\] |
| Maydon`choices[].message.reasoning_content` | Turstring |
| Maydon`choices[].message.reasoning_details` | Turobject\|array |
| Maydon`choices[].finish_reason` | Turstring\|null |
| Maydon`usage` | Turobject |

Xatolar va keyingi qadamlar

| Javob | Shart | Keyingi qadam |
| --- | --- | --- |
| Javob400 · `invalid_request_error` | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |

### Taxalluslar

#### Model taxalluslari

<strong>Ailoot</strong> [`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image)
**Ailoot Ultra** [`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=chat)

#### Usul yo‘llari taxalluslari

`/v1/images`

#### Chaqirish uchun tegishli ID lar

[`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=chat), [`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image)

**Ailoot Ultra · Rasmlar** `POST /v1/images/generations` `google/gemini-3.1-flash-image`

[`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=images)

Google /`google/gemini-3.1-flash-image`

### Boshlash

Nano Banana 2 (Gemini 3.1 Flash Image) suhbat davomida tasvirlar yaratadi va tahrirlaydi. U mahsulot sahnalari, infografika va bosqichma-bosqich vizual ishlar uchun matn va vizual manbalar, 0.5K–4K chiqish, namuna tasvirlaridan kompozitsiya tuzish va qidiruv manbalari bilan asoslashni qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari

Matn · Rasmlar

Natijalar

Rasmlar

### Ailoot da mavjud · kirish ma’lumotlari va usullar

**Ailoot Ultra · Rasmlar** `POST /v1/images/generations`

Kirish

`text`, `image`

Chiqish

`image`

| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar google/gemini-3.1-flash-image | Standart— |
| Maydon`prompt` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
| Maydon`resolution` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar 512, 1K, 2K, 4K | Standart— |
| Maydon`aspect_ratio` | Tur`string` | TalabIxtiyoriy | Qiymatlar va cheklovlar 1:1, 1:4, 1:8, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9 | Standart— |
| Maydon`n` | Tur`integer` | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 Eng ko‘p: 1 | Standart— |
| Maydon`input_references` | Tur`array` | TalabIxtiyoriy | Qiymatlar va cheklovlar Elementlarning eng kam soni: 0 Elementlarning eng ko‘p soni: 14 | Standart— |
| Maydon`provider` | Tur`object` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standart— |

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`content_type` | Parametr talablariapplication/json |
| Parametr`required` | Parametr talablarimodel, prompt |
| Parametr`material_types` | Parametr talablaritext, image |

Hayot sikli: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Amalda qaytarilgan task\_id yoki media kutubxonasidagi yozuv

`GET /v1/media/assets/{asset_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

### Tariflar

##### Yakuniy to‘lov qanday hisoblanadi

Ko‘rsatilgan tariflar xarajatni generatsiyadan oldin taxminiy hisoblash uchun xizmat qiladi. Yakuniy to‘lov dastlabki generatsiya uchun qayd etilgan xarajat asosida hisoblanadi. Natijaning o‘lchangan davomiyligi va oldindan taxmin qilingan miqdorlar haq undiriladigan yakuniy miqdor hisoblanmaydi.

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim

Ko‘rsatilmagan Tezkor rejim tanlanganda

Flex rejimi

Ko‘rsatilmagan flex rejimi tanlanganda

Maksimal fikrlash darajasi

Ko‘rsatilmagan Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda

#### Taqqoslash uchun taxminiy tariflar

#### Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

| Sozlama | Tariflar jadvali | Prognoz miqdori | To‘lov |
| --- | --- | --- | --- |
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Prognoz miqdori— | To‘lov Kirish · Kirish tokenlari · Faqat taqqoslash uchun taxmin **—** / 1K token Chiqish · Chiqish tokenlari · Faqat taqqoslash uchun taxmin **—** / 1K token Kirish · Keshdan o‘qish · Faqat taqqoslash uchun taxmin **—** / 1K token Kirish · Keshga yozish · Faqat taqqoslash uchun taxmin **—** / 1K token Kirish · Keshga yozish, 1 soat · Faqat taqqoslash uchun taxmin **—** / 1K token |
| SozlamaYaratishning taxminiy qiymati | Tariflar jadvali— | Prognoz miqdoribir generatsiya uchun taxmin | To‘lov Chiqish · Yaratishning taxminiy narxi · Faqat taqqoslash uchun taxmin **$0.49152** yaratishdan oldingi taxmin Bu taxmin qo‘shimcha to‘lov ham, tugallangan generatsiya uchun qat’iy tarif ham emas. |

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. [Summani band qilish va to‘lovni hisoblash tartibi →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot Ultra · Rasmlar

curl

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'google/gemini-3.1-flash-image', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
```

### Natijalarni olish va saqlash

#### Ailoot Ultra · Rasmlar

Har bir qaytarilgan rasmni yuklab oling yoki uning Base64 kontentini saqlang

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

Boshqa kontentni o‘qish

O‘zingizga tegishli mavjud materiallarni o‘qish

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
```

##### Barcha tayyor natijalarni saqlash

Har bir tayyor rasmni saqlang; har bir qaytarilgan URL dan kontentni oling yoki uning Base64 kontentini dekodlang.

To‘liq javob va sarlavhalarni, amalda qaytarilgan barcha natijalarni, dastlab qaytarilgan identifikatorlarni hamda barcha usage maydonlarini saqlang. Yaratish so‘rovini qayta yubormasdan dastlabki operatsiyani tiklang.

##### Asl javobni tekshirish kerak bo‘lsa

Qaytarilgan X-Client-Request-ID ni ma’lumotlarni solishtirib tekshirish uchun saqlang. Faqat amalda qaytarilgan task\_id/asset\_id qiymatlari bo‘yicha yoki o‘zingizga tegishli media kutubxonasidan ma’lumot o‘qing; operatsiya ID sidan vazifa URL manzilini hech qachon tuzmang va yaratish so‘rovini qayta yubormang.

Javob maydonlari

| Maydon | Tur |
| --- | --- |
| Maydon`created` | Tur |
| Maydon`data[].url` | Tur |
| Maydon`data[].b64_json` | Tur |
| Maydon`usage` | Tur |

### Taxalluslar

#### Model taxalluslari

<strong>Ailoot</strong> [`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image&fmt=images)
**Ailoot Ultra** [`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=images)

#### Usul yo‘llari taxalluslari

`/v1/images`

#### Chaqirish uchun tegishli ID lar

[`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=images), [`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image&fmt=images)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `google/gemini-3.1-flash-image`

[`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=messages)

Google /`google/gemini-3.1-flash-image`

### Boshlash

Nano Banana 2 (Gemini 3.1 Flash Image) suhbat davomida tasvirlar yaratadi va tahrirlaydi. U mahsulot sahnalari, infografika va bosqichma-bosqich vizual ishlar uchun matn va vizual manbalar, 0.5K–4K chiqish, namuna tasvirlaridan kompozitsiya tuzish va qidiruv manbalari bilan asoslashni qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari

Matn

Natijalar

json · sse

### Ailoot da mavjud · kirish ma’lumotlari va usullar

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Kirish

`text`

Chiqish

`json`, `sse`

Chiqish formati

JSON yoki SSE

| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
| --- | --- | --- | --- | --- |
| Maydon`model` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar google/gemini-3.1-flash-image | Standart— |
| Maydon`messages` | Tur`message[]` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`messages[].role` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar user, assistant | Standart— |
| Maydon`messages[].content` | Tur`string` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`max_tokens` | Tur`integer` | TalabMajburiy | Qiymatlar va cheklovlar | Standart— |
| Maydon`stream` | Tur`boolean` | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standartfalse |

Kirish materiallari birikmalari

**Matn** · UTF-8 matni

`messages[].content satri`

Usul parametrlari va hayot sikli

| Parametr | Parametr talablari |
| --- | --- |
| Parametr`content_type` | Parametr talablariapplication/json |
| Parametr`required` | Parametr talablarimodel, messages, max\_tokens |
| Parametr`optional_controls` | Parametr talablaristream |
| Parametr`material_types` | Parametr talablaritext |
| Parametr`text_file_material` | Parametr talablariHaqiqiy UTF-8 hujjatini o‘qing va uning matnini ko‘rsatilgan kirish yoki xabar kontenti satriga joylashtiring. |

Hayot sikli: `synchronous_or_streamed`

### Tariflar

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim

Standart tarif Tezkor rejim tanlanganda

Flex rejimi

Standart tarif flex rejimi tanlanganda

Maksimal fikrlash darajasi

Standart tarif Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda

Fikrlash darajasi · yuqori

Standart tarif Fikrlash darajasi yuqori bo‘lganda

Fikrlash darajasi · minimal

Standart tarif Fikrlash darajasi minimal bo‘lganda

Ochiq ko‘rsatilgan keshlash narxlari

Yoqilmagan Ochiq ko‘rsatilgan keshlash so‘ralganda

#### Ailoot tariflari

#### Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

| Sozlama | Tariflar jadvali | Kontekst tokenlari soni bundan ko‘p | Kontekst tokenlari soni bundan oshmaydi, chegara kiradi | To‘lov |
| --- | --- | --- | --- | --- |
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Kontekst tokenlari soni bundan ko‘p— | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.001** / 1K token Chiqish · Chiqish tokenlari **$0.006** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **—** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token Chiqish · Chiqish rasmi tokenlari **$0.12** / 1K rasm tokeni |
| SozlamaSo‘rov uzunligi bo‘yicha 1-daraja | Tariflar jadvali— | Kontekst tokenlari soni bundan ko‘p0 | Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘q | To‘lov Kirish · Kirish tokenlari **$0.001** / 1K token Chiqish · Chiqish tokenlari **$0.006** / 1K token Kirish · Keshdan o‘qish **—** / 1K token Kirish · Keshga yozish **—** / 1K token Kirish · Keshga yozish, 1 soat **—** / 1K token |

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. [Summani band qilish va to‘lovni hisoblash tartibi →](https://ailoot.ai/docs/uz/billing/reserve/)

### So‘rov namunalari

#### Ailoot Ultra · Anthropic Messages

To‘liq minimal JSON so‘rov tanasicurl · O‘zingizning UTF-8 hujjatingizdan foydalaningPython · Natijani to‘liq saqlang

```json
{
  "model": "google/gemini-3.1-flash-image",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'google/gemini-3.1-flash-image', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'google/gemini-3.1-flash-image', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Natijalarni olish va saqlash

#### Ailoot Ultra · Anthropic Messages

JSON yoki SSE

##### Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Barcha kontent bloklari, fikrlash imzolari va haqiqiy vosita ishlatish IDlarini saqlang. SSE bloklarining barcha o‘zgarish qismlarini yig‘ing; birinchi matn bloki to‘liq chiqish emas.

##### Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari

| Maydon | Tur |
| --- | --- |
| Maydon`id` | Turstring |
| Maydon`model` | Turstring |
| Maydon`content[]` | Turtext\|thinking\|tool\_use\|other content block |
| Maydon`stop_reason` | Turstring\|null |
| Maydon`usage` | Turobject |

Xatolar va keyingi qadamlar

| Javob | Shart | Keyingi qadam |
| --- | --- | --- |
| Javob400 · `invalid_request_error` | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |

### Taxalluslar

#### Model taxalluslari

<strong>Ailoot</strong> [`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image)
**Ailoot Ultra** [`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=messages)

#### Usul yo‘llari taxalluslari

`/v1/images`

#### Chaqirish uchun tegishli ID lar

[`google/gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Ultra&caller=google%2Fgemini-3.1-flash-image&fmt=messages), [`gemini-3.1-flash-image`](https://ailoot.ai/models/uz/#m=google%2Fgemini-3.1-flash-image&route=Core&caller=gemini-3.1-flash-image)

FAQ · Google: Nano Banana 2 (Gemini 3.1 Flash Image)

Qanday kirish ma’lumotlari va natijalar mavjud?

`POST /v1/images/generations` · `gemini-3.1-flash-image`: `text` → `image`, `text` `POST /v1/chat/completions` · `google/gemini-3.1-flash-image`: `text` → `text` `POST /v1/images/generations` · `google/gemini-3.1-flash-image`: `text`, `image` → `image` `POST /v1/messages` · `google/gemini-3.1-flash-image`: `text` → `json`, `sse`

So‘rov qaysi maydonlardan foydalanadi?

`POST /v1/images/generations` · `gemini-3.1-flash-image`: `model`, `prompt`, `n`, `response_format`, `stream` `POST /v1/chat/completions` · `google/gemini-3.1-flash-image`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/images/generations` · `google/gemini-3.1-flash-image`: `model`, `prompt`, `resolution`, `aspect_ratio`, `n`, `input_references`, `provider` `POST /v1/messages` · `google/gemini-3.1-flash-image`: `model`, `messages`, `max_tokens`, `stream`

Qanday cheklovlar amal qiladi?

`POST /v1/images/generations` · `gemini-3.1-flash-image`: `ctx`: `131072`; `max_out`: `32768`; `n.minimum`: `1` `POST /v1/chat/completions` · `google/gemini-3.1-flash-image`: `messages.min_items`: `1` `POST /v1/images/generations` · `google/gemini-3.1-flash-image`: `n.minimum`: `1`; `n.maximum`: `1`

Ailoot’ni Claude Code, OpenCode, Hermes yoki ilovangizga ulang.

## Kompaniya va uning loyihalar portfeli

Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.

## Tokenlarni chegirma bilan xarid qiling.

Muntazam ish uchun obuna chegirmasi. Token xaridiga promokodlar — 50% gacha.

Obuna

Muntazam so‘rovlaringiz uchun chegirmali tarif tanlang.

50% gacha promokod

Xaridda kod kiriting. Narx amaldagi aksiya bilan qayta hisoblanadi.

Tarixdagi xarajatlar

Har so‘rov uchun model, token va summa saqlanadi.

[Obuna tanlash](https://ailoot.ai/docs/uz/billing/subscriptions/) · [Model narxlarini ko‘rish](https://ailoot.ai/models/uz/)

## API’ni sotadigan mahsulotingizga ulang.

SaaS, ilova va botlar Ailoot ofertasi hamda litsenziya shartnomasiga muvofiq. Qayta sotishga reseller litsenziyasi so‘rang.

Tijorat ilovasi

Xizmatingizning pullik funksiyalariga matn, rasm, video va ovoz yaratishni qo‘shing.

Reseller litsenziyasi

Loyiha tavsifi va kirish sxemasini yuboring. Foydalanish va qayta sotishga yozma shartlarni so‘rang.

Saytdagi hujjatlar

Oferta, litsenziya shartnomasi va ma’lumotlar siyosati ulashdan oldin ochiq.

[Reseller litsenziyasini so‘rash](mailto:support@ailoot.ai) · [Oferta va litsenziya shartnomasi](https://ailoot.ai/legal/offer?lang=uz)

## Ailoot · Kompaniya va uning loyihalar portfeli





Ailoot to‘plangan faoliyat tajribasi, keng mijozlar bazasi, barqaror xizmat va doimiy KPI nazoratiga tayanadi.





Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.





Ailoot bu faoliyat tajribasini mijozlar mahsulotlari, agentlar, ilovalar va avtomatlashtirishlarda AI imkoniyatlariga API orqali kirishni ta’minlashda qo‘llaydi.
