Victus Cloud / Support
RESELLER & API

Provision a service (VPS, game, bot and app examples)

Create services with POST /services for every category — full curl examples for a VPS, a Minecraft game server, a Discord bot and an app, plus how to poll until it is ready.

You provision any service type with a single endpoint: POST /services. Pass the category, a plan code from the catalog, a region where required, and category-specific options. Provisioning charges credits for the current cycle.

Provisioning is asynchronous

A successful create usually returns 202 Accepted with the new service id and a provisioning / installing status. Poll GET /services/{id} or listen for the service.ready webhook before handing credentials to your customer.

VPS

curl -X POST https://control.victuscloud.com/api/reseller/v1/services \
  -H "Authorization: Bearer $VICTUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "vps",
    "code": "vps-2c-4g",
    "region": "de-1",
    "label": "customer-1234-vps",
    "options": {
      "os_template": "ubuntu-22.04",
      "hostname": "cust1234",
      "ssh_key": "ssh-ed25519 AAAA...",
      "root_password": "optional-if-no-ssh-key"
    }
  }'

Game server (Minecraft)

curl -X POST https://control.victuscloud.com/api/reseller/v1/services \
  -H "Authorization: Bearer $VICTUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "game",
    "code": "mc-4g",
    "region": "sg-1",
    "label": "customer-1234-smp",
    "options": {
      "egg": "paper",
      "minecraft_version": "latest",
      "eula": true
    }
  }'

Discord bot

curl -X POST https://control.victuscloud.com/api/reseller/v1/services \
  -H "Authorization: Bearer $VICTUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "bot",
    "code": "bot-1g",
    "label": "customer-1234-bot",
    "options": {
      "runtime": "nodejs",
      "git_repo": "https://github.com/you/bot.git",
      "start_command": "npm start"
    }
  }'

App hosting

curl -X POST https://control.victuscloud.com/api/reseller/v1/services \
  -H "Authorization: Bearer $VICTUS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "app",
    "code": "app-1g",
    "label": "customer-1234-app",
    "options": {
      "type": "code-server",
      "password": "customer-chosen-password"
    }
  }'

Poll until ready

SID="svc_8fj2k"
curl https://control.victuscloud.com/api/reseller/v1/services/$SID \
  -H "Authorization: Bearer $VICTUS_KEY" \
  | jq '.data.status'   # provisioning -> installing -> running
402 insufficient_credits

If provisioning fails with a 402, your prepaid balance is too low for this plan. Top up in the billing portal and retry — no service is created and nothing is charged.

Use a unique label

Set a label you can map back to your own customer/order id. It makes services easy to find in GET /services and in the panel, and helps reconcile the GET /account/transactions ledger.

Was this article helpful?

Still stuck?

Our team can help with your account or service.

Open a ticket →