# Быстрый старт

> Первая картинка через API за 3 шага: ключ → задача → результат.

Базовый адрес: `https://ai.aimixmedia.site/api/v1`

## 1. Получите ключ

Войдите на [ai.aimixmedia.site](https://ai.aimixmedia.site/login) и откройте [Кабинет → API-ключи](https://ai.aimixmedia.site/cabinet/keys). Нажмите «Создать ключ» и скопируйте его. Новым пользователям — $5 на баланс.

```bash
export API_KEY="sk-aim-..."
```

## 2. Создайте задачу

```bash
curl -X POST https://ai.aimixmedia.site/api/v1/jobs/createTask \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"nano-banana-2","input":{"prompt":"Кот-астронавт в неоновом городе"}}'
```

```python
import os, requests

r = requests.post(
    "https://ai.aimixmedia.site/api/v1/jobs/createTask",
    headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
    json={
      "model": "nano-banana-2",
      "input": {
        "prompt": "Кот-астронавт в неоновом городе"
      }
    },
)
print(r.json())  # {"code": 200, "data": {"taskId": "..."}}
```

```javascript
const r = await fetch("https://ai.aimixmedia.site/api/v1/jobs/createTask", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "model": "nano-banana-2",
    "input": {
      "prompt": "Кот-астронавт в неоновом городе"
    }
  }),
});
console.log(await r.json()); // { code: 200, data: { taskId: "..." } }
```

Ответ — номер задачи:

```json
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_nano-banana-2_1790621023886ca4e4d"
  }
}
```

## 3. Получите результат

Спрашивайте статус раз в 3–5 секунд, пока `state` не станет `success` или `fail`. Обычно это 1–2 минуты.

```bash
curl "https://ai.aimixmedia.site/api/v1/jobs/recordInfo?taskId=task_nano-banana-2_1790621023886ca4e4d" \
  -H "Authorization: Bearer $API_KEY"
```

Готово, когда `state` = `success`. Ссылки на картинки — в `resultJson`:

```json
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task_nano-banana-2_1790621023886ca4e4d",
    "state": "success",
    "resultJson": "{\"resultUrls\":[\"https://ai.aimixmedia.site/files/7496aef5292507f51b84cb2cb258d001.png\"]}",
    "creditsConsumed": 0.02
  }
}
```

Если задача завершилась ошибкой (`fail`), деньги возвращаются автоматически.

## Всё вместе: готовый скрипт

```python
import os, time, json, requests

API = "https://ai.aimixmedia.site/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}

# 1. создать задачу
task = requests.post(f"{API}/jobs/createTask", headers=HEADERS, json={
    "model": "nano-banana-2",
    "input": {"prompt": "Кот-астронавт в неоновом городе"},
}).json()
task_id = task["data"]["taskId"]

# 2. ждать результат
while True:
    info = requests.get(f"{API}/jobs/recordInfo", headers=HEADERS,
                        params={"taskId": task_id}).json()["data"]
    if info["state"] in ("success", "fail"):
        break
    time.sleep(4)

# 3. ссылки на картинки
if info["state"] == "success":
    print(json.loads(info["resultJson"])["resultUrls"])
else:
    print("ошибка:", info["failMsg"])
```

```javascript
const API = "https://ai.aimixmedia.site/api/v1";
const headers = { Authorization: `Bearer ${process.env.API_KEY}`, "Content-Type": "application/json" };

// 1. создать задачу
const task = await fetch(`${API}/jobs/createTask`, {
  method: "POST", headers,
  body: JSON.stringify({ model: "nano-banana-2", input: { prompt: "Кот-астронавт в неоновом городе" } }),
}).then((r) => r.json());

// 2. ждать результат
let info;
do {
  await new Promise((r) => setTimeout(r, 4000));
  info = (await fetch(`${API}/jobs/recordInfo?taskId=${task.data.taskId}`, { headers }).then((r) => r.json())).data;
} while (!["success", "fail"].includes(info.state));

// 3. ссылки на картинки
console.log(info.state === "success" ? JSON.parse(info.resultJson).resultUrls : info.failMsg);
```

## Что дальше

- [Модели](https://docs.aimixmedia.site/models) — параметры и примеры для каждой модели
- [Callback](https://docs.aimixmedia.site/callbacks) — мы сами пришлём результат на ваш сервер, без опроса
- [Ошибки и лимиты](https://docs.aimixmedia.site/errors)
