Быстрый старт
Первая картинка через API за 3 шага: ключ → задача → результат.
Базовый адрес: https://ai.aimixmedia.site/api/v1
1. Получите ключ
Войдите на ai.aimixmedia.site и откройте Кабинет → API-ключи. Нажмите «Создать ключ» и скопируйте его. Новым пользователям — $5 на баланс.
export API_KEY="sk-aim-..."
2. Создайте задачу
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":"Кот-астронавт в неоновом городе"}}'
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": "..."}}
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: "..." } }
Ответ — номер задачи:
{
"code": 200,
"msg": "success",
"data": {
"taskId": "task_nano-banana-2_1790621023886ca4e4d"
}
}
3. Получите результат
Спрашивайте статус раз в 3–5 секунд, пока state не станет success или fail. Обычно это 1–2 минуты.
curl "https://ai.aimixmedia.site/api/v1/jobs/recordInfo?taskId=task_nano-banana-2_1790621023886ca4e4d" \
-H "Authorization: Bearer $API_KEY"
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"])
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);
Что дальше
- Модели — параметры и примеры для каждой модели
- Callback — мы сами пришлём результат на ваш сервер, без опроса
- Ошибки и лимиты