---
title: "Set idle sleep for the platform (a full replace: mode, hours per plan or null for never, static sites) with a reason"
method: PUT
path: "/operator/idle-sleep"
tags: ["Operator"]
---

# Set idle sleep for the platform (a full replace: mode, hours per plan or null for never, static sites) with a reason

`PUT /operator/idle-sleep`

## Request

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

## Request body

- object
  - `mode` 'off' | 'dry_run' | 'on', required
  - `freeHours` integer, nullable, required
  - `proHours` integer, nullable, required
  - `businessHours` integer, nullable, required
  - `includeStatic` boolean, required
  - `note` string, nullable
  - `reason` string, required: shown in the operator audit log

## Response `200`

Saved

- object
  - `status` 'ok', required
  - `replay` boolean, required
  - `overview` object, required
    - `setting` object, required
      - `mode` 'off' | 'dry_run' | 'on', required
      - `freeHours` integer, nullable, required
      - `proHours` integer, nullable, required
      - `businessHours` integer, nullable, required
      - `includeStatic` boolean, required
      - `configured` boolean, required: false: nothing saved yet, the defaults apply
      - `note` string, nullable, required
      - `updatedAt` string, nullable, required: ISO-8601 timestamp
      - `updatedByEmail` string, nullable, required
    - `defaults` object, required
      - `mode` 'off' | 'dry_run' | 'on', required
      - `freeHours` integer, nullable, required
      - `proHours` integer, nullable, required
      - `businessHours` integer, nullable, required
      - `includeStatic` boolean, required
    - `stats` object, required
      - `sleeping` integer, required
      - `waking` integer, required
      - `alwaysOn` integer, required
      - `optedIn` integer, required
      - `sleepsTotal` integer, required
      - `wakesTotal` integer, required
      - `wakes24h` integer, required
      - `avgWakeMs24h` number, nullable, required
      - `maxWakeMs24h` number, nullable, required
      - `sleepingMemoryMb` number, required
      - `databases` object, required
        - `sleeping` integer, required
        - `waking` integer, required
        - `backupPaused` integer, required
    - `feed` object, required
      - `trackingSince` string, nullable, required: ISO-8601 timestamp
      - `reportedAt` string, nullable, required: ISO-8601 timestamp
      - `caughtUpAt` string, nullable, required: ISO-8601 timestamp
      - `ready` boolean, required
    - `waker` object, required
      - `configured` boolean, required
      - `healthy` boolean, required
      - `routing` boolean, nullable, required
      - `checkedAt` string, nullable, required: ISO-8601 timestamp
    - `lastSweep` object, nullable, required
      - `at` string, required: ISO-8601 timestamp
      - `mode` 'off' | 'dry_run' | 'on', required
      - `candidates` integer, required
      - `wouldSleep` integer, required
      - `slept` integer, required
      - `blocked` string, nullable, required: why nothing was put to sleep although the mode is on (e.g. waker_unavailable)
      - `metricsReady` boolean, nullable, required: CPU use is measured for the candidates (the host metrics collector runs); null: nothing to check
      - `keptAwake` object, required
      - `sample` object[], required
        - `projectId` string, uuid, required
        - `organizationId` string, uuid, required
        - `name` string, required
        - `kind` string, required
        - `planId` string, required
        - `idleHours` number, nullable, required
        - `memoryMb` integer, required
    - `bounds` object, required
      - `hours` object, required
        - `min` integer, required
        - `max` integer, required

## Other responses

- `400`: Invalid request (code invalid_request)
- `403`: Not a platform operator, a bearer-authenticated request, or a session older than 5 minutes (code forbidden; details.reauthenticate is true for the last case)
- `404`: Not found (code not_found)

---

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