Back
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.

provisioncreatepost servicesvpsgamebotapp

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

bash
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)

bash
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

bash
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

bash
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

bash
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.

Related in Reseller & API

Reseller API overview (sell VPS, game, bot and app hosting under your brand)What the Victus Reseller API is, what you can sell with it, and how the prepaid credit model works so you can build your own storefront on top of Victus infrastructure.Get an API key and understand the prepaid credit modelMint a reseller API key (rslr_...) from the Reseller API page in the Victus panel, store it safely, and top up the prepaid credit balance the API spends.Authentication and base URLThe Reseller API base URL, how to send your rslr_ bearer token, required headers, and a quick authenticated request to confirm your key works.Response format, errors, rate limits and scopesThe standard success {data} and error {errors:[{code,status,detail}]} envelopes, common HTTP status codes, the 240 req/min rate limit, and how key scopes restrict access.List the catalog, plans and regionsRead the available product categories, plans and pricing with GET /catalog, drill into a specific plan code, and list deployment regions with GET /regions.Manage a service (power, console, usage, lifecycle, backups)Control a provisioned service: power signals, console access, usage stats, suspend/unsuspend, reinstall, resize, reset-password, backups and termination.List services, get a single service, and check your balanceUse GET /services to list everything you have provisioned, GET /services/{id} for one service, GET /account for your credit balance, and GET /account/transactions for the ledger.Webhooks (events and X-Victus-Signature HMAC verification)Register a webhook endpoint with PUT /webhooks, receive service and billing events, and verify every delivery with the X-Victus-Signature HMAC header.