---
title: "GET /settings/relay-overview"
method: GET
path: "/settings/relay-overview"
tags: ["settings"]
---

# GET /settings/relay-overview

`GET /settings/relay-overview`

## Request

- The document declares no server URL.
- Auth: one of:
  - API key in query parameter `auth`
  - API key in header `Authorization`

## Response `200`

Engine-owned built-in and custom relay overview

- RelayOverviewEnvelope: Canonical success envelope: `{ "data": T, "ts": <unix millis i64> }`. `ts` is `chrono::Utc::now().timestamp_millis()`, set in the webserver handler via [`ApiEnvelope::now`] (the contract carries only the type + the clock helper, not a hard dependency on when the handler reads the clock). `rename_all = "camelCase"` is a no-op for the single-word fields here but is declared for forward-compat. IMPORTANT (utoipa v4): every concrete `ApiEnvelope<X>` that needs a named OpenAPI component is declared in the `#[aliases(...)]` block below. Add a new alias line whenever a new payload type needs enveloping. NEVER register the bare `ApiEnvelope` in `components(schemas(...))` — utoipa errors on a bare generic, and an un-aliased generic inlines an anonymous schema.
  - `data` RelayOverviewDto, required: Engine-owned relay overview: built-in entries first, then custom entries.
    - `appliedMode` 'builtIn' | 'custom' | 'disabled': Relay routing implied by settings. Priority: `disabled` (LAN-only) over `custom` (replaces the built-in list) over `builtIn`.
    - `changePending` boolean, required: Saved settings differ from the running node.
    - `entries` RelayOverviewEntryDto[], required
      - `credentialConfigured` boolean, required: Custom entries only; the credential value is never returned.
      - `inEffect` boolean, required
      - `regionId` string, nullable: Stable region id of a built-in relay (`na-east`, `na-west`, `eu`, `asia-pacific`); unknown future ids must be rendered as the URL.
      - `source` 'builtIn' | 'custom', required: Where a relay overview entry comes from.
      - `url` string, required
    - `savedMode` 'builtIn' | 'custom' | 'disabled', required: Relay routing implied by settings. Priority: `disabled` (LAN-only) over `custom` (replaces the built-in list) over `builtIn`.
  - `ts` integer, required: Server time when the response was built (unix epoch milliseconds).

## Other responses

- `500`: Relay overview query failed
- `503`: Credential storage unavailable

## Changes

- **2026-10-15** `4c664cabd0c5`: 2 info
  - added the optional property `requestId` to the response with the `500` status
  - added the optional property `requestId` to the response with the `503` status
- **2026-10-02** `4e7503d3cc2c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/uniclipboard/apis/uniclipboard-daemon-api/changes/settings/relay-overview/get.md)

---

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