v1 · REST · JSON

Документация MAATRIX API

Программное управление виртуальными машинами MAATRIX: создание, список, действия, удаление. Все ответы — JSON, все запросы с телом — Content-Type: application/json.

Введение

API работает поверх той же инфраструктуры, что и панель. У вас свои идентификаторы серверов вида srv_xxxxxxxxxxxx — они не привязаны к внутренним id гипервизора, поэтому не сломаются при миграции машины или смене оборудования.

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

Каждый запрос к /v1/* требует токен в заголовке. Токен создаётся в панели управления и показывается один раз.

Authorization: Bearer mx_live_xxxxxxxxxxxxxxxxxxxx

Бренд определяется токеном, а не адресом: токен MehenHost, отправленный на api.maatrix.io, всё равно тарифицируется по правилам MehenHost.

Базовый URL

https://api.maatrix.io/v1

Служебная проверка доступности (без токена): GET /health. Каждый ответ несёт X-Request-Id — указывайте его в обращениях в поддержку.

Каталог

GET /v1/regions
GET /v1/plans
GET /v1/images

Справочники регионов, тарифов (с ценой в час и в месяц, включённым трафиком) и доступных образов ОС.

Серверы

POST /v1/servers

Создаёт сервер. Отвечает 202 и объектом со статусом provisioning — машина готовится в фоне, опрашивайте её по id. Передавайте Idempotency-Key, чтобы повтор при потере ответа не создал дубль.

ПолеТипОписание
regionstringСлаг региона, напр. us1
planstring
imagestringubuntu24, debian12, alma10
traffic_policystringshape (по умолч.) или bill
curl -X POST https://api.maatrix.io/v1/servers \
  -H "Authorization: Bearer mx_live_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"region":"us1","cpu":6,"ram":12,"disk":200,"image":"ubuntu24"}'
GET /v1/servers
GET /v1/servers/{id}
DELETE /v1/servers/{id}

Список, карточка и удаление. Удаление останавливает тарификацию немедленно, не дожидаясь фактического сноса на гипервизоре.

Действия

POST /v1/servers/{id}/actions

Тело {"type": "..."}. Доступно: start, stop, restart, reset_password, set_traffic_policy (с полем policy).

curl -X POST https://api.maatrix.io/v1/servers/srv_xxx/actions \
  -H "Authorization: Bearer mx_live_..." \
  -d '{"type":"reset_password"}'

Доступы

GET /v1/servers/{id}/credentials

Сгенерированный root-пароль отдаётся один раз и доступен 15 минут после установки. Потеряли — сбросьте действием reset_password. SSH-ключи в v1 не поддерживаются.

Аккаунт

GET /v1/account

Баланс, расход за текущий месяц и использование квот.

Тарификация

  • Почасовая: час = месячная цена ÷ 672.
  • Минимум 1 час: списывается при создании, покрывает первые 60 минут.
  • Месячный потолок: за календарный месяц не спишется больше месячной цены — сервер, работающий весь месяц, платит ровно месячный тариф.
  • Удаление останавливает счётчик сразу.

Трафик

Включён 1 ТБ/мес на машину (rx+tx). При превышении — политика, которую вы выбираете:

  • shape — скорость режется до 10 Мбит/с до конца месяца (по умолчанию, бесплатно);
  • bill — доплата $5 за каждый ТБ сверх лимита.

Сменить политику на лету: действие set_traffic_policy. Текущий расход виден в поле traffic карточки сервера.

Лимиты

Ограничение частоты — 120 запросов в минуту на токен (заголовки RateLimit-*). Квоты аккаунта (число серверов, vCPU, RAM, одновременные создания) повышаются через поддержку. Создание отклоняется с 503 no_capacity, если на узле нет физической памяти — так узел с клиентами защищён от перегрузки.

Ошибки

Формат: {"error":{"code","message","request_id"}}.

HTTPcodeЗначение
400bad_requestНекорректные параметры
401unauthorizedНет/неверный токен
403forbiddenНет прав / аккаунт приостановлен / мало средств
404not_foundРесурс не найден
409conflictIdempotency-Key с другим телом; сервер ещё создаётся
422quota_exceededПревышена квота аккаунта
429rate_limitedСлишком много запросов (см. Retry-After)
503no_capacityНет ёмкости в регионе (см. retry_after)