Перейти к основному содержанию

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

Доступ к API включён в тарифы VIP и Elite.
  1. Откройте neuralbox.top/webПрофиль → API-ключи
  2. Нажмите Создать ключ, дайте ему название
  3. Скопируйте ключ — он начинается с nb_
Храните ключ в безопасном месте. Он даёт полный доступ к вашему балансу токенов. Никогда не раскрывайте его в клиентском коде.

2. Единый эндпоинт генерации

Все генерации проходят через один эндпоинт: POST /api/v2/generate
curl -X POST https://neuralbox.top/api/v2/generate \
  -H "Authorization: Bearer nb_ВАШ_API_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5",
    "prompt": "Объясни квантовые вычисления простыми словами"
  }'

3. Структура ответа

{
  "id": 18473,
  "status": "completed",
  "model_slug": "gpt-5",
  "result_text": "Квантовые вычисления используют кубиты...",
  "result_url": null,
  "tokens_spent": 2,
  "processing_ms": 1842
}
ПолеОписание
result_textТекстовый результат (для LLM)
result_urlURL файла (для изображений, видео, аудио)
tokens_spentПотраченные токены
statuscompleted / pending / failed
idЧисловой ID — для опроса асинхронных задач

4. Генерация изображения

curl -X POST https://neuralbox.top/api/v2/generate \
  -H "Authorization: Bearer nb_ВАШ_API_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dall-e-3",
    "prompt": "Футуристический город на закате, киберпанк стиль",
    "params": {
      "size": "1024x1024",
      "format": "webp"
    }
  }'

5. Проверка баланса

curl https://neuralbox.top/api/v2/balance \
  -H "Authorization: Bearer nb_ВАШ_API_КЛЮЧ"
{
  "token_balance": 283,
  "plan": "vip",
  "plan_expires_at": "2026-04-08T00:00:00Z"
}

6. Опрос асинхронных результатов

Для видео status будет pending. Опрашивайте GET /api/v2/generate/{id}:
import time, requests

def ожидать_результат(gen_id: int, api_key: str) -> dict:
    headers = {"Authorization": f"Bearer {api_key}"}
    while True:
        data = requests.get(
            f"https://neuralbox.top/api/v2/generate/{gen_id}",
            headers=headers
        ).json()
        if data["status"] in ("completed", "failed"):
            return data
        time.sleep(5)

Следующие шаги