---
title: "The platform host (CPU, load, memory, disk, uptime) next to the CPU/memory allocated to customers, commitment ratios and top consumers"
method: GET
path: "/operator/server"
tags: ["Operator"]
---

# The platform host (CPU, load, memory, disk, uptime) next to the CPU/memory allocated to customers, commitment ratios and top consumers

`GET /operator/server`

## Request

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

## Response `200`

Server

- object
  - `host` object, required
    - `available` boolean, required
    - `reason` 'unsupported_platform' | 'disabled' | 'unreadable' | 'container_view' | 'null', nullable, required: why the host facts are missing: not Linux, PLATFORM_HOST_METRICS=off, /proc not readable, or /proc shows the API container's own limits instead of the host (e.g. LXCFS)
    - `source` 'proc', required: the kernel's /proc as the API container sees it (not namespaced for memory, load, uptime and CPUs)
    - `facts` object, nullable, required
      - `cpu` object, required
        - `cores` integer, required: logical CPUs of the host
        - `load1` number, required
        - `load5` number, required
        - `load15` number, required
        - `busyPercent` number, nullable, required: share of all cores' time spent busy over the last sample window (0-100); null when not measured yet
      - `memory` object, required
        - `totalBytes` number, required
        - `availableBytes` number, required: what can be used without swapping (MemAvailable)
        - `usedBytes` number, required: total minus available
        - `swapTotalBytes` number, required
        - `swapUsedBytes` number, required
      - `disk` object, nullable, required
        - `path` string, required: where the API container measured: its root filesystem, i.e. the host filesystem that holds Docker's data
        - `totalBytes` number, required
        - `usedBytes` number, required
        - `freeBytes` number, required: available to non-root writers
      - `uptimeSeconds` number, required
      - `kernel` string, nullable, required
      - `readAt` string, required: ISO-8601 timestamp
  - `allocation` object, required
    - `running` object, required: limits of what runs now (projects ready or building, previews ready, databases running or starting, helpers running); suspended organizations excluded
      - `projects` object, required
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
      - `previews` object, required
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
      - `databases` object, required
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
      - `helpers` object, required: internal database helpers (database tools, connection poolers)
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
      - `total` object, required
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
    - `all` object, required: limits of every project and database that exists, running or not (what could run at once)
      - `cpus` number, required
      - `memoryMb` integer, required
      - `count` integer, required
  - `capacity` object, required: the host's CPUs and memory; null without host facts
    - `cpus` number, nullable, required
    - `memoryMb` integer, nullable, required
  - `commitment` object, required
    - `cpuRatio` number, nullable, required: running allocation / host CPUs; above 1 = overcommitted
    - `memoryRatio` number, nullable, required: running allocation / host memory; above 1 = overcommitted
  - `topResources` object[], required: running resources with the largest allocation (memory, then CPU), at most 10
    - `kind` 'project' | 'preview' | 'database', required
    - `id` string, uuid, required
    - `name` string, required
    - `detail` string, required: project kind (app, static, service, wordpress) or database engine
    - `status` string, required
    - `organizationId` string, uuid, required
    - `organizationName` string, required
    - `projectId` string, uuid, nullable, required
    - `cpus` number, required
    - `memoryMb` integer, required
    - `usage` object, nullable, required
      - `cpuCores` number, nullable, required
      - `memoryBytes` number, nullable, required
      - `at` string, required: ISO-8601 timestamp
  - `topOrganizations` object[], required: organizations with the largest running allocation, at most 10
    - `organizationId` string, uuid, required
    - `organizationName` string, required
    - `resources` integer, required
    - `cpus` number, required
    - `memoryMb` integer, required
    - `totalCpus` number, nullable, required
    - `totalMemoryMb` integer, nullable, required
  - `usageSource` 'none' | 'collector', required: none: measured usage per resource is not connected yet
  - `plans` object: Free vs paid vs the unlimited tier (migration 139)
    - `free` object, required
      - `organizations` integer, required
      - `running` object, required: limits of what runs now, suspended organizations excluded (as on the Server page)
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
      - `all` object, required: limits of every project and database that exists: what the Free pool counts
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
    - `paid` object, required
      - `organizations` integer, required
      - `running` object, required: limits of what runs now, suspended organizations excluded (as on the Server page)
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
      - `all` object, required: limits of every project and database that exists: what the Free pool counts
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
    - `unlimited` object, required: organizations in PLATFORM_UNLIMITED_ORG_IDS: never Free, never in the pool
      - `organizations` integer, required
      - `running` object, required: limits of what runs now, suspended organizations excluded (as on the Server page)
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
      - `all` object, required: limits of every project and database that exists: what the Free pool counts
        - `cpus` number, required
        - `memoryMb` integer, required
        - `count` integer, required
  - `freePool` object, nullable: the Free capacity pool (migration 139); null when none is set
    - `cpus` number, nullable, required
    - `memoryMb` integer, nullable, required

## Other responses

- `400`: Invalid request (code invalid_request)
- `403`: An action on an operator-console session older than 5 minutes (code forbidden, details.reauthenticate: sign in again at /admin/login), or an operator removed since the session was resolved
- `404`: Not found (code not_found); also the answer to any request without a live operator-console session (no admin cookie, a dashboard session, an API/MCP key or OAuth token, or a caller who is not a platform operator)
- `429`: Too many requests (code rate_limited); see Retry-After
- `501`: Not available on this server (code not_configured)

---

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