Source: https://ailoot.ai/models/pl/gpt-image-2-5-flare/
Canonical: https://ailoot.ai/models/pl/gpt-image-2-5-flare/
Language: pl

# OpenAI: GPT Image 2.5 Flare

[Markdown](https://ailoot.ai/models/pl/gpt-image-2-5-flare/index.md) · [JSON](https://ailoot.ai/models/pl/gpt-image-2-5-flare/facts.json)

## [OpenAI: GPT Image 2.5 Flare](https://ailoot.ai/models/pl/gpt-image-2-5-flare/)

GPT Image 2.5 Flare generuje i edytuje obrazy na podstawie tekstu i referencji, koncentrując się na szybkim codziennym tworzeniu materiałów wizualnych. Obsługuje niestandardowe rozmiary, przezroczyste tła, maski i poziomy jakości do max do szkiców, ilustracji i materiałów kampanii.

- [**Ailoot · Obrazy** `POST /v1/images/generations` `gpt-image-2.5-flare`](https://ailoot.ai/models/pl/gpt-image-2-5-flare/#method-0)
- [**Ailoot Ultra · Obrazy** `POST /v1/images/generations` `gpt-image-2.5-flare`](https://ailoot.ai/models/pl/gpt-image-2-5-flare/#method-1)
- [**Ailoot Ultra · Obrazy** `POST /v1/images/generations` `openai/gpt-image-2.5-flare`](https://ailoot.ai/models/pl/gpt-image-2-5-flare/#method-2)

O modelu

Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.

GPT Image 2.5 Flare to wersja OpenAI do generowania i edycji obrazów przeznaczona do szybkiej codziennej pracy w wysokiej jakości. Przyjmuje tekst i obrazy, a wyniki zwraca w postaci obrazów. Używaj jej do szkiców wizualnych, ilustracji, koncepcji produktowych i powtarzalnych zadań twórczych, w których opis ma szybko stać się użytecznym obrazem. Flare jest odrębny od Sunburst, którego przeznaczenie kładzie nacisk na precyzję edycji. Wybierz Flare do rutynowego tworzenia obrazów, a Sunburst, gdy priorytetem jest dokładna edycja.

Zacznij od głównego obiektu, akcji, otoczenia, kompozycji i sposobu przedstawienia. W ilustracji kampanii poproś o rowerzystę przejeżdżającego przez niewielki most w ciepłym wieczornym świetle, z wyrazistą sylwetką i otwartą przestrzenią nieba na późniejszy tekst. Zwięzły opis poszukiwawczy może pozostawiać decyzje estetyczne otwarte; opis produkcyjny powinien nazywać istotne szczegóły i ich rozmieszczenie. Bezpośrednie procesy generowania i edycji dopuszczają prompty do 32 000 znaków i od jednego do dziesięciu wyników, co pozwala porównać kilka wariantów względem tego samego celu.

Przy edycji można dostarczyć do szesnastu obrazów referencyjnych. Przypisz każdej referencji jasną rolę, zamiast oczekiwać, że model sam rozstrzygnie, czy obraz określa tożsamość obiektu, scenerię czy styl. Maska może ukierunkować zmianę danego obszaru; przy wielu obrazach dotyczy pierwszego. Obraz i maska muszą mieć zgodny format i wymiary, a maska musi zawierać kanał alfa. Przewodnik wymaga rozmiaru źródła i maski poniżej 50 MB. Maska stanowi wskazówkę, a nie obietnicę dokładnego zachowania granicy, dlatego określ zarówno żądaną modyfikację, jak i to, co powinno pozostać rozpoznawalne.

Flare obsługuje jakość low, medium, high, xhigh, max i automatyczną, z auto jako wartością domyślną. Niższa jakość może służyć do szybkiego szkicu wizualnego; wyższe ustawienia można porównać pod kątem szczegółów końcowego materiału. Jakość jest niezależna od rozmiaru i kompresji wyniku. Standardowe rozmiary obejmują 1024 × 1024, 1536 × 1024 i 1024 × 1536; dostępne są też wymiary automatyczne lub niestandardowe. Dobierz orientację do końcowego miejsca użycia i przestrzeni potrzebnej scenie.

Niestandardowa szerokość i wysokość muszą być wielokrotnościami szesnastu, a żaden bok nie może przekraczać 3840 pikseli. Dopuszczalne proporcje mieszczą się od 1:3 do 3:1, a całkowite pole obrazu musi wynosić co najmniej 655 360 i najwyżej 8 294 400 pikseli. Wszystkie cztery warunki obowiązują jednocześnie. Przewodnik określa rozdzielczości powyżej 2560 × 1440 jako eksperymentalne. Użyj poprawnego kadru pasującego do kompozycji i uwzględnij w opisie szczegóły wrażliwe na przycięcie, zamiast traktować większą rozdzielczość jako automatyczną poprawę układu.

Domyślnym formatem wyniku jest PNG, z alternatywami JPEG i WebP. JPEG i WebP pozwalają ustawić kompresję od 0 do 100. Dla przezroczystego tła wybierz PNG lub WebP; obsługiwane są również tła nieprzezroczyste i automatyczne. Przezroczysty element można umieścić w późniejszym układzie, podczas gdy nieprzezroczysty obraz ma własne tło. Dobierz format, tło i kompresję do rzeczywistych potrzeb dostarczenia materiału i zachowaj ukończony plik wraz z opisem i wybranymi ustawieniami.

Producent dokumentuje bezpośrednie generowanie i edycje obrazów oraz konwersacyjne narzędzie obrazowe, które może zachowywać wybrane wyniki do dalszych zmian. W tym procesie działanie może być automatyczne albo wymuszać generowanie lub edycję, gdy obraz znajduje się w kontekście. Strumieniowanie może pokazywać do trzech obrazów częściowych przed wynikiem końcowym. Podglądy te przedstawiają postęp, a nie dodatkowe gotowe rezultaty. Przy stopniowym dopracowywaniu kontynuuj od wybranego obrazu i opisz widoczną zmianę, taką jak przesunięcie jednego przedmiotu lub korekta kolorystyki. Interfejs producenta obsługuje również przetwarzanie wsadowe.

Sprawdź napisy, rozmieszczenie przedmiotów, szczegóły głównego obiektu i kompozycję w docelowym rozmiarze. GPT Image nadal może mieć trudności z dokładnym położeniem tekstu, uporządkowanymi układami i powtarzalną tożsamością wizualną między generowaniami. Zachowaj zaakceptowany wariant jako następną referencję i ogranicz kolejną edycję do istotnego problemu. Przeznaczenie Flare do codziennego generowania przydaje się w jasnej sekwencji: opis, warianty wizualne, wybór i dopracowanie, z oceną końcowego materiału względem rzeczywistego celu twórczego.

**Ailoot · Obrazy** `POST /v1/images/generations` `gpt-image-2.5-flare`

[`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images)

OpenAI /`gpt-image-2.5-flare`

### Start

GPT Image 2.5 Flare generuje i edytuje obrazy na podstawie tekstu i referencji, koncentrując się na szybkim codziennym tworzeniu materiałów wizualnych. Obsługuje niestandardowe rozmiary, przezroczyste tła, maski i poziomy jakości do max do szkiców, ilustracji i materiałów kampanii.

Akceptowane dane wejściowe

Tekst

Wyniki

Obrazy

### Dostępne w Ailoot · dane wejściowe i metody

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

Wejście

`text`

Wyjście

`image`

Format wyjściowy

Plik obrazu

| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | WymaganieWymagane | Wartości i limity gpt-image-2.5-flare | Domyślnie— |
| Pole`prompt` | Typ`string` | WymaganieWymagane | Wartości i limity Minimalna długość: 1 | Domyślnie— |
| Pole`n` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Minimum: 1 | Domyślnie1 |
| Pole`response_format` | Typ`string` | WymaganieOpcjonalne | Wartości i limity url, b64\_json | Domyślnie— |
| Pole`stream` | Typ`boolean` | WymaganieOpcjonalne | Wartości i limity | Domyślniefalse |
| Pole`size` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`quality` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`background` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`output_format` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`output_compression` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`moderation` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`input_fidelity` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`style` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
| Pole`partial_images` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |

Kombinacje materiałów wejściowych

**Tekst na obraz** · Wymagane: prompt

Parametry i cykl życia metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`material_types` | Kontrakttext |
| Parametr`required` | Kontraktmodel, prompt |
| Parametr`optional_controls` | Kontraktnull |
| Parametr`content_type` | Kontraktapplication/json |

Cykl życia: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Rzeczywiście zwrócony task\_id lub wpis w bibliotece multimediów

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

`GET /v1/media/assets`

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

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

### Cennik

#### Stawki metod Ailoot

Wejście tekstowe

0,005 USD */ 1K*

Wejście, obraz

0,008 USD */ 1K tokens*

Wyjście, obraz

0,03 USD */ 1K tokens*

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. [Jak działają rezerwacja i rozliczenie →](https://ailoot.ai/docs/pl/billing/reserve/)

### Przykładowe żądania

#### Ailoot · Obrazy

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": "gpt-image-2.5-flare", "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': 'gpt-image-2.5-flare', '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": "gpt-image-2.5-flare", "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");
```

### Odbieranie i zapisywanie wyników

#### Ailoot · Obrazy

Pobierz każdy zwrócony obraz lub zapisz jego zawartość Base64

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

##### Zachowaj wszystkie ukończone wyniki

Zapisz każdy ukończony obraz; pobierz każdy zwrócony URL lub zdekoduj zawartość Base64.

Zachowaj każdy element danych. Zdekoduj każdą wartość b64\_json lub pobierz dane z każdego zwróconego podpisanego adresu URL. Dobierz rozszerzenie nazwy pliku na podstawie rzeczywistego typu MIME lub bajtów.

##### Jeśli trzeba sprawdzić pierwotną odpowiedź

Jeśli wynik generowania lub edycji obrazu wymaga sprawdzenia, zachowaj pierwotny operation\_id/X-Client-Request-ID oraz zwrócone informacje o wyniku. Odzyskaj istniejące własne wyniki z biblioteki multimediów, używając rzeczywistych wartości task\_id lub asset\_id. Nie wysyłaj ponownie żądania generowania lub edycji ani nie twórz adresu URL do sprawdzania stanu na podstawie operation\_id.

Pola odpowiedzi

| Pole | Typ |
| --- | --- |
| Pole`created` | Typinteger |
| Pole`data[].url` | Typstring |
| Pole`data[].b64_json` | Typbase64 string |
| Pole`usage` | Typobject |

Błędy i dalsze kroki

| Odpowiedź | Warunek | Następny krok |
| --- | --- | --- |
| Odpowiedź400 · `invalid_request_error` | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |
| Odpowiedź`server_error` | WarunekZwrócona odpowiedź wskazuje, że operacja lub wynik wymaga sprawdzenia | Następny krokZachowaj pierwotnie zwrócony identyfikator operacji lub zadania, nagłówki żądania i odpowiedź; kontynuuj obsługiwane odczyty tej pierwotnej operacji. Nie wysyłaj ponownie żądania utworzenia. |

### Aliasy

#### Aliasy modelu

<strong>Ailoot</strong> [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images)
**Ailoot Ultra** [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images), [`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images)

#### Aliasy ścieżek metod

`/v1/images`

#### Powiązane ID modeli

[`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images)

**Ailoot Ultra · Obrazy** `POST /v1/images/generations` `gpt-image-2.5-flare`

[`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images)

OpenAI /`gpt-image-2.5-flare`

ID modelu

- `gpt-image-2.5-flare`
- `openai/gpt-image-2.5-flare`

### Start

GPT Image 2.5 Flare generuje i edytuje obrazy na podstawie tekstu i referencji, koncentrując się na szybkim codziennym tworzeniu materiałów wizualnych. Obsługuje niestandardowe rozmiary, przezroczyste tła, maski i poziomy jakości do max do szkiców, ilustracji i materiałów kampanii.

Akceptowane dane wejściowe

Tekst

Wyniki

Obrazy

### Dostępne w Ailoot · dane wejściowe i metody

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

Wejście

`text`

Wyjście

`image`

| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | WymaganieWymagane | Wartości i limity gpt-image-2.5-flare | Domyślnie— |
| Pole`prompt` | Typ`string` | WymaganieWymagane | Wartości i limity Maksymalna długość: 32 000 | Domyślnie— |
| Pole`size` | Typ`string` | WymaganieOpcjonalne | Wartości i limity Warunki: Użyj auto lub WIDTHxHEIGHT z oboma wymiarami podzielnymi przez 16. Najdłuższy bok może mieć najwyżej 3,840 pikseli, a łączny rozmiar najwyżej 8,300,000 pikseli. | Domyślnieauto |
| Pole`background` | Typ`string` | WymaganieOpcjonalne | Wartości i limity transparent, opaque, auto | Domyślnieauto |
| Pole`moderation` | Typ`string` | WymaganieOpcjonalne | Wartości i limity low, auto Warunki: Użyj auto dla standardowej moderacji treści. | Domyślnie— |
| Pole`n` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Minimum: 1 Maksimum: 10 | Domyślnie1 |
| Pole`quality` | Typ`string` | WymaganieOpcjonalne | Wartości i limity auto, high, medium, low | Domyślnieauto |
| Pole`output_compression` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Minimum: 0 Maksimum: 100 Warunki: Dotyczy wyjścia JPEG i WebP; wyślij udokumentowaną wartość całkowitą. | Domyślnie100 |
| Pole`output_format` | Typ`string` | WymaganieOpcjonalne | Wartości i limity webp, png, jpeg | Domyślniepng |
| Pole`stream` | Typ`boolean` | WymaganieOpcjonalne | Wartości i limity false Warunki: Ta ścieżka zwraca jedną kompletną odpowiedź JSON. | Domyślniefalse |

Parametry i cykl życia metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`content_type` | Kontraktapplication/json |
| Parametr`required` | Kontraktprompt, model |
| Parametr`material_types` | Kontrakttext |
| Parametr`optional` | Kontraktsize, background, moderation, n, quality, output\_compression, output\_format, stream |
| Parametr`conditions` | KontraktPrzezroczyste tło wymaga PNG lub WebP., Kompresja wyjścia dotyczy JPEG lub WebP., Wybrana metoda generuje na podstawie tekstu. Edycja i sterowanie strumieniowaniem opisane przez producenta są osobnymi funkcjami. |

Cykl życia: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Rzeczywiście zwrócony task\_id lub wpis w bibliotece multimediów

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

`GET /v1/media/assets`

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

### Cennik

##### Jak obliczana jest ostateczna opłata

Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki

Nie określono Gdy wybrany jest tryb szybki

Tryb flex

Nie określono Gdy wybrany jest tryb flex

Maksymalna intensywność rozumowania

Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)

#### Szacunkowe stawki do porównania

#### Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

| Konfiguracja | Tabela stawek | Przewidywana ilość | Opłata |
| --- | --- | --- | --- |
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Opłata Wejście · Tokeny wejściowe · Szacunek tylko do porównania **—** / 1K tokenów Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Odczyt cache · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Zapis do cache · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania **—** / 1K tokenów |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania **$0.24576** szacunek przed generowaniem Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie. |

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. [Jak działają rezerwacja i rozliczenie →](https://ailoot.ai/docs/pl/billing/reserve/)

### Przykładowe żądania

#### Ailoot Ultra · Obrazy

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={'prompt': 'A cute baby sea otter', 'model': 'gpt-image-2.5-flare', 'size': '1024x1024', 'n': 1, 'background': 'auto', 'moderation': 'auto', 'output_format': 'png'}

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
```

### Odbieranie i zapisywanie wyników

#### Ailoot Ultra · Obrazy

Pobierz każdy zwrócony obraz lub zapisz jego zawartość Base64

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

Inne odczyty treści

Odczytaj istniejące zasoby należące do Ciebie

```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.
```

##### Zachowaj wszystkie ukończone wyniki

Zapisz każdy ukończony obraz; pobierz każdy zwrócony URL lub zdekoduj zawartość Base64.

Zachowaj pełną odpowiedź i nagłówki, wszystkie rzeczywiście uzyskane wyniki, pierwotnie zwrócone identyfikatory oraz wszystkie pola zużycia. Odzyskaj pierwotną operację bez ponownego wysyłania żądania utworzenia.

##### Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj zwrócony X-Client-Request-ID do uzgodnienia danych. Odczytuj wyłącznie rzeczywiście zwrócone wartości task\_id/asset\_id lub własną bibliotekę multimediów; nigdy nie buduj adresu URL zadania na podstawie identyfikatora operacji i nigdy nie wysyłaj ponownie żądania utworzenia.

Pola odpowiedzi

| Pole | Typ |
| --- | --- |
| Pole`created` | Typ |
| Pole`data[].url` | Typ |
| Pole`data[].b64_json` | Typ |
| Pole`usage` | Typ |

### Aliasy

#### Aliasy modelu

<strong>Ailoot</strong> [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images)
**Ailoot Ultra** [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images), [`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images)

#### Aliasy ścieżek metod

`/v1/images`

#### Powiązane ID modeli

[`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images)

**Ailoot Ultra · Obrazy** `POST /v1/images/generations` `openai/gpt-image-2.5-flare`

[`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images)

OpenAI /`openai/gpt-image-2.5-flare`

ID modelu

- `gpt-image-2.5-flare`
- `openai/gpt-image-2.5-flare`

### Start

GPT Image 2.5 Flare generuje i edytuje obrazy na podstawie tekstu i referencji, koncentrując się na szybkim codziennym tworzeniu materiałów wizualnych. Obsługuje niestandardowe rozmiary, przezroczyste tła, maski i poziomy jakości do max do szkiców, ilustracji i materiałów kampanii.

Akceptowane dane wejściowe

Tekst · Obrazy

Wyniki

Obrazy

### Dostępne w Ailoot · dane wejściowe i metody

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

Wejście

`text`, `image`

Wyjście

`image`

| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | WymaganieWymagane | Wartości i limity openai/gpt-image-2.5-flare | Domyślnie— |
| Pole`prompt` | Typ`string` | WymaganieWymagane | Wartości i limity Minimalna długość: 1 | Domyślnie— |
| Pole`aspect_ratio` | Typ`string` | WymaganieOpcjonalne | Wartości i limity 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto | Domyślnie— |
| Pole`quality` | Typ`string` | WymaganieOpcjonalne | Wartości i limity auto, low, medium, high, xhigh, max | Domyślnie— |
| Pole`background` | Typ`string` | WymaganieOpcjonalne | Wartości i limity auto, transparent, opaque | Domyślnie— |
| Pole`n` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Minimum: 1 Maksimum: 10 | Domyślnie— |
| Pole`input_references` | Typ`array` | WymaganieOpcjonalne | Wartości i limity Minimalna liczba elementów: 0 Maksymalna liczba elementów: 16 | Domyślnie— |
| Pole`output_compression` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity Minimum: 0 Maksimum: 100 | Domyślnie— |
| Pole`provider` | Typ`object` | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |

Parametry i cykl życia metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`content_type` | Kontraktapplication/json |
| Parametr`required` | Kontraktmodel, prompt |
| Parametr`material_types` | Kontrakttext, image |

Cykl życia: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Rzeczywiście zwrócony task\_id lub wpis w bibliotece multimediów

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

`GET /v1/media/assets`

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

### Cennik

##### Jak obliczana jest ostateczna opłata

Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki

Nie określono Gdy wybrany jest tryb szybki

Tryb flex

Nie określono Gdy wybrany jest tryb flex

Maksymalna intensywność rozumowania

Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)

#### Szacunkowe stawki do porównania

#### Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

| Konfiguracja | Tabela stawek | Przewidywana ilość | Opłata |
| --- | --- | --- | --- |
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Opłata Wejście · Tokeny wejściowe · Szacunek tylko do porównania **—** / 1K tokenów Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Odczyt cache · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Zapis do cache · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania **—** / 1K tokenów |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania **$0.24576** szacunek przed generowaniem Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie. |

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. [Jak działają rezerwacja i rozliczenie →](https://ailoot.ai/docs/pl/billing/reserve/)

### Przykładowe żądania

#### Ailoot Ultra · Obrazy

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': 'openai/gpt-image-2.5-flare', '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
```

### Odbieranie i zapisywanie wyników

#### Ailoot Ultra · Obrazy

Pobierz każdy zwrócony obraz lub zapisz jego zawartość Base64

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

Inne odczyty treści

Odczytaj istniejące zasoby należące do Ciebie

```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.
```

##### Zachowaj wszystkie ukończone wyniki

Zapisz każdy ukończony obraz; pobierz każdy zwrócony URL lub zdekoduj zawartość Base64.

Zachowaj pełną odpowiedź i nagłówki, wszystkie rzeczywiście uzyskane wyniki, pierwotnie zwrócone identyfikatory oraz wszystkie pola zużycia. Odzyskaj pierwotną operację bez ponownego wysyłania żądania utworzenia.

##### Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj zwrócony X-Client-Request-ID do uzgodnienia danych. Odczytuj wyłącznie rzeczywiście zwrócone wartości task\_id/asset\_id lub własną bibliotekę multimediów; nigdy nie buduj adresu URL zadania na podstawie identyfikatora operacji i nigdy nie wysyłaj ponownie żądania utworzenia.

Pola odpowiedzi

| Pole | Typ |
| --- | --- |
| Pole`created` | Typ |
| Pole`data[].url` | Typ |
| Pole`data[].b64_json` | Typ |
| Pole`usage` | Typ |

### Aliasy

#### Aliasy modelu

<strong>Ailoot</strong> [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images)
**Ailoot Ultra** [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images), [`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images)

#### Aliasy ścieżek metod

`/v1/images`

#### Powiązane ID modeli

[`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/pl/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images)

FAQ · OpenAI: GPT Image 2.5 Flare

Jakie dane wejściowe i wyniki są dostępne?

`POST /v1/images/generations` · `gpt-image-2.5-flare`: `text` → `image` `POST /v1/images/generations` · `gpt-image-2.5-flare`: `text` → `image` `POST /v1/images/generations` · `openai/gpt-image-2.5-flare`: `text`, `image` → `image`

Jakich pól używa żądanie?

`POST /v1/images/generations` · `gpt-image-2.5-flare`: `model`, `prompt`, `n`, `response_format`, `stream` `POST /v1/images/generations` · `gpt-image-2.5-flare`: `model`, `prompt`, `size`, `background`, `moderation`, `n`, `quality`, `output_compression`, `output_format`, `stream` `POST /v1/images/generations` · `openai/gpt-image-2.5-flare`: `model`, `prompt`, `aspect_ratio`, `quality`, `background`, `n`, `input_references`, `output_compression`, `provider`

Jakie limity obowiązują?

`POST /v1/images/generations` · `gpt-image-2.5-flare`: `n.minimum`: `1` `POST /v1/images/generations` · `gpt-image-2.5-flare`: `prompt.maximum_length`: `32000`; `n.minimum`: `1`; `n.maximum`: `10`; `output_compression.minimum`: `0`; `output_compression.maximum`: `100` `POST /v1/images/generations` · `openai/gpt-image-2.5-flare`: `n.minimum`: `1`; `n.maximum`: `10`; `output_compression.minimum`: `0`; `output_compression.maximum`: `100`

Połącz Ailoot z Claude Code, OpenCode, Hermes albo własną aplikacją.

## Firma i jej portfel projektów

Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.

## Kupuj tokeny z rabatem.

Rabat subskrypcji do regularnej pracy. Kody promocyjne — do 50% na tokeny.

Subskrypcja

Wybierz plan z rabatem do regularnych żądań.

Kod promocyjny do 50%

Wpisz kod przy zakupie. Cena zostanie przeliczona według aktualnej promocji.

Koszty w historii

Model, tokeny i kwota są zapisywane dla każdego żądania.

[Wybierz subskrypcję](https://ailoot.ai/docs/pl/billing/subscriptions/) · [Sprawdź ceny modeli](https://ailoot.ai/models/pl/)

## Połącz API z produktem, który sprzedajesz.

SaaS, aplikacje i boty na warunkach oferty i umowy licencyjnej Ailoot. Do odsprzedaży poproś o licencję resellerską.

Aplikacja komercyjna

Wbuduj generowanie tekstu, obrazów, wideo i dźwięku w płatne funkcje usługi.

Licencja resellerska

Prześlij opis projektu i schemat dostępu. Poproś o pisemne warunki używania i odsprzedaży.

Dokumenty na stronie

Oferta, umowa licencyjna i polityka przetwarzania danych są dostępne przed połączeniem.

[Poproś o licencję resellerską](mailto:support@ailoot.ai) · [Oferta i umowa licencyjna](https://ailoot.ai/legal/offer?lang=pl)

## Ailoot · Firma i jej portfel projektów





Ailoot opiera się na zgromadzonym doświadczeniu operacyjnym, szerokiej bazie klientów, stabilnej usłudze i stałej kontroli KPI.





Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.





Ailoot wykorzystuje to doświadczenie operacyjne, zapewniając dostęp przez API do funkcji AI w produktach klientów, agentach, aplikacjach i automatyzacjach.
