---
title: "Per-channel safety overview"
method: GET
path: "/api/account-safety"
tags: ["Account safety"]
---

# Per-channel safety overview

`GET /api/account-safety`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/account-safety`
- Auth: one of:
  - API key in cookie `luca.session_token`
  - API key in header `x-api-key`
  - HTTP bearer

One row per connected channel account, with the safety state Luca is working under: the rate-limit posture and when we last probed the account.

**API key scopes:** `safety:read`.

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- AccountSafetyOverviewResponse
  - `accounts` object[], required
    - `channelAccount` object, required
      - `id` string, uuid, required
      - `channel` 'telegram' | 'instagram' | 'messenger' | 'whatsapp', required
      - `externalAccountId` string, required
      - `status` string, required
      - `connectedAt` string, required
    - `safety` object, nullable, required
      - `status` string, required
      - `signals` unknown
      - `messagesSent24h` integer, required
      - `lastProbeAt` string, nullable, required
      - `updatedAt` string, required
      - `readiness` object, nullable
        - `version` 1, required
        - `status` 'ready' | 'degraded' | 'blocked' | 'unknown', required
        - `checks` object[], required
          - `key` string, required
          - `status` 'pass' | 'warn' | 'fail' | 'unknown', required
          - `source` 'provider' | 'local' | 'cached', required
          - `detail` string
        - `checkedAt` string, required

## Other responses

- `401`: unauthorized
- `429`: rate limited
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
