Beget API хостинга API

Отрасль: Облака и хостинг. Актуально на 2026-10-24.

API виртуального хостинга Beget: информация об аккаунте и тарифе, домены и поддомены, DNS-записи, сайты, базы MySQL, FTP, cron, бэкапы, почта и статистика. Запрос — HTTP-вызов вида «раздел/метод» с логином и API-паролем, ответ — JSON. Для облачных сервисов Beget есть отдельный API с JWT-токенами на https://developer.beget.com.

Сценарии

Создать сайт и привязать к нему домен

Развернуть новый сайт клиента на хостинге: каталог сайта, домен, привязка.

  1. Задай API-пароль в панели Beget. В каждом запросе передаются login и passwd (URL-кодированный). Формат вызова — https://api.beget.com/api/<раздел>/<метод>.
  2. Для методов с аргументами передавай input_format = json и input_data — JSON-строкой, URL-кодированной. output_format = json вернёт ответ в JSON.
  3. Создай каталог сайта: GET /api/site/add с input_data.name (например, shop.ru) — полный путь будет shop.ru/public_html.
  4. Добавь домен: GET /api/domain/addVirtual с hostname (имя без зоны) и zone_id (ID зоны из GET /api/domain/getZoneList). Метод вернёт ID домена.
  5. Привяжи домен к сайту: GET /api/site/linkDomain с domain_id и site_id. Сайт откроется через 5–10 минут. Ошибки метода приходят внутри успешного ответа: answer.status = error и массив answer.errors.
AUTH='login=<логин>&passwd=<API-пароль>&output_format=json&input_format=json'

curl "https://api.beget.com/api/site/add?$AUTH" --data-urlencode 'input_data={"name": "shop.ru"}' -G
curl "https://api.beget.com/api/domain/addVirtual?$AUTH" --data-urlencode 'input_data={"hostname": "shop", "zone_id": 1}' -G
curl "https://api.beget.com/api/site/linkDomain?$AUTH" --data-urlencode 'input_data={"domain_id": <ID домена>, "site_id": <ID сайта>}' -G

Изменить DNS-записи домена

Направить домен на другой сервер, добавить MX для почты или TXT для подтверждения.

  1. Получи текущие записи: GET /api/dns/getData с input_data.fqdn. В ответе records по типам и set_type.
  2. Отправь новый набор: GET /api/dns/changeRecords с fqdn и records — одной группой: A, MX и TXT (до 10 каждого), или NS (только для поддоменов), или CNAME (только поддомен, одна запись). У каждой записи priority и value.
  3. Метод заменяет группу записей целиком — передавай все записи, которые должны остаться, а не только новые.
curl -G "https://api.beget.com/api/dns/changeRecords?login=<логин>&passwd=<API-пароль>&input_format=json&output_format=json" \
  --data-urlencode 'input_data={"fqdn": "shop.ru", "records": {
      "A": [{"priority": 10, "value": "203.0.113.10"}],
      "MX": [{"priority": 10, "value": "mx1.beget.com"}, {"priority": 20, "value": "mx2.beget.com"}],
      "TXT": [{"priority": 10, "value": "v=spf1 redirect=beget.com"}]}}'

Создать базу MySQL для сайта

База для нового сайта или CMS.

  1. Создай базу: GET /api/mysql/addDb с suffix (имя будет логин_суффикс, не длиннее 16 символов) и password (от 6 символов). Создаётся доступ с localhost.
  2. Создание идёт в очереди и занимает несколько минут — проверь, что база появилась: GET /api/mysql/getList.
  3. Лимит API — 60 запросов в минуту на пользователя.
curl -G "https://api.beget.com/api/mysql/addDb?login=<логин>&passwd=<API-пароль>&input_format=json&output_format=json" \
  --data-urlencode 'input_data={"suffix": "shop", "password": "<пароль базы>"}'

Проверить аккаунт и восстановить файлы из бэкапа

Мониторинг тарифа и баланса и восстановление сайта после неудачного обновления.

  1. Состояние аккаунта: GET /api/user/getAccountInfo — тариф, баланс, дни до блокировки, использование лимитов. Значение лимита 2147483647 означает «без ограничений».
  2. Найди бэкап: GET /api/backup/getFileBackupList — backup_id и date.
  3. Восстанови нужные пути: GET /api/backup/restoreFile с backup_id и paths — путями от корня домашней директории. Восстановление выполняется в очереди.
curl -G "https://api.beget.com/api/backup/restoreFile?login=<логин>&passwd=<API-пароль>&input_format=json&output_format=json" \
  --data-urlencode 'input_data={"backup_id": <ID бэкапа>, "paths": ["shop.ru/public_html/wp-content"]}'

Базовые URL

Авторизация

Тип: Другое

В каждом запросе передаются login (логин аккаунта) и passwd (API-пароль, URL-кодированный).

https://api.beget.com/api/user/getAccountInfo?login=user&passwd=mypassword

Методы

GET /api/user/getAccountInfo — Информация об аккаунте

Тариф, баланс, дни до блокировки, использование и лимиты (сайты, домены, MySQL, квота, FTP, почта), параметры сервера и версии ПО. Значение лимита 2147483647 означает «без ограничений».

Параметр Где Тип Обяз. Описание
login query string да Логин
passwd query string да API-пароль
output_format query string нет json (по умолчанию)

Пример запроса:

https://api.beget.com/api/user/getAccountInfo?login=userlogin&passwd=password&output_format=json

GET /api/user/toggleSsh — Включение и отключение SSH

Параметр Где Тип Обяз. Описание
login query string да Логин
passwd query string да API-пароль
status query integer да 1 — включить, 0 — выключить
ftplogin query string нет Логин FTP-аккаунта; без него — основной аккаунт

Пример запроса:

https://api.beget.com/api/user/toggleSsh?login=userlogin&passwd=password&status=1&ftplogin=ftploginname&output_format=json

GET /api/domain/getList — Список доменов

В result: id, fqdn, date_add, auto_renew, date_register, date_expire, can_renew, registrar, is_under_control и др.

Параметр Где Тип Обяз. Описание
login query string да Логин
passwd query string да API-пароль

GET /api/domain/getZoneList — Доменные зоны и цены

В result: id, zone, price, price_renew, is_idn, min_period, max_period и др.

Параметр Где Тип Обяз. Описание
login query string да Логин
passwd query string да API-пароль

GET /api/domain/addVirtual — Добавление домена

Возвращает ID домена.

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.hostname query string да Имя домена без зоны
input_data.zone_id query integer да ID зоны

Пример запроса:

https://api.beget.com/api/domain/addVirtual?login=userlogin&passwd=password&input_format=json&output_format=json&input_data={"hostname":"domain","zone_id": 1}

GET /api/domain/delete — Удаление домена

Снимает привязку к сайту и удаляет поддомены.

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.id query integer да ID домена

GET /api/domain/addSubdomainVirtual — Добавление поддомена

Возвращает ID поддомена.

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.subdomain query string да Имя поддомена
input_data.domain_id query integer да ID родительского домена

GET /api/domain/checkDomainToRegister — Проверка возможности регистрации

Регистрация возможна, если may_be_registered = true, pay_type = money или bonus_domain, in_system = false.

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.hostname query string да Имя без зоны
input_data.zone_id query integer да ID зоны из getZoneList
input_data.period query integer да Срок регистрации в годах

Пример запроса:

https://api.beget.com/api/domain/checkDomainToRegister?login=userlogin&passwd=password&input_format=json&output_format=json&input_data={"hostname": "domain", "zone_id": 3, "period":1}

GET /api/domain/changePhpVersion — Смена версии PHP

Параметр Где Тип Обяз. Описание
full_fqdn query string да Полное имя домена
php_version query string да Новая версия PHP
is_cgi query boolean нет Режим CGI, по умолчанию false

Пример запроса:

https://api.beget.com/api/domain/changePhpVersion?login=userlogin&passwd=password&full_fqdn=example.com&php_version=5.4&is_cgi=true&output_format=json

GET /api/dns/getData — DNS-записи домена

В result: is_under_control, is_beget_dns, is_subdomain, fqdn, records (по типам DNS, DNS_IP, A, MX, TXT; у записи value и priority), set_type (1 — A/MX/TXT, 2 — NS, 3 — CNAME).

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.fqdn query string да Полное имя домена

Пример запроса:

https://api.beget.com/api/dns/getData?login=userlogin&passwd=password&input_format=json&output_format=json&input_data={"fqdn":"beget.ru"}

GET /api/dns/changeRecords — Изменение DNS-записей

Передаётся одна группа записей: A/MX/TXT (до 10 каждого типа), NS (только поддомены, до 10), CNAME (только поддомены, одна запись) или DNS (до 4, для доменов на Beget). У каждой записи priority и value.

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.fqdn query string да Полное имя домена
input_data.records query object да Записи по типам

GET /api/site/getList — Список сайтов

В result: id, path, domains (id, fqdn, php_version, ssl и др.).

Параметр Где Тип Обяз. Описание
login query string да Логин
passwd query string да API-пароль

GET /api/site/add — Создание сайта

Полный путь сайта — name/public_html.

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.name query string да Имя директории сайта, например site.ru

GET /api/site/linkDomain — Привязка домена к сайту

Сайт начнёт открываться через 5–10 минут.

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.domain_id query integer да ID домена
input_data.site_id query integer да ID сайта

GET /api/mysql/getList — Базы MySQL

В result: name, size, accesses[].name.

Параметр Где Тип Обяз. Описание
login query string да Логин
passwd query string да API-пароль

GET /api/mysql/addDb — Создание базы MySQL

Создание ставится в очередь и может занять несколько минут; создаётся доступ localhost.

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.suffix query string да Суффикс имени; login_suffix — не больше 16 символов
input_data.password query string да Пароль, от 6 символов

GET /api/backup/getFileBackupList — Список файловых бэкапов

В ответе: backup_id, date.

Параметр Где Тип Обяз. Описание
login query string да Логин
passwd query string да API-пароль

GET /api/backup/restoreFile — Восстановление файлов из бэкапа

Параметр Где Тип Обяз. Описание
input_format query string да json
input_data.backup_id query integer да ID бэкапа
input_data.paths query array да Пути от корня домашней директории

Нюансы

Ошибки

Код Описание
AUTH_ERROR Ошибка авторизации
INCORRECT_REQUEST Некорректный запрос
NO_SUCH_METHOD Метод не существует
INVALID_DATA Неверные данные (ошибка метода)
LIMIT_ERROR Превышен лимит запросов
METHOD_FAILED Метод не выполнен

Ограничения

Источники


Если этого недостаточно — официальная документация: https://beget.com/ru/kb/api/beget-api JSON: https://mcp-everything.ru/api/integrations/beget. MCP: https://mcp-everything.ru/mcp