---
title: "Get Robot App Lock Status"
method: GET
path: "/api/daemon/robot-app-lock-status"
---

# Get Robot App Lock Status

`GET /api/daemon/robot-app-lock-status`

Return the current state of the robot's managed-app lock.

The daemon's single source of truth for which managed app (if any)
currently holds the robot:

- ``free``: no managed app holds the slot.
- ``local_app``: a Python app launched via AppManager is running.
  ``holder_name`` is the app name.
- ``remote_session``: a remote WebRTC client is connected via the
  central signaling relay. ``holder_name`` is a generic ``"remote"``
  placeholder (the real consumer app name lives on the central
  server and is surfaced via its own ``/api/robot-status``).

Note that SDK clients talking to the daemon directly bypass this
lock; it only reflects the two *managed* app entry points.

Intended for UI layers (desktop app, dashboard) that want to render
a busy/free indicator without trying to open a session.

## Response `200`

Successful Response

- RobotAppLockStatus — Snapshot of the lock state, suitable for JSON serialization. Returned by :meth:`RobotAppLock.status` and by the ``GET /api/daemon/robot-app-lock-status`` endpoint.
  - `state` 'free' | 'local_app' | 'remote_session', required — Lock state enum. Values are stable strings suitable for serialization.
  - `holder_name` string, nullable

---

[API](https://skmtc.net/pollen-robotics/apis/reachy-mini-rest-api.md) · [All operations](https://skmtc.net/pollen-robotics/apis/reachy-mini-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pollen-robotics/reachy-mini-rest-api/versions/9843f2902e88/schema)
