---
title: "Every workload server with its capacity (limits and measured), where the next new customer goes, and visitor routing"
method: GET
path: "/operator/servers"
tags: ["Operator"]
---

# Every workload server with its capacity (limits and measured), where the next new customer goes, and visitor routing

`GET /operator/servers`

## Request

- Base URL: `https://hostingsurge.com/api/v1`
- URL: `https://hostingsurge.com/api/v1/operator/servers`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-hs_session`

## Response `200`

Servers

- object
  - `engine` 'coolify' | 'fake', required
  - `placementEnabled` boolean, required
  - `servers` object[], required
    - `id` string, uuid, required
    - `engine` 'coolify' | 'fake', required
    - `externalId` string, required
    - `name` string, required
    - `isPrimary` boolean, required
    - `status` 'preparing' | 'active' | 'full' | 'draining', required
    - `publicAddress` string, nullable, required
    - `cpus` number, nullable, required
    - `memoryMb` number, nullable, required
    - `diskGb` number, nullable, required
    - `note` string, nullable, required
    - `agentConfigured` boolean, required
    - `agentTokenHint` string, nullable, required
    - `report` object, nullable, required
      - `cpus` integer, required
      - `memoryTotalMb` number, required
      - `memoryAvailableMb` number, nullable
      - `swapTotalMb` number, nullable
      - `swapUsedMb` number, nullable
      - `diskTotalGb` number, nullable
      - `diskFreeGb` number, nullable
      - `load1` number, nullable
      - `load5` number, nullable
      - `load15` number, nullable
      - `cpuBusyPercent` number, nullable
      - `uptimeSeconds` number, nullable
      - `kernel` string, nullable
      - `agentVersion` string, nullable
      - `backupAgeSeconds` integer, nullable
    - `reportedAt` string, nullable, required: ISO-8601 timestamp
    - `allocation` object, required
      - `organizations` integer, required
      - `activeOrganizations` integer, required
      - `resources` integer, required
      - `runningCpus` number, required
      - `runningMemoryMb` number, required
      - `allCpus` number, required
      - `allMemoryMb` number, required
    - `capacity` object, required
      - `source` 'declared' | 'measured' | 'unknown', required
      - `cpus` number, nullable, required
      - `memoryMb` number, nullable, required
      - `diskGb` number, nullable, required
      - `reservePercent` number, required
      - `cpuCommitment` number, nullable, required
      - `memoryCommitment` number, nullable, required
      - `freeCpus` number, nullable, required
      - `freeMemoryMb` number, nullable, required
      - `measured` object, nullable, required
        - `source` 'host' | 'agent', required
        - `at` string, nullable, required: ISO-8601 timestamp
        - `ageSeconds` number, nullable, required
        - `fresh` boolean, required
        - `memoryTotalMb` number, nullable, required
        - `memoryAvailableMb` number, nullable, required
        - `diskTotalGb` number, nullable, required
        - `diskFreeGb` number, nullable, required
        - `cpuBusyPercent` number, nullable, required
        - `load1` number, nullable, required
      - `score` number, nullable, required
      - `accepting` boolean, required
      - `holds` string[], required
    - `createdAt` string, required: ISO-8601 timestamp
    - `updatedAt` string, required: ISO-8601 timestamp
    - `statusChangedAt` string, required: ISO-8601 timestamp
  - `unregistered` object[], required
    - `organizations` integer, required
    - `activeOrganizations` integer, required
    - `resources` integer, required
    - `runningCpus` number, required
    - `runningMemoryMb` number, required
    - `allCpus` number, required
    - `allMemoryMb` number, required
    - `externalId` string, required
  - `next` object, required
    - `serverId` string, uuid, nullable, required
    - `externalId` string, nullable, required
    - `reason` 'home' | 'best_fit' | 'fallback_least_loaded' | 'fallback_home' | 'fallback_primary' | 'default_server', required
  - `primaryMismatch` string, nullable, required
  - `routing` object, required
    - `configured` boolean, required
    - `hostnames` integer, required
    - `writtenAt` string, nullable, required: ISO-8601 timestamp
    - `error` string, nullable, required
  - `policy` object, required
    - `cpuCommitMax` number, required
    - `memoryCommitMax` number, required
    - `reservePercent` number, required
    - `primaryReservePercent` number, required
    - `minFreeDiskGb` number, required
    - `minFreeMemoryPercent` number, required
    - `staleAfterSeconds` number, required
    - `backupStaleAfterSeconds` number, required
    - `typicalNeed` object, required
      - `cpus` number, required
      - `memoryMb` number, required

## Other responses

- `400`: Invalid request (code invalid_request)
- `403`: A change on an operator-console session older than 5 minutes (details.reauthenticate), or not an operator
- `404`: Not found; also the answer to any request without a live operator-console session
- `409`: Conflict (already listed, not ready for customers, still in use, the main server)
- `429`: Too many requests (code rate_limited)
- `501`: Not available on this server (code not_configured)
- `503`: The hosting engine did not answer (code provider_unavailable)

---

[API](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api.md) · [All operations](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/revisions/4d08337cdff1?raw)
