НЮРАКС

API Nurax

Программный доступ к платформе Nurax — управление песочницами, интеграции, автоматизация.

Платформа Nurax предоставляет программный интерфейс (API) для управления песочницами, пользователями и биллингом. API позволяет автоматизировать рабочие процессы и интегрировать Nurax в вашу инфраструктуру.

Общая информация

  • Базовый URL: https://next.nurax.ai/v1
  • Формат данных: JSON
  • Авторизация: Bearer-токен (access token Supabase)

Аутентификация

Для работы с API необходимо получить access-токен. Это можно сделать через стандартный парольный грант Supabase:

curl -X POST https://ВАШ_ПРОЕКТ.supabase.co/auth/v1/token?grant_type=password \
  -H "apikey: ВАШ_ANON_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "ВАШ_EMAIL", "password": "ВАШ_ПАРОЛЬ"}'

Ответ будет содержать access_token, который нужно передавать в заголовке:

curl https://next.nurax.ai/v1/platform/sandbox \
  -H "Authorization: Bearer ВАШ_ACCESS_TOKEN"

Основные эндпоинты

Песочницы

МетодЭндпоинтОписание
POST/v1/platform/sandboxСоздать новую песочницу
GET/v1/platform/sandbox/:idПолучить информацию о песочнице
GET/v1/platform/sandbox/:id/statusПолучить статус и стадию провиженинга
POST/v1/platform/sandbox/:id/stopОстановить песочницу
POST/v1/platform/sandbox/:id/startЗапустить песочницу
POST/v1/platform/sandbox/:id/restartПерезапустить песочницу
DELETE/v1/platform/sandbox/:idУдалить песочницу
POST/v1/platform/sandbox/:id/updateОбновить версию песочницы

Биллинг

МетодЭндпоинтОписание
POST/v1/billing/setup/initializeИнициализация биллинга для нового пользователя
POST/v1/billing/checkoutСоздать сессию оплаты
GET/v1/billing/subscriptionПолучить информацию о подписке

Публикация

МетодЭндпоинтОписание
GET/v1/p/:id/:portПубличный доступ к приложению в песочнице
GET/v1/p/share/:tokenДоступ к опубликованному приложению по ссылке

Полный цикл: создание и ожидание песочницы

Вот пример скрипта на Node.js, который создаёт песочницу и ждёт её готовности:

const API = 'https://next.nurax.ai/v1';
const TOKEN = 'ВАШ_ACCESS_TOKEN';

async function createAndWait() {
  // Создание песочницы
  const res = await fetch(`${API}/platform/sandbox`, {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ provider: 'opensandbox' }),
  });
  const { data } = await res.json();
  const sandboxId = data.sandbox_id;
  console.log('Песочница создаётся:', sandboxId);

  // Ожидание готовности
  for (;;) {
    const statusRes = await fetch(`${API}/platform/sandbox/${sandboxId}/status`, {
      headers: { Authorization: `Bearer ${TOKEN}` },
    });
    const status = await statusRes.json();
    console.log(status.stage, status.stageProgress, status.stageMessage);
    if (status.status === 'active') {
      console.log('Готово!');
      break;
    }
    if (status.status === 'error') {
      throw new Error('Ошибка: ' + (status.error || 'неизвестная ошибка'));
    }
    await new Promise(r => setTimeout(r, 3000));
  }
}

createAndWait().catch(console.error);

Подробнее читайте в разделе Песочницы.