Получение API-ключа
API GPUnex позволяет управлять GPU-инстансами, проверять баланс и автоматизировать рабочие процессы без использования веб-панели. Прежде чем выполнять любые API-запросы, необходимо сгенерировать API-ключ.
-
Войдите в свой аккаунт GPUnex и перейдите на страницу Профиль или в панель настроек Дашборда.
-
Откройте раздел API-ключей. Найдите вкладку или карточку API Keys в настройках вашего аккаунта.
-
Нажмите «Create New API Key». Вам будет предложено дать ключу описательное название. Выберите что-то значимое, что идентифицирует назначение ключа — например, «Production Server», «CI/CD Pipeline» или «Local Development». Это упростит управление несколькими ключами в дальнейшем.
-
Немедленно скопируйте свой API-ключ. После генерации ключ будет показан ровно один раз. Скопируйте его и сохраните в надёжном месте, например в менеджере паролей или зашифрованном хранилище секретов. После этого шага вы не сможете снова просмотреть полный ключ.
-
Разберитесь с областью действия и отзывом ключей. Каждый API-ключ привязан к вашему аккаунту и наследует его разрешения. Вы можете создавать несколько ключей для разных приложений или сред. Если ключ скомпрометирован или больше не нужен, вы можете отозвать его в любое время в разделе API Keys. Отзыв ключа происходит мгновенно и необратимо — все запросы с этим ключом будут отклонены.
Аутентификация
Все запросы к API GPUnex должны включать заголовок Authorization с вашим API-ключом по схеме Bearer token.
Формат заголовка:
Authorization: Bearer YOUR_API_KEY
Если API-ключ отсутствует, недействителен или отозван, API вернёт ответ 401 Unauthorized:
{
"error": "unauthorized",
"message": "Invalid or missing API key. Please check your Authorization header."
}
Убедитесь, что ключ включён в каждый запрос. API не поддерживает аутентификацию на основе сессий или cookie.
Основные эндпоинты
API GPUnex организован вокруг RESTful-ресурсов. Все эндпоинты используют базовый URL https://api.gpunex.com/v1. Ниже приведён обзор доступных основных эндпоинтов.
| Метод | Эндпоинт | Описание |
|---|---|---|
| GET | /v1/instances | Список всех ваших активных и недавних инстансов. Возвращает массив объектов инстансов с их текущим статусом, моделью GPU и параметрами конфигурации. |
| POST | /v1/instances | Создание нового GPU-инстанса. Требуется JSON-тело с указанием модели GPU, фреймворка и региона. Стоимость списывается с вашего баланса USDC. |
| GET | /v1/instances/:id | Получение подробной информации о конкретном инстансе по его уникальному ID. Включает данные SSH-подключения, метрики работы и информацию о тарификации. |
| DELETE | /v1/instances/:id | Завершение работающего инстанса. Инстанс будет остановлен, и плата за него больше взиматься не будет. Все несохранённые данные на инстансе будут потеряны. |
| GET | /v1/gpu-models | Список всех моделей GPU, доступных на маркетплейсе. Включает цены, объём VRAM, доступность по регионам и поддерживаемые фреймворки. |
| GET | /v1/balance | Проверка текущего баланса USDC в кошельке и краткая сводка последних транзакций. |
Все ответы возвращаются в формате JSON. Успешные запросы возвращают код состояния 200 OK для GET-запросов и 201 Created для POST-запросов, создающих ресурсы.
Пример: Создание инстанса
Для создания нового GPU-инстанса отправьте POST-запрос на /v1/instances с JSON-телом, указывающим желаемую конфигурацию.
Запрос:
Параметры тела запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
gpu_model | string | Да | Идентификатор модели GPU. Используйте /v1/gpu-models для просмотра доступных вариантов (например, H100_80GB, A100_80GB, L40S_48GB, L4_24GB). |
framework | string | Да | Предустановленный фреймворк и версия (например, pytorch-2.3, tensorflow-2.16, jax-0.4). |
region | string | Да | Регион дата-центра для инстанса (например, us-east-1, eu-west-1, ap-southeast-1). |
Пример ответа (201 Created):
{
"id": "inst_7f3a9b2c4d1e",
"status": "provisioning",
"gpu_model": "A100_80GB",
"framework": "pytorch-2.3",
"region": "us-east-1",
"ssh_command": null,
"hourly_rate": "1.89",
"currency": "USDC",
"created_at": "2026-02-15T14:32:07Z"
}
Инстанс изначально будет иметь статус provisioning. Как только GPU будет выделен и среда подготовлена, статус изменится на running, а поле ssh_command будет заполнено строкой подключения. Подготовка обычно занимает от 30 секунд до 2 минут в зависимости от доступности.
Пример: Проверка статуса инстанса
После создания инстанса вы можете проверить его текущий статус в любое время, запросив эндпоинт инстанса с его ID.
Запрос:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.gpunex.com/v1/instances/inst_7f3a9b2c4d1e
Пример ответа (200 OK):
{
"id": "inst_7f3a9b2c4d1e",
"status": "running",
"gpu_model": "A100_80GB",
"framework": "pytorch-2.3",
"region": "us-east-1",
"ssh_command": "ssh [email protected] -p 2222",
"ip_address": "203.0.113.42",
"hourly_rate": "1.89",
"currency": "USDC",
"uptime_seconds": 3847,
"total_cost": "2.02",
"created_at": "2026-02-15T14:32:07Z",
"started_at": "2026-02-15T14:33:15Z"
}
Значения статусов:
| Статус | Значение |
|---|---|
provisioning | Инстанс настраивается. GPU-ресурсы выделяются, среда фреймворка подготавливается. |
running | Инстанс активен и готов к использованию. SSH-доступ доступен. |
stopping | Инстанс в процессе остановки. |
terminated | Инстанс остановлен и больше не тарифицируется. |
error | Произошла ошибка при подготовке или во время работы. Обратитесь в поддержку, если это повторяется. |
Лимиты запросов и лучшие практики
Лимиты запросов
API GPUnex применяет ограничения на количество запросов для обеспечения справедливого использования и стабильности платформы. Текущие лимиты:
- Общие эндпоинты: 120 запросов в минуту на API-ключ.
- Создание инстансов: 10 запросов в минуту на API-ключ.
- Баланс и эндпоинты только для чтения: 300 запросов в минуту на API-ключ.
Если вы превысите лимит, API вернёт ответ 429 Too Many Requests с заголовком Retry-After, указывающим, сколько секунд нужно подождать перед повторной попыткой.
{
"error": "rate_limit_exceeded",
"message": "Too many requests. Please retry after 12 seconds.",
"retry_after": 12
}
Лучшие практики
Следуйте этим рекомендациям для обеспечения безопасности и надёжности вашей интеграции.
- Никогда не раскрывайте API-ключи в клиентском коде. Не встраивайте API-ключ в JavaScript, выполняемый в браузере, исходный код мобильного приложения или любой публично доступный репозиторий. API-ключи следует использовать только в серверных приложениях, где они недоступны для конечных пользователей.
Важно
Никогда не раскрывайте свой API-ключ в клиентском коде, браузерном JavaScript или публичных репозиториях. API-ключи следует использовать только в серверных приложениях.
-
Используйте переменные окружения. Храните API-ключ в переменной окружения, а не жёстко прописывайте его в исходных файлах. Например:
export GPUNEX_API_KEY="your_api_key_here"Затем ссылайтесь на него в коде:
curl -H "Authorization: Bearer $GPUNEX_API_KEY" https://api.gpunex.com/v1/instances -
Периодически ротируйте ключи. В качестве лучшей практики безопасности генерируйте новый API-ключ каждые 90 дней и отзывайте старый. Это ограничивает последствия случайной утечки ключа.
-
Используйте отдельные ключи для разных сред. Создавайте отдельные API-ключи для разработки, тестирования и продакшена. Таким образом, отзыв одного ключа не повлияет на другие среды.
Совет
Используйте отдельные API-ключи для разработки, тестирования и продакшена. Таким образом, отзыв одного ключа не повлияет на другие среды.
-
Обрабатывайте ошибки корректно. Всегда проверяйте HTTP-коды состояния в вашем приложении. Реализуйте логику повторных попыток с экспоненциальной задержкой для ответов
429и5xx. Не повторяйте запросы при ошибках4xx, кроме429— они указывают на проблему с самим запросом. -
Отслеживайте использование. Контролируйте объём API-вызовов и расходы на инстансы. Используйте эндпоинт
/v1/balanceдля программного мониторинга баланса USDC и настройте оповещения при его снижении ниже пороговых значений.