Документация API SimpleCloud.ru

Вступление

simplecloud api позволяет манипулировать ресурсами с помощью общепринятых HTTP запросов. Взаимодействие с конечными точками api интуитивно понятное, что позволяет получать необходимые данные и выполнять действия. Весь функционал simplecloud.ru/cpanel может быть задействован при помощи API, что позволяет автоматизировать работу.

Документация каждого элемента API начинается с описания используемой технологии. Далее следует подробная справочная информация.

Запросы

Каждая программа, способная выполнять HTTP-запросы, может взаимодействовать с API через корректно заданный URI. В целях безопасности запросы должны совершаться через шифруемый протокол HTTPS. Интерфейс посылает ответ на каждый успешный запрос.

GET

Метод используется для получения информации об аккаунте или сервере. Запрошенная информация будет возвращена в виде json-объекта. Атрибут определяемые в json могут быть использованы для дополнительных запросов. Все запросы GET имеют read-only доступ и не изменяют указанные в запросе объекты.

DELETE

Метод используется для остановки ресурсов и удаления ресурсов из аккаунта. В случае, если указанный в запросе объект не найден, будет отправлен соответствующий ответ. В данном методе соблюдается принцип идемпотентности, означающий, что не нужно проверять наличие ресурса до выполнения операции удаления. Конечное состояние объекта будет таким же, вне зависимости от его существования.

PUT

Используется для обновления данных о ресурсе в аккаунте. Идемпотентен, также как и метод DELETE. Изменяет заданный объект, используя переданные значения, независимо от текущих значений. Запросы метода PUT не проверяют текущие атрибуты объекта.

POST

Используется для создания новых объектов. Должен включать в себя все необходимые атрибуты, описывающие создаваемый объект.

HEAD

Данный метод используется при получении метаданных. Ответ метода - заголовок того, что будет возвращено при соответствующем GET-запросе. Заголовки содержат полезные данные о вашем api-доступе и результаты, доступные вам для запроса. Например, текущее значение лимита подключений и время до сброса данного лимита. Также в нем содержится показатель общего количества найденных объектов, информация о нумерации и длина содержимого.

HTTP Статусы

Вместе с ответами на HTTP-методы, api будет также возвращать и стандартные HTTP-статусы, включая коды ошибок.

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

Если статус вернул значение в диапазоне 200, это значит что запрос был выполнен успешно и ошибок не возникло.

Код возврата диапазона 400 сообщает о проблеме с запросом. Это может быть один из следующих вариантов:

  • некорректный запрос (формат запроса)
  • некорректная авторизация
  • запрос действия, на которого у вас нет прав
  • запрос действий по отношению к объекту, который не существует

Ответ, находящийся в диапазоне 500, обычно означает проблемы на уровне сервера. В таком случае, запрос не может быть обработан самим api.

Ответы

При успешном запросе, тело ответа будет содержать в себе форму JSON-объекта. Исключением является метод DELETE, который отдает только статус 204 и пустое тело ответа.

Корнем объекта JSON, который был целью запроса, будет представлен в виде ключа. В единственной форме если это один объект, и коллекцией, если больше одного объекта.

Например, если послать мы отправим запрос GET на /v3/vps/$VPS_ID, то в ответ получим объект с ключом "vps". Отправив запрос на коллекцию /v3/vps, в ответе получим ключ "vps".

Значением этих ключей будет JSON-объект, полученный одним запросом. Он будет включать в себя массив объектов, попадающих под запрос.


{
	"vps": [
		{
		"name": "example.com"
		. . .
		},
		{
		"name": "second.com"
		. . .
		}
	]
}
				

Метаданные

В дополнению к корню основного ресурса, ответ может также содержать метаданные объекта. Этот объект включает в себя информацию об ответе.

Объект meta содержит ключ total, который отображает количество возвращаемых объектов.

meta будет отображен только если принимает значение.

Примеры curl-запросов

В данном руководстве указаны примеры запросов при помощи утилиты curl. Это позволит наглядно продемонстрировать некоторые особенности работы api в текстовом формате. Названия аккаунт-специфичного содержимого (ID vps) будуте представлены в виде переменных. Например $VPS_ID.

Сперва стоит обозначить объявить переменные для авторизации. Об этом будет написано в следующей части, но установить эти переменные можно уже сейчас.

Используйте существующий токен, чтобы обозначить переменную токена и vps, как указано ниже:

export TOKEN=your_token
export VPS_ID=your_vps_id

Переменная VPS_ID будет часто фигурировать в API-запросах.

Если необходимо получить заголовки вместе с ответом при использовании curl, нужно указать флаг -i. Если нужен только заголовок, используйте -I.

Авторизация и аутентификация

Для взаимодействия с simplecloud API требуется аутентификации. Она производится с помощью токена.

Токен можно получить в процессе авторизации (см.ниже). Время жизни токена - 20 минут.

Также токен можно сгенерировать в панели управления. Время его действия - не ограничено. Необходимо держать токен в безопасном месте. Токен отображается на экране только в процессе создания, в панели управления. Вам необходимо хранить его самостоятельно.

Как произвести аутентификацию

Есть несколько способов аутентификации.

Первый - отправлять заголовок с информацией для авторизации вместе с запросом (bearer authorization header). Это наиболее предпочитаемый метод, поскольку он завершает процесс авторизации еще в заголовке, в стороне от самого запроса. Пример указан ниже:

curl -X $HTTP_METHOD -H "Authorization: Bearer $TOKEN" "https://api.simplecloud.ru/v3/$OBJECT"
				

Второй - путем базовой авторизации. При помощи curl -u, как указано ниже:

curl -X $HTTP_METHOD -u "$TOKEN:" "https://api.simplecloud.ru/v3/$OBJECT"
				

В теле запроса должен фигурировать только токен, без логина и пароля.

Параметры

Есть два способа передавать параметры в запросах к API.

Предпочтительный способ - в теле JSON-объекта, содержащего в себе соответствующие имена атрибутов и значений в формате пар ключ-значение. Следует передавать JSON-объект в заголовке запроса. Для этого нужно в теле заголовка Content-Type указать application/json. Это гарантия того, что запрос будет верно распознан.

Пример:

curl -H "Authorization: Bearer $TOKEN" \
				-H "Content-Type: application/json" \
				-d '{"name": "example.com", "ip_address": "127.0.0.1"}' \
				-X POST "https://api.simplecloud.ru/v3/domains"
				

Второй способ - передавать параметры через стандартные атрибуты в теле запроса. В данном случае нужно передавать атрибуты в самом URI-запроса. curl может принимать параметры и их значения для создания корректного URI. В curl это делается при помощи использования флага -F и передавая ключи и их значения в виде аргумента. Аргумент должен принимать форму строки в кавычках.

Пример:

curl -H "Authorization: Bearer $TOKEN" \
				-F "name=example.com" -F "ip_address=127.0.0.1" \
				-X POST "https://api.simplecloud.ru/v3/domains"
				

Также можно использовать стандартную строку запроса, если это требует приложение. В таком случае, параметры передается в одну строку, и разделены знаком вопроса. Атрибуты разделяются знаком &.

Пример:

curl -H "Authorization: Bearer $TOKEN" \
				 -X POST \
				 "https://api.simplecloud.ru/v3/domains?name=example.com&ip_address=127.0.0.1"
				

Поддержка CORS (Cross Origin Resource Sharing)

Для того, чтобы производить запросы к API с других доменов, в API внедрена поддержка CORS.

CORS используется для создания AJAX запросов, выходящих за пределы авторизованного домена. Данное решение полезно для случаев, когда требуется организовать работу удаленной панели управления. Данная технология взаимодействуя с браузером, направляет его на сторонний домен.

Процедура, инициируемая браузером для выполнения указанных действий (кроме запросов GET) начинается с отправки "preflight"-запроса. Он устанавливает заголовок Origin и использует метод OPTIONS. Ответ сервера будет состоять из списка разрешенных методов и ограничений. Затем клиент отправляет фактический запрос, если он входит в рамки допустимых ограничений.

Данный процесс совершается в режиме бэкграунда, браузером. Но при желании можно использовать curl для эмуляции всего процесса вручную. Заголовки, которые будут установлены чтобы отобразить ограничения:

  • Access-Control-Allow-Origin - домен, отправляемый со стороны клиента или браузера, указанный как оригинальный. Устанавливается в заголовке Origin.
  • Access-Control-Allow-Methods - определяет разрешенные опции для запросов от домена. Список доступных методов.
  • Access-Control-Expose-Headers - содержит заголовки, которые будут доступны с оригинального домена.
  • Access-Control-Max-age - длительность времени, в течение которого сохраняется доступ. По истечении необходимо посылать "preflight"-запрос заново.
  • Access-Control-Allow-Credentials - установлен в состояние true. Позволяет отправлять OAuth-токен для авторизаций.

Пример "preflight"-запроса вручную:

curl -I -H "Origin: https://example.com" -X OPTIONS "https://api.simplecloud.ru/v3/vps"
				

Пример ответа на "preflight"-запрос:

. . .
				Access-Control-Allow-Origin: https://example.com
				Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
				Access-Control-Expose-Headers: RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, Total, Link
				Access-Control-Max-Age: 86400
				Access-Control-Allow-Credentials: true
				. . .
				

Как правило, об этом не приходится беспокоиться, поскольку браузер должен выполнять все необходимые действия автоматически.

Аккаунт

Атрибут Тип Описание
uuidчислоИдентификатор пользователя
loginстрокаЛогин
emailстрокаЕмайл
email_verifiedлогическоеФлаг подтверждения емайла
is_legalлогическоеФлаг юридического лица
is_residentлогическоеФлаг резиденства в РФ
balanceчислоТекущий баланс
mailingлогическоеФлаг согласия получения уведомлений и рассылок
dfaлогическоеФлаг двухфакторной авторизации
vps_limitчислоОбщее количество серверов, которое у Вас может быть
is_subaccountлогическоеФлаг того, что аккаунт является сабаккаунтом
notificationsчислоКоличество новых уведомлений

Авторизация и получение токена

curl -X POST -H 'Content-Type: application/json' -d "тело запроса" "https://api.simplecloud.ru/v3/auth/login"

Заголовки запроса:

Content-Type: application/json

Тело запроса:


{
	login: "логин пользователя",
	password: "пароль пользователя"
}
					

Заголовки ответа:


Content-type: application/json; charset=utf-8
Status: 200 OK	- в случае успеха и не неизменности флага dfa
Status:	4хх 	- в случае ошибки
					

Тело ответа:


{
	account: {
		аккаунт
	},
	session_key: "токен"
}
		

Основные настройки

Получение данных

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:


{
	"account":
		{
			"uuid":123123,
			"login": "test@simplecloud.ru",
			"email":"test@simplecloud.ru",
			"email_verified":false,
			"is_legal":false,
			"is_resident":true,
			"balance":102903.72,
			"mailing":true,
			"dfa":false,
			"vps_limit":9999,
			"is_subaccount":false,
			"notifications":0
		}
}

Изменение данных

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/account"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	"is_resident": boolean,
	"dfa": boolean,
	"mailing": boolean,
	"password": "текущий пароль клиента",
	"code": "введенный клиентом код проверки, отправляется только при его наличии после ответа сервера с кодом 402"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK	- в случае успеха и не неизменности флага dfa
status:	402 	- в случае отсутствия ошибки и изменении флага dfa

Тело ответа при изменении флага dfa:

{
	"verifying_ok": boolean, статус проверки введенного кода,
	"need_verifying": boolean, флаг необходимости проверки,
	"need_resend": boolean, флаг необходимости переотправки письма,
	"incorrect_verifying":boolean, флаг неверного кода в запросе,
	"incorrect_value":boolean, флаг неверного проверяемого значения,
	"limit_exceeded":boolean, флаг окончания попыток отправки кода клиенту,
	"limit_next_try": date ISO8601, дата и время возможной следующей попытки отправки нового кода
	"retry_left":number, количество оставшихся попыток ввода,
	"error": boolean, флаг ошибки,
	"error_details": text, сообщение об ошибке
}

После отправки данных, где необходимо подтверждение, код ответа сервера будет 402 и в теле ответа вышеприведенный json.

Сервер принимает 3 попытки для каждого из 3х возможных кодов. Таким образом, есть 9 попыток ввода кода с его сменой через каждые 3 попытки не более 3х раз.

Первый код отправляется автоматически при первом запросе на изменение данных.

Если попытки для отправленного клиенту кода исчерпаны и остается лимит кодов, сервер возвращает флаг "need_resend: true". При этом нужно просто повторить первоначальный запрос на изменение данных, без указания поля "code".

При несоответствии кода на сервере и кода в запросе, флаг "incorrect_verifying" будет выставлен в true. При этом, поле "retry_left" показывает количество оставшихся попыток для текущего кода на сервере.

Для некоторых полей (например, email), так же проверяется значение. В случае, если в запросе с кодом подтверждения это значение не будет соответствовать первоначальному запросу - флаг "incorrect_value" будет выставлен в true, проверка не пройдет.

Если были исчерпаны все попытки отправки кода клиенту, будет выставлен флаг "limit_exceeded". Так же, поле "limit_next_try" будет содержать дату и время, когда может быть предпринята следующая попытка отправки кода.

Таким образом, в общем, алгоритм проверки выглядит как отправка двух запросов - первый на изменение данных, второй - аналогичен первому, но добавляется поле "code".

Тело ответа если флаг dfa не менялся или он успешно подтвержден (аналогично запросу информации о пользователе):


{
	"account":
	{
		"uuid":123123,
		"login": "test@simplecloud.ru",
		"email":"test@simplecloud.ru",
		"email_verified":false,
		"is_legal":false,
		"is_resident":true,
		"balance":102903.72,
		"mailing":true,
		"dfa":false,
		"vps_limit":9999,
		"is_subaccount":false,
		"notifications":0
	}
}

Реквизиты клиента

Получение данных

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/details"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"lastName":"фамилия",
	"firstName":"имя",
	"secondName":"отчество",
	"passport":
	{
		"series": "серия паспорта",
		"number": "номер",
		"date": "дата выдачи 2003-05-01",
		"organization": "кем выдан",
		"address": "адрес регистрации",
		"confirmed": boolean, флаг того, что паспорт подтвержден,
		"files":
			["путь к файлу скана паспорта, загруженного на сервер"]
	},
	"birthDate":"дата рождения 2010-01-01"
}

Изменение данных

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/account/details"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	"lastName":"фамилия",
	"firstName":"имя",
	"secondName":"отчество",
	"passport":
	{
		"series":"серия паспорта",
		"number":"номер",
		"date":"дата выдачи 2003-05-01",
		"organization":"кем выдан",
		"address":"адрес регистрации",
	},
	"birthDate":"дата рождения 2010-01-01",
	"password":"текущий пароль пользователя"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа - аналогично запросу на получение данных.

Контакты клиента

Получение данных

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/contacts"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"email":"test@simplecloud.ru",
	"phone":"77771112233",
	"tech_email":"адрес электронной почты для технических уведомлений",
	"work_phone":"рабочий телефон",
	"skype":"скайп",
	"jabber":"джаббер",
	"telegram":"телеграм"
}

Изменение данных

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/account/details"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса при изменении телефона:

{
"phone":"новый телефон в формате +7CCCNNNNNNN",
password: "текущий пароль пользователя"
}

При изменении данного поля, его нужно подтвердить. Алгоритм работы аналогичен проверке account.bfa. Аналогично работает изменение основного адреса электронной почты, для этого поле phone нужно заменить на email.

Тело запроса при изменении остальных контактов:

{
	"tech_email":"email",
	"work_phone":"рабочий телефон",
	"skype":"скайп",
	"jabber":"джаббер",
	"telegram":"телеграм",
	"password": "текущий пароль пользователя"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа - аналогично запросу на получение данных.

Лог авторизаций

Получение данных

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/authLog"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"log":[
		{
			"ip":"IP-адрес",
			"date":"дата и время авторизации",
			"status":"статус"
		}
		...
	],
	"links":
	{
		"pages":
		{
			"first": номер первой страницы,
			"prev": номер предыдущей страницы,
			"next": номер следующей страницы,
			"last": номер последней страницы
		}
	},
	"meta":
	{
		"total": общее количество записей
	}
}

Финансы

Лог операций

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/financeLog"

В запросе могут быть использованы GET-параметры:

  • since - дата начала периода в формате ISO8601
  • till - дата окончания периода в формате ISO8601
  • direction - тип операций: outgoing - списания с лицевого счета, incoming - поступления на лицевой счет.

По умолчанию выводится 25 последних операций.

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"transactions":
	[
		{
			"sum": "сумма операции",
			"count": "объем услуги, используется для списаний",
			"date": "дата операции в формате ISO8601",
			"type": "тип операции, income или outcome",
			"vps_id": "ID сервера, связанного с операцией, используется для списаний",
			"vps_title": "название сервера",
			"name": "название операции",
			"status": "статус операции, используется только для поступлений",
			"status_descr": "текстовое описание статуса"
		}
	],
	"outcome": "общая сумма списаний за выбранный период",
	"income": "общая сумма поступлений за выбранный период",
	"links":{"pages":{"first":1,"prev":1,"next":2,"last":100}},"meta":{"total":123456}}

Статусы платежей:

  • 0 - не оплачен, новый
  • 1 - оплачен
  • 1000 - обработка, автоплатеж
  • 608 - недостаточно средств на карте, автоплатеж
  • 611 - истек срок действия карты, автоплатеж
  • прочее - различные ошибки.

Способы оплаты

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/financeRecharge"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"payment_methods":
	[
		{
			"type": "идентификатор способа оплаты",
			"title": "название"
		}
	]
}

Пополнение лицевого счета

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{payment_system: "AC", rebillingOn: false, sum: 1500}' "https://api.simplecloud.ru/v3/account/financeRecharge"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	payment_system: "идентификатор способа платежа",
	rebillingOn: флаг согласия на подключение автоплатежа при оплате банковской картой,
	sum: сумма
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"redirect_link": "URL для перехода на платежную систему",
	"payment_system": "выбранный способ оплаты",
}

Уведомления

Уведомления делятся на 2 группы:

  • анонсы - информационно-рекламные сообщения для всех пользоватлелей или групп пользователей. Для таких уведомлений type=announce; они не выводятся в общем списке и получить их можно отдельно, добавив ?announces=1 к URL запроса;
  • персональные уведомления - создаются при некоторых событиях.
Персональные уведомления могут быть следующих типов:
  • subaccount - новый запрос на управление аккаунтом.
  • ticket - ответ на тикет
  • confirm_email - необходимость подтверждения адреса электронной почты
  • custom - прочее.

Список

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/notifications"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"notifications":
	[
		{
			"id": "ID уведомления",
			"type": "тип уведомления",
			"created_at": "дата уведомеления",
			"viewed": флаг просмотрено,
			"text": "текст",
			"url": "ссылка на объект уведомления в ПУ, при наличии",
			"item": "ID объекта уведомаления, при наличии"
		}
	],"links":{"pages":{"first":1,"prev":1,"next":1,"last":1}},"meta":{"total":9}}

Сабаккаунты

Включение и выключение сервиса

Получение данных

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/enabled"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	enabled: boolean, флаг включенности сервиса сабаккаунтов
}

Изменение данных

curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/subaccounts/enabled"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	enabled: boolean, включить или выключить
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа - аналогично запросу на получение данных.

Список

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"subaccounts":
	[
		{
			"id":"ID сабаккаунта",
			"client_id":"ID аккаунта клиента",
			"owner_id":"ID мастер-аккаунта",
			"status": "статус заявки*",
			"month_limit":"месячный лимит денег для сабаккаунта",
			"subaccount_title":"Название сабаккаунта"
		}
	],
	"links":...,
	"meta":....
}

* - статусы сабаккаунта (заявки):

  • "" - заявка принята, действующий сабаккаунт
  • "request" - запрос на присоединение
  • "cancel" - отказано в принятии под управление
  • "leave" - запрос на выход из под управления

Информация об одном сабаккаунте

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/$ID"

Заголовки и ответы аналогичны предыдущему запросу, за исключением того, что в теле ответа информация об одном сабаккаунте - {"id": "...", ...}.

Создание

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/subaccounts/"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	"email": "email/логин нового аккаунта",
	"is_contractor": boolean, true если регистрируется юридическое лицо,

	поля для юр лица
	"title": "название организации",
	"type": "форма собственности",
	"inn": "1234564789",
	"kpp": "235222222",
	"legal_address": "юридический адрес",
	"actual_address": "фактический адрес"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"id":"ID сабаккаунта",
	"client_id":"ID аккаунта клиента",
	"owner_id":"ID мастер-аккаунта",
	"status":" статус заявки",
	"month_limit":"месячный лимит денег для сабаккаунта",
	"subaccount_title":"Название сабаккаунта"
}

Изменение

curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/subaccounts/"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	subaccount_title: "название для отображения",
	month_limit: "ежемесячный лимит средств"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"id":"ID сабаккаунта",
	"client_id":"ID аккаунта клиента",
	"owner_id":"ID мастер-аккаунта",
	"status":" статус заявки",
	"month_limit":"месячный лимит денег для сабаккаунта",
	"subaccount_title":"Название сабаккаунта"
}

Удаление

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/$ID"

Заголовки ответа:

status: 204 No Content

Получение токена

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/subaccounts/sessionkey/$ID"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"session_key":"токен"
}

Проекты

Список

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/projects/"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"projects":
	[
		{
			"id": "ID проекта",
			"name": "название",
			"comment":"комментарий>",
			"vps":
			[
				список объектов серверов (см. Виртуальные серверы)
			],
			"dns":[
				список объектов зон (см. Домены)
			]
		},
	],
"links":...,
"meta":....
}

Информация об одном проекте

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/projects/$ID"

Заголовки и ответы аналогичны предыдущему запросу, за исключением того, что в теле ответа информация об одном сабаккаунте - {"project": {"id": "...", ...}}.

Создание

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/projects/"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	project:
	{
		name: "название",
		comment: "комментарий",
		vps: [список ID серверов],
		dns: [список ID доменных зон]
	}
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа - см. Информация об одном проекте

Изменение

curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d "тело запроса" "https://api.simplecloud.ru/v3/Projects/"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	project:
	{
		name: "название",
		comment: "комментарий",
		vps: [список ID серверов],
		dns: [список ID доменных зон]
	}
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа - см. Информация об одном проекте

Удаление

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/Projects/$ID"

Заголовки ответа:

status: 204 No Content

Действия

Действия - это записи событий, которые производились с ресурсами аккаунта. Такие, как перезагрузка, переустановка сервера; действия с образами. Объект действия создается каждый раз, когда один из подобных запросов инициируется. Объект содержит в себе информацию о текущем статусе действия, временных штампов по началу и окончанию задания, ассоциированные типы ресурсов и ID.

Каждое действие, создающее объект доступно через эту конечную точку в обращении к api. Отработавшие действия не удаляются, и всегда доступны в списке по запросу.

Атрибут Тип Описание
id number Уникальное числовой ID, использующийся для идентификации и ссылки на объект действия
status string Текущий статус действия. Например "в процессе", "завершено", "ошибка"
type string Тип дейсвия, совершаемый объектом. Напрмер, "перемещение", чтобы обозначить статус перемещения образа
started_at string Время, указанное по стандарту ISO8601, указывающее на начало действия
completed_at string Время, указанное по стандарту ISO8601, указывающее на окончание действия
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Аббревиатура, обозначающая регион в котором возникло действие

Список действий

Чтобы отобразить список действий, произведенных с данным аккаунтом, необходимо послать запрос GET на /v3/actions. Посколько будет отображен весь список, он будет большим. Как и с любой другой коллекцией, возвращаемой api, по-умолчанию будет отображено только 25 объектов. Результат вернется в JSON-объекте, с ключом actions. Массив будет содержать в себе набор стандартных атрибутов:

Атрибут Тип Описание
id number Уникальное числовой ID, использующийся для идентификации и ссылки на объект действия
status string Текущий статус действия. Например "в процессе", "завершено", "ошибка"
type string Тип дейсвия, совершаемый объектом. Напрмер, "перемещение", чтобы обозначить статус перемещения образа
started_at string Время, указанное по стандарту ISO8601, указывающее на начало действия
completed_at string Время, указанное по стандарту ISO8601, указывающее на окончание действия
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Аббревиатура, обозначающая регион в котором возникло действие

Пример запроса списка действий на curl:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/actions?page=1&per_page=1"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "actions": [
	{
	  "id": 36804636,
	  "status": "completed",
	  "type": "create",
	  "started_at": "2014-11-14T16:29:21Z",
	  "completed_at": "2014-11-14T16:30:06Z",
	  "resource_id": 3164444,
	  "resource_type": "vps",
	  "region": "miran"
	}
  ],
  "links": {
	"pages": {
	  "last": "https://api.simplecloud.ru/v3/actions?page=159&per_page=1",
	  "next": "https://api.simplecloud.ru/v3/actions?page=2&per_page=1"
	}
  },
  "meta": {
	"total": 159
  }
}

Запрос существующего действия

Чтобы получить существующее действие, необходимо выполнить GET запрос на /v3/actions/$ACTION_ID. Результат - JSON-объект с ключом action. Атрибуты перечислены далее:

Атрибут Тип Описание
id number Уникальное числовой ID, использующийся для идентификации и ссылки на объект действия
status string Текущий статус действия. Например "в процессе", "завершено", "ошибка"
type string Тип дейсвия, совершаемый объектом. Напрмер, "перемещение", чтобы обозначить статус перемещения образа
started_at string Время, указанное по стандарту ISO8601, указывающее на начало действия
completed_at string Время, указанное по стандарту ISO8601, указывающее на окончание действия
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Аббревиатура, обозначающая регион в котором возникло действие

Пример запроса списка действий на curl:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/actions/36804636"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "action": {
	"id": 36804636,
	"status": "completed",
	"type": "create",
	"started_at": "2014-11-14T16:29:21Z",
	"completed_at": "2014-11-14T16:30:06Z",
	"resource_id": 3164444,
	"resource_type": "vps",
	"region": "miran"
  }
}

Домены

Домены - ресурс, описывающий доменные имена которыми можно манипулировать в панели управления. Ресурс позволяет осуществлять высокоуровневый контроль над каждым доменом. Ниже представлен список атрибутов.

Список доменов

Получение списка доменов возможно путем отправки GET-запроса на /v3/domains. Ответ будет представлен JSON-объектом с ключем domains. Ниже представлены атрибуты:

Атрибут Тип Описание
namestringНазвание домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф).
delete_datestringДата удаление домена, если он не дерегирован на simplecloud.ru.
is_delegatedstringФлаг того, что домен дерегирован на simplecloud.ru.
recordsstringКоличество записей.
typestringТип записи (master или slave).
ttl number Время жизни каждой записи, в секундах. Временное окно в течение которого данные буду храниться в кэше клиента. По окончанию кэш будет обновлен.
zone_file string Атрибут содержит в себе весь контент файла зоны. Для каждого домена следует использовать отдельный ресурс для более детализированного контроля. Данный атрибут может также быть использован для работы с SOA-записями.

Пример запроса списка доменов используя curl:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "domains": [
	{
	  "name": "simplecloudtestdomain.com",
	  "ttl": 1800,
	  "zone_file": "$ORIGIN simplecloudtestdomain.com.\n$TTL 1800\nsimplecloudtestdomain.com. IN SOA ns1.simplecloud.ru. hostmaster.simplecloudtestdomain.com. 1415982609 10800 3600 604800 1800\nsimplecloudtestdomain.com. 1800 IN NS ns1.simplecloud.ru.\nsimplecloudtestdomain.com. 1800 IN NS ns2.simplecloud.ru.\nsimplecloudtestdomain.com. 1800 IN NS ns3.simplecloud.ru.\nsimplecloudtestdomain.com. 1800 IN A 1.2.3.4\n",
	  "type": "MASTER",
	  "is_delegated":false,
	  "delete_date":"2018-03-23T17:02:17+0300",
	  "records":6
	}
  ],
  "links": {},
  "meta": {
	"total": 1
  }
}

Создание нового домена

Для создания нового домена, необходимо отправить запрос POST на /v3/domains. Атрибут "name" должен принимать имя домена, который добавляется; "ip_address" - ip-адрес соответственно.

Атрибут Тип Описание Требуется
name string Название домена. Должно соответствовать стандарту названия доменов (Например domain.tld, domain.com или домен.рф) true
ip_address string IP-адрес на который указывает домен true

В ответ вернется JSON-объект с ключом domain. Значением будет объект, состоящий из стандартного набора атрибутов.

Необходимо учитывать тот факт, что после создания объекта, поле zone_file будет иметь значение null, до тех пор пока не будет сформирован файл описание зоны на стороне api.simplecloud.ru.

Пример добавления домена:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"getsimplecloud.ru","ip_address":"1.2.3.4"}' "https://api.simplecloud.ru/v3/domains"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "name": "getsimplecloud.ru",
  "ip_address": "1.2.3.4"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "domain": {
	"id": "123"
	"name": "getsimplecloud.ru",
	"ttl": 1800,
	"zone_file": null,
	"type": "MASTER",
	"is_delegated":false,
	"delete_date":"2018-03-23T17:02:17+0300",
	"records":6
  }
}

Запрос существующего домена

Для запроса информации о существующем домене, необходимо выполнить запрос GET на /v3/domains/$DOMAIN_ID. В ответ придет JSON-объект с ключом domain. Значением будет объект со стандартным набором атрибутов.

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

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID"

Заголовок запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "domain": {
	"name": "getsimplecloud.ru",
	"ttl": 1800,
	"zone_file": "$ORIGIN getsimplecloud.ru.\n$TTL 1800\ngetsimplecloud.ru. IN SOA ns1.simplecloud.ru. hostmaster.getsimplecloud.ru. 1415982611 10800 3600 604800 1800\ngetsimplecloud.ru. 1800 IN NS ns1.simplecloud.ru.\ngetsimplecloud.ru. 1800 IN NS ns2.simplecloud.ru.\ngetsimplecloud.ru. 1800 IN NS ns3.simplecloud.ru.\ngetsimplecloud.ru. 1800 IN A 1.2.3.4\n"
  }
}

Удаление домена

Для удаления домена нужно отправить запрос DELETE на /v3/domains/$DOMAIN_ID. Домен будет удален из аккаунта, и в ответ вернется код ответа 204, информирующий об успешном удалении объекта.

Пример удаления домена с импользованием curl:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

status: 204 No Content

Доменные записи

Доменные записи - это ресурс, содержащий в себе информацию о DNS-записи в отдельности. Данный ресурс позволяет создавать и контролировать DNS-зоны при помощи добавления и удаления индивидуальных записей для доменов.

Данный инструментарий также представлен в панели управления. В отличии от него, в атрибутах появится дополнительное поле id, которое присваивается автоматически. Если при создании домена какой-либо атрибут не был указан, ему будет присвоено значение null.

Список всех доменных записей

Для вывода списка всех доменных записей необходимо отправить GET запрос на /v3/domains/$DOMAIN_ID/records. В ответ будет возвращен JSON-объект со стандартным списком атрибутов домена.

Атрибутам, которые не используются специфичными записями, будет присвоено значение null. Например, всем атрибутам кроме SRV в поле weight и port.

Атрибут Тип Описание
id number Уникальный идентификатор для каждой доменной записи
type string Тип записи (A-запись, CNAME, TXT e.t.c.)
name string Название домена
data string Значение даты для DNS-записи
priority nullable number Приоритет для SRV и MX записи
port nullable number Порт для SRV-записи
weight nullable number Вес для SRV-записи

Пример запроса списка доменных записей:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "domain_records": [
	{
	  "id": 3352892,
	  "type": "NS",
	  "name": "@",
	  "data": "ns1.simplecloud.ru",
	  "priority": null,
	  "port": null,
	  "weight": null
	},
	{
	  "id": 3352893,
	  "type": "NS",
	  "name": "@",
	  "data": "ns2.simplecloud.ru",
	  "priority": null,
	  "port": null,
	  "weight": null
	},
	{
	  "id": 3352894,
	  "type": "NS",
	  "name": "@",
	  "data": "ns3.simplecloud.ru",
	  "priority": null,
	  "port": null,
	  "weight": null
	},
	{
	  "id": 3352895,
	  "type": "A",
	  "name": "@",
	  "data": "1.2.3.4",
	  "priority": null,
	  "port": null,
	  "weight": null
	}
  ],
  "meta":{"total":7},
  "links":{"pages":{"first":1,"prev":1,"next":1,"last":1}
}

Создание новой доменной записи

Для создания новой доменной записи необходимо отправить POST запрос на /v3/domains/$DOMAIN_ID/records. Запрос должен включать в себя все необходимые поля, соответствующие типу записи.

Название Тип Описание Требуется
type string Тип записи (А, MX, CNAME etc) Все записи
name string Имя хоста, алиас, или описание сервиса A, AAAA, CNAME, MX, TXT, SRV
data string Дата, зависящая от типа записи. A, AAAA, CNAME,MX, TXT, SRV, NS
priority nullable number Приоритет хоста (для SRV и MX, для остальных null) MX, SRV
port nullable number Порт по которому доступен сервис SRV
weight nullable number Вес добавляемой записи SRV

Ответом на запрос будет тело JSON-объекта с ключом domain_record. Значением будет объект, представляющий собой новую запись. Атрибуты, которые не применяются к объекту, будут принимать значение null. Атрибут id генерируется автоматически.

Атрибут Тип Описание
id number Уникальный идентификатор для каждой доменной записи
type string Тип записи (A-запись, CNAME, TXT e.t.c.)
name string Название домена
data string Значение даты для DNS-записи
priority nullable number Приоритет для SRV и MX записи
port nullable number Порт для SRV-записи
weight nullable number Вес для SRV-записи

Пример создания доменной записи:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"A","name":"customdomainrecord.com","data":"162.10.66.0","priority":null,"port":null,"weight":null}' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело ответа:

{
  "type": "A",
  "name": "customdomainrecord.com",
  "data": "162.10.66.0",
  "priority": null,
  "port": null,
  "weight": null
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "domain_record": {
	"id": 3352896,
	"type": "A",
	"name": "customdomainrecord.com",
	"data": "162.10.66.0",
	"priority": null,
	"port": null,
	"weight": null
  }
}

Получение существующей доменной записи

Чтобы получить существующую доменную запись, необходимо отправить GET-запрос на /v3/domains/$DOMAIN_ID/records/$RECORD_ID. Ответом будет JSON-объект с ключом domain_record. Значением будет объект, содержащий в себе стандартные атрибуты доменной записи.

Атрибут Тип Описание
id number Уникальный идентификатор для каждой доменной записи
type string Тип записи (A-запись, CNAME, TXT e.t.c.)
name string Название домена
data string Значение даты для DNS-записи
priority nullable number Приоритет для SRV и MX записи
port nullable number Порт для SRV-записи
weight nullable number Вес для SRV-записи

Пример запроса данных о существующей доменной записи:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records/3352896"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "domain_record": {
	"id": 3352896,
	"type": "A",
	"name": "customdomainrecord.com",
	"data": "162.10.66.0",
	"priority": null,
	"port": null,
	"weight": null
  }
}

Обновление доменной записи

Для обновления доменной записи, необходимо отправить PUT-запрос на /v3/domains/$DOMAIN_ID/records/$RECORD_ID. В атрибуте "name" указывается имя новой записи.

Атрибут Тип Описание
name string Название домена

Ответом будет JSON-объект с ключом domain_record. Значением будет объект доменной записи, содержащий стандартные атрибуты доменной записи.

Атрибут Тип Описание
id number Уникальный идентификатор для каждой доменной записи
type string Тип записи (A-запись, CNAME, TXT e.t.c.)
name string Название домена
data string Значение даты для DNS-записи
priority nullable number Приоритет для SRV и MX записи
port nullable number Порт для SRV-записи
weight nullable number Вес для SRV-записи

Пример запроса на обновление доменной записи:

curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"updated-record-name.com"}' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records/3352896"

Загловки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "name": "updated-record-name.com"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "domain_record": {
	"id": 3352896,
	"type": "A",
	"name": "updated-record-name.com",
	"data": "162.10.66.0",
	"priority": null,
	"port": null,
	"weight": null
  }
}

Удаление доменной записи

Для удаления доменной записи необходимо отправить запрос DELETE на /v3/domains/$DOMAIN_ID/records/$RECORD_ID. Запись будет удалена, в ответ будет возвращен код 204.

Пример удаления:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/$DOMAIN_ID/records/3352896"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/octet-stream
status: 204 No Content

Обратные записи

Список

Для получения списка обратных записей необходимо отправить запрос GET на /v3/domains/reverse/.

Пример:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/reverse/"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/octet-stream
status: 200 OK

Тело ответа:

{
	"records":
	[
		{
			"id": "ID записи",
			"ip": "IP адрес",
			"value": "значение записи",
			"domain": "имя домена",
			"vps": "название сервера и IP",
			"vps_id": "ID сервера",
			"ipv6": "ID записи v6 при наличии"
		}
	]
}

Получение существующей записи

Для получения конкретной записи необходимо отправить запрос GET на /v3/domains/reverse/$RECORD_ID.

Пример:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_ID"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/octet-stream
status: 200 OK

Тело ответа:

{
	"id": "ID записи",
	"ip": "IP адрес",
	"value": "значение записи",
	"domain": "имя домена",
	"vps": "название сервера и IP",
	"vps_id": "ID сервера",
	"ipv6": "ID записи v6 при наличии"
}

Изменение

Для изменения обратных записей необходимо отправить запрос PUT на /v3/domains/reverse/$RECORD_ID.

Пример:

curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"domain": "новое название домена."}' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_ID"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса.

{
	"domain": "новое название домена."
}

Заголовки ответа:

content-type: application/octet-stream
status: 200 OK

Тело ответа аналогично предыдущему запросу.

Сброс зоны по умолчанию

Для сброса зоны необходимо отправить запрос DELETE на /v3/domains/reverse/$RECORD_ID.

Пример:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_ID"
			

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582
			

Заголовки ответа:

content-type: application/octet-stream
status: 200 Ok

Тело ответа:

{
	"id": "ID записи",
	"ip": "IP адрес",
	"value": "значение записи",
	"domain": "имя домена",
	"vps": "название сервера и IP",
	"vps_id": "ID сервера",
	"ipv6": "ID записи v6 при наличии"
}

Создание v6 обратной зоны

Для создания этой обратной зоны необходимо отправить запрос POST на /v3/domains/reverse/.

Пример:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"vps_id": "170609"}' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_ID"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса.

{
	"vps_id": "ID сервера, для которого создается обратная зона"
}

Заголовки ответа:

content-type: application/octet-stream
status: 200 OK

Тело ответа:

{
	"id":"43404",
	"name": "0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa",
	"ttl": "60",
	"zone_file": "$ORIGIN 0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa\n$TTL 60\n0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa 60 IN SOA ns1.simplecloud.ru. alex.simplecloud.ru. 1521787333 600 60 86400 60\n0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa 60 IN NS ns1.simplecloud.ru.\n0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa 60 IN NS ns2.simplecloud.ru.\n1.e.9.3.1.0.e.f.f.f.0.0.4.5.0.5.0.d.b.8.1.0.0.0.0.0.c.a.4.0.a.2.ip6.arpa  IN PTR 170609.simplecloud.ru.",
	"type":"MASTER",
	"is_delegated":true,
	"delete_date":"",
	"records":3
}

Управление v6 обратной зоной

Управление осуществляется как обычным доменом - см. разделы Домены и Доменные записи.

ID зоны можно получить из данных об обратной записи сервера, поле ipv6.

Удаление v6 обратной зоны

Для удаления v6 обратной зоны необходимо отправить запрос DELETE на /v3/domains/$RECORD_V6_ID.

$RECORD_V6_ID можно получить из данных об обратной записи сервера, поле ipv6.

Пример:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/domains/reverse/$RECORD_V6_ID"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/octet-stream
status: 204 No Content

Виртуальные серверы

Следующие атрибуты необходимы для манипуляций с виртуальными серверами.

Атрибут Тип Описание
id number Уникальный числовой идентификатор сервера. Генерируется автоматически
name string Название сервера
memory number ОЗУ сервера в мегабайтах
vcpus number Количество CPU
disk number Размер HDD в гигабайтах
locked boolean Булевая переменная, отражающая возможность внесения изменений пользователями
created_at string Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент создания сервера
started_first_at string Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент первого запуска сервера
started_at string Время в стандарте ISO8601. Комбинированная дата и время, отображающая момент последнего запуска сервера
status string Статус сервера. Список статусов.
backups_ids array Массив ID бэкапов для сервера. Бэкапы будут добавлены в момент создания сервера.
backup_price_hourly float Стоимость резервной копии в час.
features array Массив возможностей, подключенных на сервере
region object Регион, в котором запущен сервер
image object Базовый образ сервера.
size object Текущий тарифный план
size_slug string Идентификатор тарифного плана
networks object Описание сети для сервера. Объект должен содержать ключи для настройки IPv4 и IPv6. Значения каждого - массив, содержащий в себе объекты для описания IP адреса, маски сети, шлюза, в зависимости от особенностей сети.
kernel object Ядро сервера, которое будет запущено при его создании
password string Пароль root сервера
is_install boolean Флаг процесса установки
is_error boolean Флаг ошибки последнего задания для сервера
mbit200 boolean Флаг подключенной услуги Опция «Скорость 200 мбит/сек»
billing object Информация о биллинге сервера, содержит поля:
  • payment_date - дата следующего платежа
  • payment_amount - сумма следующего платежа
  • payment_period - следующий период оплаты
  • price - текущая стоимость сервера
  • payperiod - текущий период оплаты

Сервер может иметь один из следующих статусов:

  • new - новый, сервер не создан физически
  • active - сервер запущен
  • off - сервер выключен
  • request - сервер в процессе выполнения задания.

Создание нового сервера

Для создания нового сервера, необходимо отправить запрос POST на /v3/vps. Для нового объекта указываются следующие атрибуты:

Пример создания сервера:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"payment_period":"1m","size":"1","image":221,"region":"ixcellerate","name":"","password":"","mbit200":true}' "https://api.simplecloud.ru/v3/vps"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	"payment_period": период оплаты, может быть "1h" или "1m",
	"size": ID тарифного плана, см. раздел Тарифы,
	"image": ID образа, см. раздел Образы,
	"region": slug региона, см. раздел Регионы,
	"name": "необязательное название сервера",
	"password": "необязательный пароль root",
	"mbit200": флаг подключения услуги Опция «Скорость 200 мбит/сек»
}

Тело ответа - информация о сервере, см. раздел Отобразить все сервера.

Отобразить все сервера

Для отображения всех серверов необходимо выполнить запрос на GET на /v3/vps. Ответом будет JSON-объект с ключом vps. Это будет массив, содержащий в себе объекты, представляющие каждый сервер.

Пример запроса на отображение списка:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps?page=1&per_page=10"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"vps":
	[
		{
		"id": ID сервера,
		"name": "название сервера",
		"memory": память в Гб,
		"vcpus": кол-во CPU,
		"disk": размер диска в ГБ,
		"region":
		{
			"id": ID региона,
			"slug": "текстовый идентификатор",
			"name": "название региона",
			"available": флаг доступности для создания
		},
		"image":
		{
			"id": ID ОС,
			"name": "название ОС",
			"info":
			{
				"base_id": "ID базовой вервии ОС",
				"base_os": "название базовой версии",
				"version": "версия",
				"bits": "битность"
			},
			"distribution":"ubuntu",
			"slug": "идентификатор образа",
			"public": флаб публичности,
			"regions":[список доступных регионов (slug, в настоящее время не используется)],
			"created_at":"0000-00-00T00:00:00Z",
			"min_disk_size": минимальный размер диска в Гб,
			"os_type": "тип ОС - чистая (clean) или пресет (preset)",
			"price_month": стоимость месячной лицензии, если есть,
			"price": стоимость разовой лицензии, если есть
		},
		"size":
		{
			"id": "ID тарифного плана",
			"slug": "идентификатор тарифного плана, используется ID",
			"memory": "память в Гб",
			"vcpus": "кол-во CPU",
			"disk": "размер диска в Гб",
			"transfer": "размер пакета трафига, 0 - без ограничений",
			"price_monthly": "месячная стоимость тарифного плана",
			"price_hourly": "почасовая стоимость тарифного плана",
			"regions": [список доступных регионов, в настоящее время не используется]
		},
		"backup_price_hourly": стоимость резервной копии в час,
		"size_slug": "текущий тарифный план сервера",
		"locked": флаг того, что сервер заблокирован,
		"status": "статус сервера",
		"networks":
		{
			"v4":
			[
				{
					"ip_address": "IP адрес сервера",
					"netmask": "маска подсети",
					"gateway": "шлюз",
					"type": "public",
					"primary":true
				}
			],
			"v6":
			[
				{
					"ip_address": "IP адрес сервера",
					"netmask": "маска подсети",
					"gateway": "шлюз",
					"type": "public"
				}
			]
		},
		"kernel":
		{
			"id":1,
			"name":"standart",
			"version":"0.1"
		},
		"created_at": "дата добавления сервера",
		"started_first_at": "дата первого запуска (создания)",
		"started_at": "дата последнего запуска",
		"features": "",
		"backup_ids": [список ID резервных копий],
		"is_install": флаг установки ОС,
		"is_error": флаг ошибки последнего задания,
		"password": "пароль root",
		"mbit200": флаг подключенной опции Скорость 200 мбит/сек,
		"billing":
			{
				"payment_date": "дата следующего списания за сервер",
				"payment_amount": "сумма следующего списания, руб.",
				"payment_period": "следующий период оплаты",
				"price": "текущая стоимость сервера, руб.",
				"payperiod": "текущий период оплаты",
				"money_need": необходимая сумма для запуска, при задолженности
			}
		}
	],
	"links":{"pages":{"first":1,"prev":1,"next":1,"last":1}},
	"meta":{"total":5}
}

Получение сервера по ID

Для отображения данных о сервере, необходимо выполнить GET запрос на /v3/vps/$VPS_ID. В ответ будет выдан JSON-объект с ключом vps.

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

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заготовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа - json-объект. Cм. раздел Отобразить все сервера.

Изменение серевера

Данный метод позволяет изменить тарифный план, период оплаты, опцию «Скорость 200 мбит/сек». Для изменения данных о сервере, необходимо выполнить PUT запрос на /v3/vps/$VPS_ID. В ответ будет выдан JSON-объект с ключом vps.

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

curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
	"size": "ID тарифного плана",
	"payment_period":"период оплаты, может принимать значния 1h или 1m",
	"mbit200": флаг подключения опции «Скорость 200 мбит/сек»
}

Заготовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа - json-объект со списком действий, если таковые были созданы (см. Действия с сервером). При нехвартке средств - недостаюая сумма указывается в поле money_need.

{
	"actions":
	[
		{
			"id": "2348701",
			"status":"in-progress",
			"type":"traff_limit_disable",
			"started_at":"null
			completed_at":"null",
			"resource_id":"174085",
			"resource_type":"vps",
			"initiator":"user"
		},
		{
			"id":"2348699",
			"status":"in-progress",
			"type":"change",
			"started_at":"null",
			"completed_at":"null",
			"resource_id":"174085",
			"resource_type":"vps",
			"initiator":"user"
		}
	],
	"money_need":0
}

Получение списка резервных копий сервера

Для получения списка резервных копий для сервера, необходимо отправить GET запрос на /v3/vps/$VPS_ID/backups. В ответ придет JSON-объект, содержащий в себе ключ backups. В качестве значения будет представлен массив, содержащий в себе набор атрибутов:

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean не используется
regions array регион резервной копии
status string статус копии *
name string название резервной копии
created_at string дата создания/обновления
min_disk_size number размер, Гб
comment string комментарий
days array расписание обновления: дни
time string расписание обновления: время
price_hourly number стоимость, руб/час
action number ID текущего действия

Статусы резервных копий:

  • new - новая копия (еще не создана физически)
  • in-progress - в процессе создания, обновления или восстановления
  • completed - создана
  • error - ошибка при создании/обновлении
  • deleted - удалена.

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

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3067509/backups"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
	"backups":
	[
		{
			"id":"70329",
			"status":"completed",
			"name":"VPS 170609 111111",
			"distribution":"ubuntu",
			"slug":"",
			"public":false,
			"regions":["miran"],
			"created_at":"2018-03-26T11:28:49+0300",
			"min_disk_size":"20",
			"comment":"",
			"days":["tu","fr"],
			"time":"00:00",
			"price_hourly":"0.08",
			"action":"0"
		}
	],
	"links":{"pages":{"first":1,"prev":1,"next":1,"last":1}},
	"meta":{"total":1}
}

Получение списка действий для сервера

Для получения списка доступных действий для сервера, необходимо отправить GET запрос на /v3/vps/$VPS_ID/actions. Результатом будет JSON-объект с ключом actions. Значением будет массив, содержащий в себе следующие атрибуты:

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример запроса списка совершенных действий:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494/actions?page=1&per_page=1"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "actions": [
	{
	  "id": 36805187,
	  "status": "completed",
	  "type": "snapshot",
	  "started_at": "2014-11-14T16:37:34Z",
	  "completed_at": "2014-11-14T16:39:32Z",
	  "resource_id": 3164494,
	  "resource_type": "vps",
	  "region": "miran"
	}
  ],
  "links":{"pages":{"first":1,"prev":1,"next":1,"last":1}},
  "meta":{"total":2}
}

Удаление сервера

Для удаления сервера необходимо отправить запрос DELETE на /v3/vps/$VPS_ID. В качестве ответа будет получен код 204, информирующий об успешном удалении объекта.

Пример удаления объекта:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/octet-stream
status: 204 No Content

Статистика серевера

Данный метод позволяет получить статстику по серверу за выбранный период. Для этого необходимо выполнить GET запрос на /v3/vps/$VPS_ID/statistics.

По умолчанию выдается статистика по CPU, памяти и диску (IOPS) за 1 час. При указании GET-параметра type (CPU, RAM, disk или traffic) будет выдаваться статистика только этого вида.

GET-параметр period позволяет задать временной период и может принимать значения: 1h, 6h, 12h, 1d, 7d и 1m.

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

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164494/statistics"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заготовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа

{
	"measures":
	[
		{
			"time": "дата и время",
			"RAM": "загрузка памяти, Гб",
			"CPU": "загрузка CPU в процентах",
			"disk":
			{
				"write": "кол-во операций записи",
				"read": "кол-во операций чтения"
			},
			"traffic":
			{
				"incoming": "входящий трафик, байт",
				"outgoing": "исходящий трафик, байт"
			}
		},
		{
			"time":"28.03.2018 15:02:00",
			"RAM":"76.77",
			"CPU":"5.23",
			"disk":
			{
				"write":"23",
				"read":"0"
			},
			"traffic":
			{
				"incoming":"8737",
				"outgoing":"11459"
			}
		}
	]
}

Действия с сервером

Действия с сервером представляют собой конечную точку вида "действие" при запросе определенного сервера. Запрос инициируется методом POST с указанием действия и передачей параметров.

Создается объект действия с сервером, в котором представлены следующие атрибуты:

Название Тип Описание
id number Уникальный идентификатор действия. Используется для ссылки и поиска.
status string Текущий статус действия. Например "in progress", "error", "completed"
type string Тип действия, которое будет произведено. Например "reboot", "power_off".
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, на который ссылается действие
resource_type string Тип ресурса, на который ссылается действие
region string Регион, в котором производится действие

Перезагрузка сервера (Reboot)

Для перезагрузки сервера необходимо отправить запрос методом POST на /v3/vps/$VPS_ID/actions и присвоить атрибуту "type" значение reboot. Ответом на запрос будет JSON-объект с ключом action. Для перезагрузки в rescue-режиме, нужно добавить флаг "rescue" со значением true. Значением будет объект с действиями сервера:

Название Тип Описание
id number Уникальный идентификатор действия. Используется для ссылки и поиска.
status string Текущий статус действия. Например "in progress", "error", "completed"
type string Тип действия, которое будет произведено. Например "reboot", "power_off".
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, на который ссылается действие
resource_type string Тип ресурса, на который ссылается действие
region string Регион, в котором производится действие

Пример запроса на перезагрузку сервера:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"reboot"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "reboot",
  "rescue": false
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": {
	"id": 36804748,
	"status": "in-progress",
	"type": "reboot",
	"started_at": "2014-11-14T16:31:00Z",
	"completed_at": null,
	"resource_id": 3164450,
	"resource_type": "vps",
	"region": "miran"
  }
}

Перезагрузка сервера (Power Cycle)

Для того, чтобы произвести подобную перезагрузку, необходимо послать запрос методом POST на /v3/vps/$VPS_ID/actions и присвоить атрибуту type значение power_cycle.

Ответом будет JSON-объект с ключом action. Значением будет объект с указанным действием.

Название Тип Описание
id number Уникальный идентификатор действия. Используется для ссылки и поиска.
status string Текущий статус действия. Например "in progress", "error", "completed"
type string Тип действия, которое будет произведено. Например "reboot", "power_off".
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, на который ссылается действие
resource_type string Тип ресурса, на который ссылается действие
region string Регион, в котором производится действие

Пример запроса на выполнение перезагрузки сервера методом power cycle:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"power_cycle"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "power_cycle"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Выключение сервера (Shutdown)

Для выключения сервера через shutdown, необходимо отправить запрос методом POST на /v3/vps/$VPS_ID/actions и присвоить атрибуту type значение shutdown. Данный запрос выполняет попытку прекратить работу сервера командой shutdown. Ответом на запрос будет JSON-объект с ключом action.

Название Тип Описание
id number Уникальный идентификатор действия. Используется для ссылки и поиска.
status string Текущий статус действия. Например "in progress", "error", "completed"
type string Тип действия, которое будет произведено. Например "reboot", "power_off".
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, на который ссылается действие
resource_type string Тип ресурса, на который ссылается действие
region string Регион, в котором производится действие

Пример запроса на graceful shutdown:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"shutdown"}' "https://api.simplecloud.ru/v3/vps/3067649/actions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "shutdown"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": {
	"id": 36077293,
	"status": "in-progress",
	"type": "shutdown",
	"started_at": "2014-11-04T17:08:03Z",
	"completed_at": null,
	"resource_id": 3067649,
	"resource_type": "vps",
	"region": "miran"
  }
}

Выключение сервера (Power Off)

Для выключение сервера методом Power Off, необходимо отправить POST-запрос на /v3/vps/$VPS_ID/actions с присвоенным атрибуту type значением power_off. Это принудительный способ прекращения работы сервера, и использовать его стоит в том случае, если не сработал обычный shutdown. Ответом на запрос будет JSON-объект с ключом action.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример запроса на отключение сервера методом Power Off:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"power_off"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Загловки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "power_off"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": {
	"id": 36804751,
	"status": "in-progress",
	"type": "power_off",
	"started_at": "2014-11-14T16:31:07Z",
	"completed_at": null,
	"resource_id": 3164450,
	"resource_type": "vps",
	"region": "miran"
  }
}

Включение сервера (Power On)

Для включения сервера необходимо отправить запрос методом POST на /v3/vps/$VPS_ID/actions, присвоив атрибуту type значение power_on. В ответ будет отправлен JSON-объект с ключом action.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример запроса на включение сервера:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"power_on"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "power_on"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": {
	"id": 36804758,
	"status": "in-progress",
	"type": "power_on",
	"started_at": "2014-11-14T16:31:19Z",
	"completed_at": null,
	"resource_id": 3164450,
	"resource_type": "vps",
	"region": "miran"
  }
}

Восстановление сервера из резервной копии (Restore)

Для восстановления сервера из резервной копии, необходимо отправить запрос POST на /v3/vps/$VPS_ID/actions, присвоив атрибуту type значение restore и атрибуту image соответствующую image_id. В время восстановления сервера, образ его диска будет восстановлен из образа резервной копии. Атрибуту image должен быть передан ID существующей резервной копии восстанавливаемого сервера. Данная операция не затронет прикрепленные ssh-ключи.

Ответом на запрос будет JSON-объект с ключом action.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример запроса на восстановление сервера:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"restore", "image": 12389723 }' "https://api.simplecloud.ru/v3/vps/3067649/actions"

Заголовки запроса:

Content-Type: application/json Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{ "type": "restore", "image": 12389723 }

Заголовки ответа:

content-type: application/json; charset=utf-8 status: 201 Created

Тело ответа:

{ "action": { "id": 36077293, "status": "in-progress", "type": "restore", "started_at": "2014-11-04T17:08:03Z", "completed_at": null, "resource_id": 3067649, "resource_type": "vps", "region": "miran" } }

Сброс пароля на сервере (Password Reset)

Для сброса пароля на сервере необходимо отправить запрос POST на /v3/vps/$VPS_ID/actions, присвоим атрибуту type значение password_reset. Ответом будет JSON-объект с ключом action.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример запроса на сброс пароля:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"password_reset"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "password_reset"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": {
	"id": 36804760,
	"status": "in-progress",
	"type": "passwd",
	"started_at": "2014-11-14T16:31:25Z",
	"completed_at": null,
	"resource_id": 3164450,
	"resource_type": "vps",
	"region": "miran",
	"password":"newpasswd"
  }
}

Изменение размера сервера (Resize)

Для смены размера сервера, необходимо отправить запрос POST на /v3/vps/$VPS_ID/actions присвоив атрибуту type значение resize и атрибуту size соответствующее значение (slug из запроса sizes). Ответом будет JSON-объект с ключом action.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

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

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"resize","size":"1"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "resize",
  "size": "1"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": {
	"id": 36804888,
	"status": "in-progress",
	"type": "resize",
	"started_at": "2014-11-14T16:33:17Z",
	"completed_at": null,
	"resource_id": 3164450,
	"resource_type": "vps",
	"region": "miran"
  }
}

Переустановка сервера (Rebuild)

Для переустановки сервера необходимо отправить запрос методом POST на /v3/vps/$VPS_ID/actions, присвоив атрибуту type значение rebuild и атрибуту image ID образа. Ответом на запрос будет JSON-объект с ключом action.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример запроса на переустановку сервера:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"rebuild","image":"1"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "rebuild",
  "image": "1"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": {
	"id": 36804899,
	"status": "in-progress",
	"type": "rebuild",
	"started_at": "2014-11-14T16:33:23Z",
	"completed_at": null,
	"resource_id": 3164450,
	"resource_type": "vps",
	"region": "miran"
  }
}

Смена названия сервера

Для переименования сервера необходимо отправить запрос POST на /v3/vps/$VPS_ID/actions, присвоив атрибуту type значение rename и атрибуту name название сервера. Ответом будет JSON-объект с ключом action.

Метод не создает задания реально, поэтому объект с данными будет пустой.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример запроса на смену названия сервера:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"rename","name":"nifty-new-name"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "rename",
  "name": "nifty-new-name"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": null
}

Создание резервной копии

Для того, чтобы сделать резервную копию, необходимо отправить запрос методом POST на /v3/vps/$VPS_ID/actions. Атрибуту type нужно присвоить значение snapshot, а атрибуту name название для снапшота. Ответом будет JSON-объект с ключом action.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример создания снапшота:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"type":"snapshot","name":"Nifty New Snapshot"}' "https://api.simplecloud.ru/v3/vps/3164450/actions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "type": "snapshot",
  "name": "Nifty New Snapshot"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "action": {
	"id": 36805022,
	"status": "in-progress",
	"type": "snapshot",
	"started_at": "2014-11-14T16:34:39Z",
	"completed_at": null,
	"resource_id": 3164450,
	"resource_type": "vps",
	"region": "miran"
  }
}

Запрос действия с сервером

Для того чтобы получить данные о действии над сервером, нужно отправить запрос методом GET на /v3/vps/$VPS_ID/actions/$ACTION_ID. Ответом будет JSON-объект с ключом action.

Название Тип Описание
id number Уникальный номер, который используется для идентификации и поиска действия
status string Текущий статус действия. Например "in progress", "completed", "error"
type string Тип действия. Например, "transfer" для процесса перемещения образа.
started_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время начала действия.
completed_at string Время указанной по стандарту ISO8601, комбинированное со временем. Отображает время окончания действия.
resource_id number Уникальный идентификатор ресурса, с которым ассоциируется действие
resource_type string Тип ресурса, с которым ассоциируется действие
region string Значение, отображающее регион в котором возникло действие

Пример запроса действия:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/vps/3164444/actions/36804807"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "action": {
	"id": 36804807,
	"status": "completed",
	"type": "backup",
	"started_at": "2014-11-14T16:32:24Z",
	"completed_at": "2014-11-14T16:34:15Z",
	"resource_id": 3164444,
	"resource_type": "vps",
	"region": "miran"
  }
}

Образы

Образы могут ссылаться на разные объекты: снапшоты, резервные копии, дистрибутивы Linux. Взаимодействие с образами осуществляется через обращение к /v3/images.

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array Регион, в котором совершается данное действие
min_disk_size number Минимальный размер диска для использования данного образа

Список образов

Для отображения всех образов нужно отправить запрос методом GET на /v3/images. Ответом будет JSON-объект с ключом images. Будет представлен набор атрибутов.

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array Регион, в котором совершается данное действие
min_disk_size number Минимальный размер диска для использования данного образа

Пример запроса списка образов:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images?page=1&per_page=1"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "images": [
	{
	  "id": 7555620,
	  "name": "Nifty New Snapshot",
	  "distribution": "Ubuntu",
	  "slug": null,
	  "public": false,
	  "regions": [
		"miran"
	  ],
	  "created_at": "2014-11-04T22:23:02Z",
	  "min_disk_size": 20
	}
  ],
  "links": {
	"pages": {
	  "last": "https://api.simplecloud.ru/v3/images?page=56&per_page=1",
	  "next": "https://api.simplecloud.ru/v3/images?page=2&per_page=1"
	}
  },
  "meta": {
	"total": 56
  }
}

Список дистрибутивов

Для того, чтобы вывести весь список доступных образов, нужно отправить GET-запрос на /v3/images?type=distribution. Атрибуту type присваивается значение distribution.

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array Регион, в котором совершается данное действие
min_disk_size number Минимальный размер диска для использования данного образа

Пример запроса списка образов:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images?page=1&per_page=1&type=distribution"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "images": [
	{
	  "id": 6370882,
	  "name": "20 x64",
	  "distribution": "Fedora",
	  "slug": "fedora-20-x64",
	  "public": true,
	  "regions": [
		"miran",
		"fdc"
	  ],
	  "created_at": "2014-09-26T15:29:01Z",
	  "min_disk_size": 20
	}
  ],
  "links": {
	"pages": {
	  "last": "https://api.simplecloud.ru/v3/images?page=24&per_page=1&type=distribution",
	  "next": "https://api.simplecloud.ru/v3/images?page=2&per_page=1&type=distribution"
	}
  },
  "meta": {
	"total": 24
  }
}

Список доступных образов приложений

Для того, чтобы отобразить список приложений, необходимо отправить запрос GET с атрибутом type со значением application на /v3/images?type=application.

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array Регион, в котором совершается данное действие
min_disk_size number Минимальный размер диска для использования данного образа

Пример запроса списка доступных приложений:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images?page=1&per_page=1&type=application"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "images": [
	{
	  "id": 6376601,
	  "name": "Ruby on Rails on 14.04 (Nginx + Unicorn)",
	  "distribution": "Ubuntu",
	  "slug": "ruby-on-rails",
	  "public": true,
	  "regions": [
		"miran",
		"fdc"
	  ],
	  "created_at": "2014-09-26T20:20:24Z",
	  "min_disk_size": 20
	}
  ],
  "links": {
	"pages": {
	  "last": "https://api.simplecloud.ru/v3/images?page=14&per_page=1&type=application",
	  "next": "https://api.simplecloud.ru/v3/images?page=2&per_page=1&type=application"
	}
  },
  "meta": {
	"total": 14
  }
}

Запрос существующего образа по ID

Для получения существующего образа по ID, нужно отправить GET-запрос на /v3/images/$IMAGE_ID. Ответом будет JSON-объект с ключом image. Список атрибутов представлен ниже:

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array Регион, в котором совершается данное действие
min_disk_size number Минимальный размер диска для использования данного образа

Пример запроса на получение образа по ID:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images/7555620"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "image": {
	"id": 7555620,
	"name": "Nifty New Snapshot",
	"distribution": "Ubuntu",
	"slug": null,
	"public": false,
	"regions": [
	  "miran"
	],
	"created_at": "2014-11-04T22:23:02Z",
	"min_disk_size": 20
  }
}

Запрос существующего образа по метке

Для получения существующего образа по метке (slug), необходимо отправить запрос GET на /v3/images/$IMAGE_SLUG. Ответом будет JSON-объект с ключом image. Его значением будут следующие атрибуты:

Название Тип Описание
id number Уникальный номер для идентификации и поиска образа
name string Название образа. Отображается в WEB-интерфейсе.
distribution string Базовый дистрибутив
slug nullable string Уникальный идентификатор, аббревиатура. Может указывать на публичный образ.
public boolean Сделать публичным образ
regions array Регион, в котором совершается данное действие
min_disk_size number Минимальный размер диска для использования данного образа

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

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/images/ubuntu-14-04-x64"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "image": {
	"id": 6918990,
	"name": "14.04 x64",
	"distribution": "Ubuntu",
	"slug": "ubuntu-14-04-x64",
	"public": true,
	"regions": [
		"miran",
		"fdc"
	],
	"created_at": "2014-10-17T20:24:33Z",
	"min_disk_size": 20
  }
}

SSH-ключи

simplecloud позволяет хранить публичную часть ключа в аккаунте, чтобы автоматически добавлять их на сервер.

ID Тип Описание
id number Уникальный идентификационный номер. Используется для поиска объекта.
fingerprint string Отпечаток для ssh-ключа.
public_key string Публичная часть ключа
name string Название для ключа.

Вывод списка ключей

Для отображения списка ssh-ключей, необходимо отправить GET-запрос на /v3/account/keys. В ответ возвращается JSON-объект с ключом ssh_keys. Значением будет массив ключевых объектов, каждый из которых содержит следующие атрибуты:

ID Тип Описание
id number Уникальный идентификационный номер. Используется для поиска объекта.
fingerprint string Отпечаток для ssh-ключа.
public_key string Публичная часть ключа
name string Название для ключа.

Пример запроса на отображение списка ключей:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/keys"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "ssh_keys": [
	{
	  "id": 512189,
	  "fingerprint": "3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa",
	  "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example",
	  "name": "My SSH Public Key"
	}
  ],
  "links": {
  },
  "meta": {
	"total": 1
  }
}

Создание нового ключа

Для создания нового ключа необходимо отправить POST-запрос на /v3/account/keys. Атрибуту name присваивается название ключа, public_key - публичная часть ключа, соответсвенно. В ответ будет возвращен JSON-объект с ключом ssh_key. Список атрибутов представлен ниже.

ID Тип Описание
id number Уникальный идентификационный номер. Используется для поиска объекта.
fingerprint string Отпечаток для ssh-ключа.
public_key string Публичная часть ключа
name string Название для ключа.

Пример запроса на создание ключа:

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"My SSH Public Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example"}' "https://api.simplecloud.ru/v3/account/keys"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "name": "My SSH Public Key",
  "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 201 Created

Тело ответа:

{
  "ssh_key": {
	"id": 512190,
	"fingerprint": "3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa",
	"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example",
	"name": "My SSH Public Key"
  }
}

Получение существующего ключа

Для получения существующего ключа необходимо отправить GET-запрос на /v3/account/keys/$KEY_ID или на /v3/account/keys/$KEY_FINGERPRINT. В ответ будет возвращен JSON-объект с ключом ssh_key. Список атрибутов представлен ниже.

ID Тип Описание
id number Уникальный идентификационный номер. Используется для поиска объекта.
fingerprint string Отпечаток для ssh-ключа.
public_key string Публичная часть ключа
name string Название для ключа.

Пример запроса ключа:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/keys/512190"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "ssh_key": {
	"id": 512190,
	"fingerprint": "3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa",
	"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example",
	"name": "My SSH Public Key"
  }
}

Обновление ключа

Для обновления ключа, необходимо отправить PUT-запрос на /v3/account/keys/$SSH_KEY_ID или /v3/account/keys/$SSH_KEY_FINGERPRINT. Атрибуту name присваивается имя ключа.В ответ будет возвращен JSON-объект с ключом ssh_key. Список атрибутов представлен ниже.

ID Тип Описание
id number Уникальный идентификационный номер. Используется для поиска объекта.
fingerprint string Отпечаток для ssh-ключа.
public_key string Публичная часть ключа
name string Название для ключа.

Пример запроса на обновление ключа:

curl -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' -d '{"name":"Renamed SSH Key"}' "https://api.simplecloud.ru/v3/account/keys/512190"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Тело запроса:

{
  "name": "Renamed SSH Key"
}

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "ssh_key": {
	"id": 512190,
	"fingerprint": "3b:16:bf:e4:8b:00:8b:b8:59:8c:a9:d3:f0:19:45:fa",
	"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQDDHr/jh2Jy4yALcK4JyWbVkPRaWmhck3IgCoeOO3z1e2dBowLh64QAM+Qb72pxekALga2oi4GvT+TlWNhzPH4V example",
	"name": "Renamed SSH Key"
  }
}

Удаление ключа

Для удаления ключа достаточно отправить запрос DELETE на /v3/account/keys/$KEY_ID или на /v3/account/keys/$KEY_FINGERPRINT. В ответ будет возвращен код ответа 204, информирующей об успешном удалении объекта.

Пример запроса на удаление ключа:

curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/account/keys/512190"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/octet-stream
status: 204 No Content

Тарифы

Тарифы представляют собой различные варианты конфигурации сервера. При создании сервера необходимо указывать данный параметр. Тариф включает в себя объем ОЗУ, размер HDD, количество процессорных ядер. Также, объект содержит в себе биллинговую информацию.

Атрибут Тип Описание
slug string Уникальный идентификатор тарифа
transfer number Пропускная способность для сервера. Учитывается только внешний трафик в террабайтах
price_monthly number Месячная стоимость сервера. Цена указана в рублях
price_hourly number Почасовая стоимость сервера. Цена указана в рублях
memory number Количество выделенной памяти для сервера на данном тарифе. Указано в мегабайтах
vcpus number Количество выделенных виртуальных ядер для сервера на данном тарифе
disk number Объем HDD для сервера на текущем тарифе. Указан в гигабайтах
regions array Массив, включающий в себя метки региона, в котором предоставляется данный тариф

Вывести список всех тарифов

Для отображения списка всех существующих тарифов необходимо отправить запрос GET на /v3/sizes. Ответом на запрос будет JSON-объект с ключом sizes. Значением будет объект с набором атрибутов:

Атрибут Тип Описание
slug string Уникальный идентификатор тарифа
transfer number Пропускная способность для сервера. Учитывается только внешний трафик в террабайтах
price_monthly number Месячная стоимость сервера. Цена указана в рублях
price_hourly number Почасовая стоимость сервера. Цена указана в рублях
memory number Количество выделенной памяти для сервера на данном тарифе. Указано в мегабайтах
vcpus number Количество выделенных виртуальных ядер для сервера на данном тарифе
disk number Объем HDD для сервера на текущем тарифе. Указан в гигабайтах
regions array Массив, включающий в себя метки региона, в котором предоставляется данный тариф

Пример запроса на отображение списка тарифов:

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/sizes"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "sizes": [
	{
	  "slug": 1,
	  "memory": 1024,
	  "vcpus": 1,
	  "disk": 20,
	  "transfer": 1,
	  "price_monthly": 250,
	  "price_hourly": 0.4,
	  "regions": ["base"]
	}
  ],
  "links": {
  },
  "meta": {
	"total": 1
  }
}

Регионы

Регионы - это дата-центры, в которых возможно создание серверов.

Список

curl -X GET -H 'Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582' "https://api.simplecloud.ru/v3/regions"

Заголовки запроса:

Content-Type: application/json
Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582

Заголовки ответа:

content-type: application/json; charset=utf-8
status: 200 OK

Тело ответа:

{
  "regions":
    [
        {
          "id":"числовой ID",
          "slug":"символьный ID",
          "name":"название региона",
          "available":"флаг доступности (int)"
        }
    ],
  "links": {
  },
  "meta": {
	"total": 1
  }
}
Simple Cloud
На связи
  • Отзывы о хостинге simplecloud.ru
Оплата и безопасность

Оплата производится в российских рублях
Поддержка Яндекс.Деньги: 8 (800) 250-66-99

Сделано в России © 2014—2024