Concepts
Servers

The server model

A server is one isolated Minecraft instance: its own data volume, its own RAM/CPU allocation, its own public address. You create it once and drive its whole lifecycle over the API.

Identity

When you create a server from a name, three identifiers are derived deterministically:

FieldExampleNotes
idmy-smpDNS-safe slug of the name; the handle you use in every endpoint path
hostnamemy-smp.truetick.ggWhere players connect (port 25565). EU servers use *.eu.truetick.gg
containermc_my-smpInternal container name

My SMP → id my-smp → hostname my-smp.truetick.gg. The SDK and CLI compute these for you; with raw curl you pass them explicitly (see the Quickstart).

Shape

A GET /v1/servers/{id} returns the full server object. The fields you'll work with most:

FieldMeaning
id, hostnameIdentity (above)
stateLifecycle state — see Lifecycle
ramMbAllocated RAM in MB. This is guaranteed, not oversold
typeServer core: PAPER, PURPUR, VANILLA, FABRIC, FORGE, NEOFORGE, …
versionMinecraft version, e.g. 1.21.1
regionna or eu — see Regions
planmetered (default) or flat — see Billing
motdMessage of the day shown in the server list
propertiesA subset of server.properties you can set via the API
idleTimeoutMinutesHow long empty before scale-to-zero hibernation
lastActiveAt, bakedAtActivity / readiness timestamps
installErrorSet when a modpack pre-install failed (see Mods)

No hidden overselling — the honesty moat. ramMb and the CPU allotment for its tier are reserved for the server while it's awake. We don't pack more guaranteed load onto a box than it can honestly serve. That's why TPS/MSPT are real numbers you can read back — see Honesty metrics.

Creating a server

Required inputs: name, ramMb, and (recommended) type + version. Optional: region, plan, and modpack fields. RAM tiers run from 2 GB upward; modded cores require at least 4 GB. Omitting type/version falls back to platform defaults.

const server = await client.servers.create({
  name: "My SMP",
  ramMb: 4096,
  type: "PAPER",
  version: "1.21.1",
  region: "na",     // optional
  plan: "metered",  // optional; default
});

Creation is cheap and does not start the server — it lands stopped and costs nothing until you wake it. To start from a preset instead of bare inputs, use templates (client.templates.list()client.servers.createFromTemplate(...)).

Configuring a server

Most settings are individual write endpoints (all under servers:write):

  • updateVersion(id, { type, version }) — change core/version (server must be stopped)
  • setProperties(id, { properties, idleTimeoutMinutes }) — patch server.properties keys + idle timeout
  • setMotd(id, motd) — set the MOTD
  • Mods, backups, files, and console are covered in their own sections.

Listing & deleting

const servers = await client.servers.list();        // your account's servers
await client.servers.delete("my-smp");               // permanent — removes data

Deleting is irreversible and removes the data volume. Take a backup first if you might want the world back.