• личный кабинет

API для работы с хостингом

API для работы с хостингом

APIAPI для работы с хостингом позволяет автоматизировать управление ресурсами и анализ данных.

Примеры использования API хостинга:

  • Отслеживание состояния аккаунта и своевременный анализ уведомлений
  • Автоматическое создание, удаление, конфигурирование ресурсов
  • Доступ к данным внутреннего мониторинга 1Gb.ru, анализ качества работы VDS
  • Автоматизация типовых реакций на проблемы ресурсов и хостинга

Доступ к API хостинга активен в любом оплаченном тарифном плане. Для тестовых или бесплатных аккаунтов API не работает.

  • https://www.1gb.ru/api-doc/ - Swagger-портал API (документация, примеры, тесты)
  • @lk_1gb_bot - Телеграм-бот для работы с личным кабинетом с демо-режимом обучения API

Принципы работы и примеры

Доступ происходит по протоколу HTTPS по базовому адресу https://www.1gb.ru/api/ или https://api.1gb.ru/api/. Параметры большинства запросов можно передавать с помощью GET или POST параметров. Ответ содержит объект или массив объектов по стандарту JSON.

Адреса www.1gb.ru и api.1gb.ru с целью вызова API равноценны, просто они поддерживают разные наборы HTTPS шифрования. Если у вас современный проект, лучше использовать api.1gb.ru, если старый, то www.1gb.ru.

Перед началом работы с API требуется получить token для дальнейшей авторизации. Это делается следующим образом (приведены примеры использования GET параметров):

  • https://www.1gb.ru/api/auth/start?login=[логин_кабинета] - возвращает в ответ string, содержащий соль
  • https://www.1gb.ru/api/auth/login?login=[логин_кабинета]&salt=[соль]&response=[md5(пароль+соль+символ-перевода-строки)] - возвращает в ответ string, содержащий token;
    псевдокод для вычисления response на PHP: md5($password.$salt."\n")

Последний запрос возвращает string, в нем token, его нужно запомнить и использовать для последующей авторизации. Token утрачивает силу при смене главного пароля аккаунта, существует также возможность деактивировать отдельные token-ы со страницы кабинета "смена главного пароля аккаунта".

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

  • https://www.1gb.ru/api/billing/info?_token_=[запомненный token] - получение общих данных аккаунта

Ответы API с HTTP кодом 200 обозначают успешное исполнение операции. В ответном JSON может содержаться два разных типа:

  • [ "string" ]: либо просто "OK", либо "[число]" (необходимо привести к int), если возвращается ID созданного объекта
  • [ { ... } , { ... } ] (массив объектов): если запрос возвращает список из 0 или более структур (хеш "поле":"значение").
Другие коды (больше 200) обозначают ошибку, при этом тело ответа содержит string с объяснением, пример: "ERROR: vds.missing".

Команды API и общие соглашения

Большинство команд API, таких как /list, возвращают внутренние структуры из базы данных хостинга, которые содержат сотни полей. Документировать их трудоемко, поэтому рекомендуем просто смотреть на вывод соответствующих команд и анализировать структуры данных по очевидным названиям полей.

В том случае, если трактовка полей вызывает затруднения, пишите на support@1gb.ru, поможем разобраться.

В настоящее время идет процесс наполнения/создания полной документации к API на основе http://swagger.io/, где будет систематизирована вся доступная информация.

Общедоступные на данный момент команды

https://www.1gb.ru/api + адрес из списка ниже. Обязательный параметр каждой команды - _token_. Остальные параметры приведены после команды. В квадратных скобках - не обязательные. В круглых - примеры или умолчания.


/auth/start
	login

/auth/login
	login
	salt
	response
	[user_agent]

/logoff
/auth/logoff
	Destroy current token.

/c2dmkey/set
	_key_
	Internal usage, do not call.

/gcmkey/set
	_key_
	Internal usage, do not call.

/iospushkey/set
	_key_
	Internal usage, do not call.

/billing/info

/billing/limits

/billing/balance

/billing/balance.lic

/billing/debt

/updates/list
	_key_ - first ID or 0 to show all

/updates/last

/vds/list
	[_key_] - /vds/list|id

/vds/ip/list
	[_key_] - /vds/list|id

/vds/templates-list

/vds/create
	[type] (vds.dynamic) vz1|vz2|vz3|vz4|vz5|vds.dynamic|vds.dynamic.nv
	[cr_hvmem] (2048)
	[cr_hvdsk] (30)
	[cr_hvcpu] (2)
	[template] (win2012R2x64)
	[force_memo]
	[hv_1gb_panel_version]
	[panel_install] - 1|0
	[cr_ssd1] - 1|0
	[cr_hv_all_system] - 1|0

/vds/update
	_key_ - /vds/list|id
	[cr_hvmem] (2048)
	[cr_hvdsk] (30)
	[cr_hvcpu] (2)	

/vds/ip/add
	_key_ - /vds/list|id

/vds/ip/delete
	_key_ - /vds/list|id
	del_ip

/vds/reboot
	_key_ - /vds/list|id

/vds/delete
	_key_ - /vds/list|id
	[force_critical] - 1|0

/vds/online
	_key_ - /vds/list|id
	online - 1|0

/email/list

/email/alias/list

/email/add
	add_email

/email/delete
	_key_ - email address (string)

/email/alias/delete
	_key_ - email address (string)

/website/add
	name - website name (temp subdomain), keep simple, unique and short
	srv_type -
		99901	Best for PHP
		99902	Best for ASP, ASP.NET
		99903	Best for Static Content
		8	.NET 2 - 3.5
		99904	.NET 4+, .Core
		1	Legacy ASP + .NET 2 - 3.5
		4	mod_php 5.2
		9	mod_php 5.3
		10	mod_php 5.4
		11	mod_php 5.5
		12	mod_php 5.6
		13	mod_php 7.0
		15	mod_php 7.1
		16	mod_php 7.2
		17	mod_php 7.3
		18	mod_php 7.4
		19	mod_php 8.0
		20	mod_php 8.1
		21	mod_php 8.2
		5	PHP - FastCGI
		6	PHP - CGI (not recommended)
		20008	Frankfurt - .NET 2 - 3.5
		29994	Frankfurt - .NET 4+
		2004	Frankfurt - mod_php 5.2
		2009	Frankfurt - mod_php 5.3
		2010	Frankfurt - mod_php 5.4
		2011	Frankfurt - mod_php 5.5
		2012	Frankfurt - mod_php 5.6
		2013	Frankfurt - mod_php 7.0
		2015	Frankfurt - mod_php 7.1
		2016	Frankfurt - mod_php 7.2
		2017	Frankfurt - mod_php 7.3
		2018	Frankfurt - mod_php 7.4
		2019	Frankfurt - mod_php 8.0
		2020	Frankfurt - mod_php 8.1
		2021	Frankfurt - mod_php 8.2
		2005	Frankfurt - PHP - FastCGI
	
/website/list

/website/delete
	_key_ - /website/list|id

/ftp/list
	(not recommented - use /website/ API)

/ftp/delete
	_key_ - /ftp/list|id
	(not recommented - use /website/ API)

/dns/list

/dns/add
	add_dns_zone
	[add_dns_record]
	[iis_site_for_dns] - /website/list|id OR "ip_a.b.c.d" string to bind to VDS
	[bind_only] - 1|0

/dns/bind
	_key_ - /dns/list|id
	[dns_to] - /website/list|id OR "ip_a.b.c.d" string to bind to VDS

/dns/delete
	_key_ - /dns/list|id

/dns/raw/managedmx
	_key_ - /dns/list|id
	upd_managed_mx - 1
	managed_mx - 1|0 - add/keep/update (1) or delete (0) hosting-managed root MX record

/dns/raw
	_key_ - /dns/list|id
	s_del = 1 to delete record, DO NOT specify ANY s_del to create record
	s_add = 1 to create record, DO NOT specify ANY s_add to delete record
	dns_type = A,MX,CNAME,AAAA,NS,TXT,SRV
	dns_name = record name or @ for root
	dns_value = record content, dnscmd.exe format (A: [ip], CNAME: [name], MX: [priority] [target])

/database/list

/mssql/list

/dns/prolong/list
	[show_all - 1|0]

/chat/key

 

Полезный совет
      

API хостинга функционирует уже много лет для поддержки различных сценариев, таких как массовые услуги для VDS клиентов или работа наших приложений Android / IOS. Теперь мы решили предоставить к этим API публичный доступ.

Текущий функционал API не покрывает 100% возможностей хостинга, но мы готовы быстро расширить его для нужного функционала буквально в считанные дни. Если у вас есть реальная необходимость в автоматизации каких-то конкретных операций, отсутствующих в текущих функциях или пока не опубликованных здесь, смело пишите на support@1gb.ru.