---
title: "Trip circuit breaker (emergency stop)"
method: POST
path: "/api/v1/circuit-breaker/trip"
tags: ["Circuit Breaker"]
---

# Trip circuit breaker (emergency stop)

`POST /api/v1/circuit-breaker/trip`

## Request

- Base URL: `https://agent.getaxonflow.com`
- URL: `https://agent.getaxonflow.com/api/v1/circuit-breaker/trip`
- Auth: none declared. Required headers: `Authorization`
- TypeScript: <https://skmtc.dev/getaxonflow/apis/axonflow-agent-api/docs/api/v1/circuit-breaker/trip/post.ts> (a function with typed inputs; its response is checked against the schema)

Immediately halt matching AI operations for the organization
(EU AI Act Article 14). Also exposed as the alias
`POST /api/v1/emergency-stop`.

Identity comes from headers stamped by the auth middleware:
`X-Org-ID` (falls back to `X-Tenant-ID`) selects the org;
`X-User-ID` is **required** for the Article 14 audit trail
(400 when missing). `X-User-Email` is recorded when present.

**Enterprise only** — community builds register no circuit-breaker
routes (404).

## Headers

- `Authorization` string, required

## Request body

- CircuitBreakerTripRequest: Request body for trip / emergency-stop. Org and user identity come from the `X-Org-ID` (or `X-Tenant-ID`) and `X-User-ID` headers, not the body. Source of truth: `platform/agent/circuitbreaker/handler.go` (TripRequest).
  - `scope` 'global' | 'tenant' | 'client' | 'policy': Blast radius of the stop
  - `scope_id` string: Required for non-global scopes (tenant/client/policy ID)
  - `reason` 'manual' | 'policy_violation' | 'risk_level' | 'error_rate'
  - `comment` string: Free-text audit-trail comment
  - `duration_minutes` integer: Auto-expire after N minutes; 0 or omitted = indefinite

## Response `201`

Circuit tripped — matching requests are now blocked

- object
  - `success` boolean
  - `data` object
    - `circuit_id` string
    - `state` string
    - `scope` string
    - `scope_id` string
    - `tripped_at` string, date-time
    - `expires_at` string, date-time
    - `message` string

## Other responses

- `400`: Missing X-Org-ID/X-User-ID header, invalid JSON, invalid scope, or missing scope_id for a non-global scope

---

[API](https://skmtc.dev/getaxonflow/apis/axonflow-agent-api.md) - [All operations](https://skmtc.dev/getaxonflow/apis/axonflow-agent-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getaxonflow/apis/axonflow-agent-api/revisions/34d30fcb7fa1?raw)
