Tanuki Domains API

Reseller REST API

HTTPS JSON API for resellers: domains, VPS, Backend Proxy, cloaking, and outbound webhooks. Requests go to api.tanuki.host.

Documentation is public. API keys and webhooks are issued after your application is approved in the dashboard (one-time $200+ deposit).

Base URL: https://api.tanuki.host

Health check without a key: GET /v1/health

Authentication

For all routes except GET /v1/health, send your API key in a header:

Authorization: Bearer YOUR_API_KEY
X-Api-Key: YOUR_API_KEY

The account must be approved as Reseller. Per-key rate limits apply (default ~60/min).

Try requests

Paste your API key and run any method — the JSON response appears below. Each endpoint has a Try button.

The key is stored only in your browser sessionStorage and is sent directly to api.tanuki.host — we do not store it on the docs server.

—Response will appear here

Errors

JSON errors: <code>{"ok":false,"error":"code"}</code>. Success: <code>{"ok":true,...}</code>.

HTTPerrorMeaning
401unauthorizedMissing or invalid key
403reseller_not_approvedReseller API not approved for this account
403api_host_forbiddenRequest not sent to api.{domain}
429rate_limit_exceededKey rate limit exceeded
400…Invalid parameters or insufficient balance
404not_foundResource not found or not yours

General

GET/v1/healthno key

API health check. No authentication.

cURL example
curl -s 'https://api.tanuki.host/v1/health'

Balance

GET/v1/balance

Account balance in USD.

cURL example
curl -s 'https://api.tanuki.host/v1/balance' -H 'Authorization: Bearer YOUR_KEY'

Domains

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

Search domains by name or keyword.

ParameterDescription
qrequired domain or keyword
cURL example
curl -s 'https://api.tanuki.host/v1/domains/search?q=example' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/domains

List account domains.

cURL example
curl -s 'https://api.tanuki.host/v1/domains' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/domains/register

Register a domain (balance charged).

ParameterDescription
domainstring, FQDN
yearsint 1–10, default 1
cURL example
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

Renew a domain.

ParameterDescription
domainstring
yearsint 1–10
cURL example
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 / servers

GET/v1/servers/catalog/regions

VPS catalog regions.

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

Plans for a tariffpage_id from the catalog.

ParameterDescription
tariffpage_idrequired int from regions
cURL example
curl -s 'https://api.tanuki.host/v1/servers/catalog/tariffs?tariffpage_id=14' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/servers/os

Available OS images.

cURL example
curl -s 'https://api.tanuki.host/v1/servers/os' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/servers

Your servers (public ids).

cURL example
curl -s 'https://api.tanuki.host/v1/servers' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/servers/order

Order VPS using plan_id from catalog.

ParameterDescription
tariffpage_idint
plan_idstring from catalog
os_keyoptional
passwordoptional root password
server_nameoptional label
cURL example
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}

Server details; live=1 syncs from provider.

ParameterDescription
liveoptional 1 for live provider sync
cURL example
curl -s 'https://api.tanuki.host/v1/servers/1001?live=1' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/servers/{id}/sync

Refresh from provider.

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

Renew server billing period.

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

Power: start, stop, reboot.

ParameterDescription
actionstart | stop | reboot
cURL example
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

Change root password; new password may be returned.

ParameterDescription
passwordoptional new password
cURL example
curl -s -X POST 'https://api.tanuki.host/v1/servers/1001/password' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/servers/{id}/reinstall

Reinstall OS.

ParameterDescription
os_idint
passwordoptional
cURL example
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 offer.

cURL example
curl -s 'https://api.tanuki.host/v1/reverse-proxy/offer' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/reverse-proxy/offer/cloak

Backend Proxy + Cloaking offer.

cURL example
curl -s 'https://api.tanuki.host/v1/reverse-proxy/offer/cloak' -H 'Authorization: Bearer YOUR_KEY'
GET/v1/reverse-proxy

List your Backend Proxies.

cURL example
curl -s 'https://api.tanuki.host/v1/reverse-proxy' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/reverse-proxy/order

Order proxy; cloaking=true for bundle.

ParameterDescription
cloakingbool, RP+Cloaking bundle
backend_server_idoptional public server id
cURL example
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}

Single proxy by public id.

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

Set backend IP (your VPS).

ParameterDescription
backend_ipIPv4 of your VPS
cURL example
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 subscription status and price.

cURL example
curl -s 'https://api.tanuki.host/v1/cloaking' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/cloaking/subscribe

Subscribe or renew Cloaking.

cURL example
curl -s -X POST 'https://api.tanuki.host/v1/cloaking/subscribe' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/cloaking/regenerate-key

Regenerate Cloaking API key (full key in response).

cURL example
curl -s -X POST 'https://api.tanuki.host/v1/cloaking/regenerate-key' -H 'Authorization: Bearer YOUR_KEY'

Webhooks (API)

GET/v1/webhooks

List outbound webhooks.

cURL example
curl -s 'https://api.tanuki.host/v1/webhooks' -H 'Authorization: Bearer YOUR_KEY'
POST/v1/webhooks

Create webhook; secret may be auto-generated.

ParameterDescription
urlHTTPS endpoint
secretoptional HMAC secret
eventsarray: deposit, domain_registered, …
cURL example
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}

Delete webhook by id.

cURL example
curl -s -X DELETE 'https://api.tanuki.host/v1/webhooks/1' -H 'Authorization: Bearer YOUR_KEY'

Inbound webhooks

We POST JSON to your URL. Header X-Tanuki-Event repeats the event type.

  • deposit — Depozit creditat
  • domain_registered — Domeniu înregistrat
  • domain_blocked — Domeniu blocat
  • rp_failover — Auto-failover Backend Proxy
  • transfer_completed — Transfer-in finalizat

HMAC-SHA256 body signature when a secret is set:

X-Tanuki-Signature: sha256=e5856dc90540c79894a32dd9f50bb32505ef70f63e4fec484dccac469e0b6d5b