Tanuki Domains API

Reseller REST API

HTTPS JSON API для реселлеров: регистрация доменов, VPS, Backend Proxy, cloaking и исходящие webhooks. Запросы выполняются на хост api.tanuki.host.

Документация открыта для всех. Ключ API и webhooks выдаются после одобрения заявки в личном кабинете (разовый депозит от $200).

Базовый URL: https://api.tanuki.host

Проверка доступности без ключа: GET /v1/health

Авторизация

Для всех маршрутов, кроме GET /v1/health, передайте API-ключ в заголовке:

Authorization: Bearer YOUR_API_KEY
X-Api-Key: YOUR_API_KEY

Аккаунт должен быть одобрен как Reseller (is_reseller). Лимит запросов задаётся для каждого ключа (по умолчанию ~60/мин).

Проверка запросов

Вставьте API-ключ и выполните любой метод — ответ JSON появится ниже. У каждого эндпоинта есть кнопка «Попробовать».

Ключ хранится только в sessionStorage вашего браузера и отправляется напрямую на api.tanuki.host — мы его не сохраняем на сервере документации.

—Ответ появится здесь

Ошибки и коды

Ответы в JSON: <code>{"ok":false,"error":"код"}</code>. Успех: <code>{"ok":true,...}</code>.

HTTPerrorЗначение
401unauthorizedКлюч отсутствует или неверный
403reseller_not_approvedReseller API не одобрен для аккаунта
403api_host_forbiddenЗапрос не на api.{domain}
429rate_limit_exceededПревышен лимит запросов ключа
400…Неверные параметры или недостаточно баланса
404not_foundОбъект не найден или чужой

Общее

GET/v1/healthбез ключа

Проверка работы API. Авторизация не требуется.

Пример cURL
curl -s 'https://api.tanuki.host/v1/health'

Баланс

GET/v1/balance

Текущий баланс аккаунта в USD.

Пример cURL
curl -s 'https://api.tanuki.host/v1/balance' -H 'Authorization: Bearer YOUR_KEY'

Домены

GET/v1/domains/search?q={query}

Поиск домена по имени или ключевому слову.

ПараметрОписание
qrequired domain or keyword
Пример cURL
curl -s 'https://api.tanuki.host/v1/domains/search?q=example' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/domains

Список доменов аккаунта.

Пример cURL
curl -s 'https://api.tanuki.host/v1/domains' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/domains/register

Регистрация домена с списанием с баланса.

ПараметрОписание
domainstring, FQDN
yearsint 1–10, default 1
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/domains/register' \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"domain":"example.com","years":1}'
POST/v1/domains/renew

Продление домена.

ПараметрОписание
domainstring
yearsint 1–10
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/domains/renew' \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"domain":"example.com","years":1}'

VPS / серверы

GET/v1/servers/catalog/regions

Регионы каталога VPS.

Пример cURL
curl -s 'https://api.tanuki.host/v1/servers/catalog/regions' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/servers/catalog/tariffs?tariffpage_id={id}

Тарифы для tariffpage_id из каталога.

ПараметрОписание
tariffpage_idrequired int from regions
Пример cURL
curl -s 'https://api.tanuki.host/v1/servers/catalog/tariffs?tariffpage_id=14' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/servers/os

Доступные образы ОС.

Пример cURL
curl -s 'https://api.tanuki.host/v1/servers/os' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/servers

Список ваших серверов (public id).

Пример cURL
curl -s 'https://api.tanuki.host/v1/servers' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/servers/order

Заказ VPS по plan_id из каталога.

ПараметрОписание
tariffpage_idint
plan_idstring from catalog
os_keyoptional
passwordoptional root password
server_nameoptional label
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/servers/order' \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"tariffpage_id":14,"plan_id":"...","os_key":"ubuntu-22"}'
GET/v1/servers/{id}

Детали сервера; live=1 — синхронизация с провайдером.

ПараметрОписание
liveoptional 1 for live provider sync
Пример cURL
curl -s 'https://api.tanuki.host/v1/servers/1001?live=1' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/servers/{id}/sync

Обновить данные с провайдера.

Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/servers/1001/sync' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/servers/{id}/renew

Продление сервера.

Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/servers/1001/renew' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/servers/{id}/power

Питание: start, stop, reboot.

ПараметрОписание
actionstart | stop | reboot
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/servers/1001/power' \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"action":"reboot"}'
POST/v1/servers/{id}/password

Смена root-пароля; новый пароль может вернуться в ответе.

ПараметрОписание
passwordoptional new password
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/servers/1001/password' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/servers/{id}/reinstall

Переустановка ОС.

ПараметрОписание
os_idint
passwordoptional
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/servers/1001/reinstall' \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"os_id":1,"password":"Secret123"}'

Backend Proxy

GET/v1/reverse-proxy/offer

Тариф Backend Proxy.

Пример cURL
curl -s 'https://api.tanuki.host/v1/reverse-proxy/offer' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/reverse-proxy/offer/cloak

Тариф Backend Proxy + Cloaking.

Пример cURL
curl -s 'https://api.tanuki.host/v1/reverse-proxy/offer/cloak' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/reverse-proxy

Список ваших Backend Proxy.

Пример cURL
curl -s 'https://api.tanuki.host/v1/reverse-proxy' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/reverse-proxy/order

Заказ прокси; cloaking=true для bundle.

ПараметрОписание
cloakingbool, RP+Cloaking bundle
backend_server_idoptional public server id
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/reverse-proxy/order' \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"cloaking":false,"backend_server_id":1001}'
GET/v1/reverse-proxy/{id}

Детали одного прокси по public id.

Пример cURL
curl -s 'https://api.tanuki.host/v1/reverse-proxy/501' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/reverse-proxy/{id}/configure

Указать backend IP (ваш VPS).

ПараметрОписание
backend_ipIPv4 of your VPS
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/reverse-proxy/501/configure' \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"backend_ip":"10.0.0.5"}'

Cloaking

GET/v1/cloaking

Статус подписки Cloaking и цена.

Пример cURL
curl -s 'https://api.tanuki.host/v1/cloaking' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/cloaking/subscribe

Оформить/продлить подписку Cloaking.

Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/cloaking/subscribe' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/cloaking/regenerate-key

Перегенерировать API-ключ Cloaking (в ответе полный ключ).

Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/cloaking/regenerate-key' -H 'Authorization: Bearer YOUR_KEY'

Webhooks (API)

GET/v1/webhooks

Список исходящих webhooks.

Пример cURL
curl -s 'https://api.tanuki.host/v1/webhooks' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/webhooks

Создать webhook; secret можно сгенерировать автоматически.

ПараметрОписание
urlHTTPS endpoint
secretoptional HMAC secret
eventsarray: deposit, domain_registered, …
Пример cURL
curl -s -X POST 'https://api.tanuki.host/v1/webhooks' \
  -H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com/hook","events":["deposit"]}'
DELETE/v1/webhooks/{id}

Удалить webhook по id.

Пример cURL
curl -s -X DELETE 'https://api.tanuki.host/v1/webhooks/1' -H 'Authorization: Bearer YOUR_KEY'

Входящие webhooks

POST на ваш URL с телом JSON. Заголовок X-Tanuki-Event дублирует тип события.

  • deposit — Депозит зачислен
  • domain_registered — Регистрация домена
  • domain_blocked — Блокировка домена
  • rp_failover — Auto-failover Backend Proxy
  • transfer_completed — Transfer-in завершён

Подпись HMAC-SHA256 тела запроса (если задан secret):

X-Tanuki-Signature: sha256=e5856dc90540c79894a32dd9f50bb32505ef70f63e4fec484dccac469e0b6d5b