APIGrid

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

Первая генерация за пару минут: получите ключ, отправьте запрос и заберите результат.

Шаг 1. Получите ключ

  1. Зарегистрируйтесь и пополните баланс в кабинете, в разделе Баланс.
  2. На странице API ключи нажмите «Выпустить ключ». Ключ начинается с ag_ и показывается один раз — сразу сохраните его.
  3. Положите ключ в переменную окружения — все примеры в документации берут его оттуда:
Терминал
export APIGRID_KEY="ag_…"

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

Отправьте POST /v1/tasks: в model — ID модели, в input — её параметры. Для примера сгенерируем картинку в Nano Banana 2:

curl -X POST https://api.apigrid.cloud/v1/tasks \
  -H "Authorization: Bearer $APIGRID_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "input": {
      "prompt": "Бумажный кораблик на озере на закате, мягкий свет",
      "aspect_ratio": "16:9",
      "resolution": "1k"
    }
  }'

Ответ приходит сразу, со статусом 202. Цена уже списана с баланса — она в поле price:

Ответ
{
  "id": "7e70388cf461f88d7149b1077e4ad098",
  "object": "task",
  "model": "nano-banana-2",
  "status": "queued",
  "output": null,
  "error": null,
  "price": {
    "amount": "3.360000",
    "currency": "RUB",
    "refunded": false
  },
  "created_at": "2026-10-15T09:12:04.512Z",
  "started_at": "2026-10-15T09:12:04.880Z",
  "completed_at": null
}

Какие параметры есть у модели и что они значат — на её странице в разделе Модели и параметры.

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

Проще всего — опрашивать задачу запросом GET /v1/tasks/{id}, пока статус не станет completed или failed:

import os
import time
import requests

API = "https://api.apigrid.cloud/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['APIGRID_KEY']}"}

task_id = "7e70388cf461f88d7149b1077e4ad098"
while True:
    task = requests.get(f"{API}/tasks/{task_id}", headers=HEADERS).json()
    if task["status"] in ("completed", "failed"):
        break
    time.sleep(3)  # картинке хватит 3 с, для видео берите 10–15 с

if task["status"] == "completed":
    for f in task["output"]["files"]:
        print(f["kind"], f["url"])
else:
    print("Ошибка:", task["error"]["message"])  # деньги уже вернулись на баланс

Готовая задача выглядит так:

Ответ
{
  "id": "7e70388cf461f88d7149b1077e4ad098",
  "object": "task",
  "model": "nano-banana-2",
  "status": "completed",
  "output": {
    "urls": [
      "https://tempfile.aiquickdraw.com/…/image.jpg"
    ],
    "files": [
      {
        "url": "https://tempfile.aiquickdraw.com/…/image.jpg",
        "kind": "image"
      }
    ]
  },
  "error": null,
  "price": {
    "amount": "3.360000",
    "currency": "RUB",
    "refunded": false
  },
  "created_at": "2026-10-15T09:12:04.512Z",
  "started_at": "2026-10-15T09:12:04.880Z",
  "completed_at": "2026-10-15T09:12:31.877Z"
}

В рабочем приложении удобнее не опрашивать, а получать результат на свой сервер: передайте webhook_url при создании задачи — см. Вебхуки.

Что дальше