Page tree

Общая информация о работе с API

Доступ к API предоставляется по запросу и требует верификации аккаунта: предоставления копии паспорта (для юр.лиц — свидетельства ИНН) владельца аккаунта. После верификации вам будет выдан ключ API, необходимый для авторизации в сервисе. 

Обращение к API выполняется GET-, POST-, DELETE-запросами к URL https://api.timeweb.ru

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

Обратите внимание! Для работы с API двухфакторная аутентификация в панель управления (опция "Подтверждение входа через SMS" в разделе "Настройки доступа") должна быть отключена.

Авторизация

Для авторизации в системе необходимы следующие данные:

  1. Логин аккаунта.
  2. Пароль аккаунта.
  3. Ключ API (appkey) — предоставляется по запросу в Службу поддержки.

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

AppKey и токен действуют без ограничений до блокировки или удаления аккаунта.

Шаблон запроса

curl -X POST "https://api.timeweb.ru/v1.2/access" 
-H "accept: application/json" 
-H "x-app-key: {appkey}"
-u {login}:{password}
 
#Например:
curl -X POST "https://api.timeweb.ru/v1.2/access" 
-H "accept: application/json" 
-H "x-app-key: 9d999b163fdc572524028201a02c9999"
-u cn90632:dhasfaGdss8F

В ответ будут возвращены данные, содержащие, в том числе, поле token:

  "token": "639Х89ee-259d-4dd5-9fХ0-8e7ХХ6d893ХХХ"

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

curl -X GET "https://api.timeweb.ru/v1.1/accounts/cn9632/status" 
-H "accept: */*" 
-H "x-app-key: 9d999b163fdc572524028201a02c9999" 
-H "Authorization: Bearer 639Х89ee-259d-4dd5-9fХ0-8e7ХХ6d893ХХХ"

Используемые параметры

  • {appkey} - ключ API, полученный в поддержке.
  • {login} - логин аккаунта, с которым производятся действия.
  • {token} - токен, полученный при авторизации.
  • {domain} - домен, с которым выполняются действия; всегда вида domain.ru.
  • {subdomain} - поддомен, с которым выполняются действия; всегда вида subdomain.
  • {idrecords} - ID ресурсной записи (берется из метода получения ресурсных записей для домена).

Доступные операции

Статус аккаунта

GET /v1.1/accounts/{login}/status

Шаблон запроса:

curl -X GET "https://api.timeweb.ru/v1.1/accounts/{login}/status" 
-H "accept: */*" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

Пример ответа:

"autopay_cardinfo": "",
  "autopay_cardowner": "",
  "autopay_last": "0000-00-00 00:00:00+03:00",
  "balance": 54.45901489,
  "blocked": false,
  "country": "ru",
  "cp_login_date": "2018-02-20T16:16:32Z",
  "cp_theme": "default",
  "cron_mailto": "",
  "customer_id": "cn9632",
  "days_left": 16.609999541449998,
  "dedic_order_stage": null,
  "invoice_auto_creation": false,
  "last_password_changed": "2020-02-04T13:43:03Z",
  "mail_auto_limit": false,
  "mysql_password": "8Lxx75335awK",
  "mysql_super_access": true,
  "new_panel": true,
  "next_plan_id": null,
  "order_plan_id": 917,
  "password_expired": false,
  "permanent_block": false,
  "personal_manager": "",
  "plan_expires_date": "2020-05-31T15:28:33Z",
  "plan_id": 20,
  "recv_invoice_copy": true,
  "sms_auth": false,
  "ssh": true,
  "want_bill_letters": "U",
  "ym_client_id": null

Сведения о финансах и оплате

GET /v1.1/finances/accounts/{login}

Шаблон запроса

curl -X GET "https://api.timeweb.ru/v1.1/finances/accounts/{login}" 
-H "accept: application/json" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

Пример ответа

 "available_balance": 54.45901489,
  "balance": 54.45901489,
  "currency": "RUB",
  "discount_end_date": "",
  "discount_percent": 0,
  "hourly_cost": 0.1366120218579235,
  "hourly_fee": 0.1366120218579235,
  "monthly_cost": 100,
  "monthly_fee": 100,
  "total_paid": 160 

Информация о сайтах на аккаунте

 GET /v1.1/sites/{login}

Шаблон запроса

curl -X GET "https://api.timeweb.ru/v1.1/sites/{login}" 
-H "accept: application/json" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

Пример ответа

"customer_id": "cn9632",
    "db_created": false,
    "directory": "oip",
    "domains": [
      "cn9632.tmweb.ru"
    ],
    "encoding": "UTF-8",
    "http2": false,
    "id": 2807457,
    "infected": false,
    "php_version": "5.6",
    "python_version": "2.7",
    "redirect": null,
    "site_caption": ""

Информация о базах данных

GET /v1.2/databases/{login}/mysql/

Шаблон запроса

curl -X GET "https://api.timeweb.ru/v1.2/databases/{login}/mysql/" 
-H "accept: */*" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

Создание нового сайта

POST /v1.1/sites/{login}

Шаблон запроса

curl -X POST "https://api.timeweb.ru/v1.1/sites/{login}" 
-H "accept: application/json" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}" 
-H "Content-Type: application/json" 
-d "{\"site_caption\":\"имя_директории_сайта\",
\"directory\":\"имя_директории_сайта\"}"

Параметры site_caption и directory совпадают и указывают на имя директории, в которой будут размещены файлы сайта.

Добавление домена в панель

POST /v1/accounts/{login}/domains/{domain}/nameserver

Шаблон запроса

curl -X POST "https://api.timeweb.ru/v1/accounts/{login}/domains/{domain}/nameserver" 
-H "accept: application/json" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

Добавление поддомена в панель

POST /v1.1/accounts/{login}/domains/{domain}/subdomains/{subdomain}

Шаблон запроса

curl -X POST "https://api.timeweb.ru/v1.1/accounts/{login}/domains/{domain}/subdomains/{subdomain}" 
-H "accept: */*" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

Получение ID персоны администратора домена

GET /v3/accounts/{login}/persons

Шаблон запроса

curl -X GET "https://api.timeweb.ru/v3/accounts/{login}/persons" 
-H "accept: application/json" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

Пример ответа

"address": "Россия, Санкт-Петербург, ул.Заставская дом 22 А",
  "birthdate": "1990-01-01",
  "country_code": "",
  "document_id": "1234",
  "email": "mail@example.ru",
  "fax": "",
  "id": 123456,
  "is_closed": false,
  "name_eng": "Ivanov Ivan Ivanovich",
  "name_rus": "Иванов Иван Иванович",
  "passport_date": "2010-01-01",
  "passport_number": "567890",
  "passport_place": "ТП N123 ОУФМС России по СПб и Лен. обл",
  "passport_series": "1234",
  "phone": "+7 (999) 123-45-67",
  "postcode": "196006",
  "resident": "Y",
  "type": "person"

Создание заявки на регистрацию домена

POST /v1.1/domains/request

Шаблон запроса

curl -X POST "https://api.timeweb.ru/v1.1/domains/request" 
-H "accept: */*" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}" 
-H "Content-Type: application/json" 
-d "{\"action\":\"register\",
\"autoprolong\":false,
\"fqdn\":\"{domain}\",
\"person_id\":1,
\"whois_privacy\":false}"

Параметры:

  • autoprolong - включение опции автопродления, true / false.
  • fqdn - домен, который вы хотите зарегистрировать.
  • person_id - ID администратора домена, на чьи данные будет зарегистрирован домен (ID можно получить из запроса выше).
  • whois_privacy - включение опции скрытия данных администратора домена, true / false.

Пример ответа

"auth_code": null,
  "autoprolong": false,
  "customer_id": "cn9632",
  "date": "yyyy-mm-dd hh:mm:ss+hh:mm",
  "domain_bundle_id": null,
  "error_code": null,
  "fqdn": "domain.ru",
  "id": 123456,
  "message": null,
  "pay_type": null,
  "person_id": 1,
  "type": "request",
  "whois_privacy": "N"

ID заявки, полученный в данном запросе (например: "id": 123456), используется в запросе на оплату регистрации (метод ниже).

Оплата регистрации с баланса аккаунта

PUT /v1.1/domains/request/{id}

Шаблон запроса

curl -X PUT "https://api.timeweb.ru/v1.1/domains/request/{id}" 
-H "accept: */*" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}" 
-H "Content-Type: application/json" 
-d "{\"person_id\":1,
\"auth_code\":\"abcdefghij\",
\"money_source\":\"use\"}"

Параметры:

  • id - ID заявки на регистрацию, берется из запроса выше.
  • person_id - ID администратора домена, на чьи данные будет зарегистрирован домен.

Параметр money_source определяет способ оплаты: при указании use заявка будет оплачена с баланса аккаунта.

Добавление ресурсной записи для домена

POST /v1.2/accounts/{login}/domains/{domain}/user-records/

Шаблон запроса

curl -X POST "https://api.timeweb.ru/v1.2/accounts/{login}/domains/{domain}/user-records/" 
-H "accept: */*" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}" 
-H "Content-Type: application/json" 
-d "{\"data\":
{\"host\":\"mail.server.com\",
\"port\":443,
\"priority\":10,
\"protocol\":\"_TCP\",
\"service\":\"_sip\"},
\"type\":\"SRV\"}"

Параметры port, priority, protocol, service могут быть удалены из запроса, если не требуются.

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

GET /v1.2/accounts/{login}/domains/{domain}/user-records

Шаблон запроса

curl -X GET "https://api.timeweb.ru/v1.2/accounts/{login}/domains/{domain}/user-records" 
-H "accept: */*" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

Пример ответа

  {
    "data": {
      "subdomain": "test",
      "value": "v=spf1 ip4:176.57.223.0/24 ip4:92.53.116.0/22 ip6:2a03:6f00::/32 ~all"
    },
    "id": 29044587,
    "type": "TXT"
  },
  {
    "data": {
      "value": "193.164.150.42"
    },
    "id": 29044532,
    "type": "A"
  },
  {
    "data": {
      "priority": 20,
      "value": "mx2.timeweb.ru"
    },
    "id": 29044498,
    "type": "MX"
  },
  {
    "data": {
      "priority": 10,
      "value": "mx1.timeweb.ru"
    },
    "id": 29044497,
    "type": "MX"
  },
  {
    "data": {
      "subdomain": null,
      "value": "v=spf1 ip4:176.57.223.0/24 ip4:92.53.116.0/22 ip6:2a03:6f00::/32 ~all"
    },
    "id": 29044494,
    "type": "TXT"
  }

ID ресурсной записи, полученный в данном запросе (например: "id": 29044494), используется для удаления записей.

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

DELETE /v1.2/accounts/{login}/domains/{domain}/user-records/{idrecords}/

Шаблон запроса

curl -X DELETE "https://api.timeweb.ru/v1.2/accounts/{login}/domains/{domain}/user-records/{idrecords}/" 
-H "accept: */*" 
-H "x-app-key: {appkey}" 
-H "Authorization: Bearer {token}"

ID записи (параметр idrecords) можно получить из метода выше.

  • No labels