---
title: "Get the agent kill switch"
method: GET
path: "/agent-kill-switch"
tags: ["agent-activity"]
---

# Get the agent kill switch

`GET /agent-kill-switch`

## Request

- Base URL: `https://api.opal.dev/v1`
- URL: `https://api.opal.dev/v1/agent-kill-switch`
- Auth: HTTP bearer

**Prototype (AG-297).** Returns whether agent tool calls are currently being denied for this organization, and the activation that is in force or that last was.

`active` is evaluated against the clock on every read, so an activation past its `expires_at` reads as inactive without anything having swept it.

## Response `200`

The current state of the kill switch.

- AgentKillSwitch: # AgentKillSwitch Object ### Description The org-level agent kill switch, and the activation that is in force or last was. `active` is what matters; the rest is the record of how it got that way. An activation is in force only while it has not been deactivated AND `expires_at` is still in the future, and that is evaluated on every read - so `active` can be `false` on a row that was never explicitly turned off. Everything below `active` describes the LATEST activation whether or not it is still in force, so an admin reading an inactive switch can still see who last turned it on and when it ended.
  - `active` boolean, required: Whether agent tool calls are being denied right now. This is the field to read; it already accounts for expiry.
  - `activated_at` string, date-time: When the latest activation was turned on. Absent if it never has been.
  - `activated_by_user_id` string, uuid: The admin who turned it on. Absent when that user has since been hard-deleted - the activation record outlives them deliberately.
  - `expires_at` string, date-time: When the latest activation stops denying on its own. In the past for an activation that already ran out.
  - `deactivated_at` string, date-time: When the latest activation was turned off before its expiry, either by an admin or by being superseded. Absent when it ended at `expires_at`, or has not ended.
  - `reason` string: The admin's stated reason. Not an internal note - it is shown to the developer whose tool call is denied, in their own terminal.

## Other responses

- `403`: The caller is not an admin, or the agent kill switch is not enabled for this organization.

## Changes

- **2026-10-22** `8fce5da23873`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/opal/apis/opal-api/changes/agent-kill-switch/get.md)

---

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