---
title: "GET /search/status"
method: GET
path: "/search/status"
tags: ["search"]
---

# GET /search/status

`GET /search/status`

Returns the current search index availability snapshot (coordinator status + index meta timestamps).
Returns HTTP 423 if the encryption session is locked.

Already on `{ data, ts }`; the bespoke wrapper is replaced by the canonical
`ApiEnvelope<SearchStatusData>` (identical JSON, not a wire change).

## Response `200`

Search index availability snapshot

- SearchStatusEnvelope — 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` SearchStatusData, required — Search index availability snapshot — the `ApiEnvelope` payload for `GET /search/status` (ADR-008 §0.1).
    - `lastRebuildCompletedAtMs` integer, nullable — Millisecond timestamp of the last completed rebuild (from `SearchIndexMeta`).
    - `lastRebuildStartedAtMs` integer, nullable — Millisecond timestamp of the last rebuild start (from `SearchIndexMeta`).
    - `reason` string, nullable — Optional reason code (present when rebuilding or unavailable).
    - `state` string, required — One of: "ready", "rebuilding", "unavailable"
  - `ts` integer, required — Server time when the response was built (unix epoch milliseconds).

## Other responses

- `423` — Encryption session is locked
- `500` — Internal server error
- `503` — Search index unavailable

---

[API](https://skmtc.net/uniclipboard/apis/uniclipboard-daemon-api.md) · [All operations](https://skmtc.net/uniclipboard/apis/uniclipboard-daemon-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/uniclipboard/uniclipboard-daemon-api/versions/a5d29889448a/schema)
