---
title: "Read the global dispatcher kill-switch state"
method: GET
path: "/api/v1/admin/kill-switch"
tags: ["Admin"]
---

# Read the global dispatcher kill-switch state

`GET /api/v1/admin/kill-switch`

## Request

- Base URL: `https://api.uptimemonitoring.com`
- URL: `https://api.uptimemonitoring.com/api/v1/admin/kill-switch`
- Auth: HTTP bearer

Returns the watcher's current `Active()` reading and the
configured sentinel file path. Requires admin role per the
same `auth.RequireAdmin` middleware that gates
`/api/v1/admin/ping` (#18).

**Lag note.** The `active` field reflects the watcher's
in-memory state, which is updated on a 5 s poll cadence. An
out-of-band file `touch`/`rm` issued via host shell may take
up to 5 s to propagate. REST-driven flips (POST/DELETE on
this same path) propagate within milliseconds because the
handler bypasses the poll and updates after writing the
file.

Returns 503 `{"error":"kill switch not configured"}` when
the dispatcher is running with `KILL_SWITCH_FILE` unset
(the watcher is the no-op `Disabled` service).

## Response `200`

Current kill-switch state.

- KillSwitchStatus
  - `active` boolean, required: Whether the global kill switch is currently engaged. Reflects the watcher's in-memory state, which is updated on a 5 s poll cadence (out-of-band flips can lag up to 5 s; REST-driven flips propagate within milliseconds).
  - `sentinel_path` string, required: Absolute path of the sentinel file the watcher is polling — the value of `KILL_SWITCH_FILE` at process start.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: Authenticated but not an admin.
- `429`: Per-account dispatcher rate limit exceeded (200 requests/minute). The `Retry-After` header gives the integer seconds until at least one token has refilled. The `X-RateLimit-*` trio reflects the bucket whose rejection produced this response — usually the global 200/min cap; on `POST /api/v1/monitors` a 429 may instead reflect the per-route 20/min creation limit.
- `503`: Kill switch not configured (`KILL_SWITCH_FILE` unset).

---

[API](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api.md) · [All operations](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api/llms.txt) · [OpenAPI document](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api/revisions/ddcb2a8bc70f?raw)
