Endpoints
Get a lock
Gets one active lock owned by the API key organization. Requires `locks:read`.
GET /v1/locks/{lockId}
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
lockId | path | Yes | string | The public lock ID returned by the list operation. |
Request examples
Set MYREMOTELY_BASE_URL to the environment you intend to call.
LOCK_ID='lock_demo_01'
curl --fail-with-body \
--header "x-api-key: $MYREMOTELY_API_KEY" \
"$MYREMOTELY_BASE_URL/v1/locks/$LOCK_ID"const baseUrl = process.env.MYREMOTELY_BASE_URL
const apiKey = process.env.MYREMOTELY_API_KEY
const lockId = 'lock_demo_01'
if (!baseUrl || !apiKey) throw new Error('API base URL and key are required')
const response = await fetch(
`${baseUrl}/v1/locks/${encodeURIComponent(lockId)}`,
{ headers: { 'x-api-key': apiKey } },
)
if (!response.ok) throw new Error(`Lock detail failed: ${response.status}`)
const data = await response.json()Responses
200 Safe lock details. Provider identifiers, passcodes, notes, and instructions are omitted.
application/json
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The public lock ID returned by the list operation. |
name | string | Yes | The display name of the lock. |
connectivity | string | Yes | Cached connectivity. This is not the live locked or unlocked state. sleeping: the lock wakes on a timer and takes commands only while awake. |
batteryLevel | integer | Yes | Battery charge percentage from 0 to 100. |
lastOnlineAt | anyOf | Yes | The time when MyRemotely last saw the lock online, or null if unknown. |
units | array | Yes | Units bound to this lock and owned by the authenticated organization. |
createdAt | string<date-time> | Yes | The time when the lock record was created. |
updatedAt | string<date-time> | Yes | The time when the lock record was last updated. |
Unit fields
| Field | Meaning |
|---|---|
id | Public unit ID. |
name | Unit display name, or null when no name is set. |
{
"id": "lock_demo_01",
"name": "Front door",
"connectivity": "online",
"batteryLevel": 87,
"lastOnlineAt": "2026-09-16T12:00:00.000Z",
"units": [
{
"id": "unit_demo_01",
"name": "Apartment 1"
}
],
"createdAt": "2026-09-15T12:00:00.000Z",
"updatedAt": "2026-09-16T12:00:00.000Z"
}401 The API key is missing, invalid, expired, or revoked.
application/problem+json
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | A stable documentation URI for this problem. |
title | string | Yes | A short problem title. |
detail | string | Yes | A safe explanation of this occurrence. |
code | string | Yes | A stable machine-readable problem code. |
requestId | string | Yes | The request ID to include when contacting MyRemotely support. |
status | number | Yes | The HTTP status code. |
{
"type": "https://app.myremotely.ai/en/docs/errors#invalid-api-key",
"title": "Unauthorized",
"status": 401,
"detail": "Provide a valid API key.",
"code": "invalid_api_key",
"requestId": "request_demo_01"
}403 The API key does not have the locks:read scope. | The public API channel or the operation's owning feature does not allow this use.
application/problem+json
"string"404 The lock is missing, retired, or owned by another organization.
application/problem+json
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | A stable documentation URI for this problem. |
title | string | Yes | A short problem title. |
detail | string | Yes | A safe explanation of this occurrence. |
code | string | Yes | A stable machine-readable problem code. |
requestId | string | Yes | The request ID to include when contacting MyRemotely support. |
status | number | Yes | The HTTP status code. |
{
"type": "https://app.myremotely.ai/en/docs/errors#lock-not-found",
"title": "Not found",
"status": 404,
"detail": "The requested lock was not found.",
"code": "lock_not_found",
"requestId": "request_demo_01"
}429 The API key request budget is exhausted.
application/problem+json
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | A stable documentation URI for this problem. |
title | string | Yes | A short problem title. |
detail | string | Yes | A safe explanation of this occurrence. |
code | string | Yes | A stable machine-readable problem code. |
requestId | string | Yes | The request ID to include when contacting MyRemotely support. |
status | number | Yes | The HTTP status code. |
{
"type": "https://app.myremotely.ai/en/docs/errors#rate-limited",
"title": "Too many requests",
"status": 429,
"detail": "Try the request again later.",
"code": "rate_limited",
"requestId": "request_demo_01"
}500 MyRemotely could not complete the request.
application/problem+json
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | A stable documentation URI for this problem. |
title | string | Yes | A short problem title. |
detail | string | Yes | A safe explanation of this occurrence. |
code | string | Yes | A stable machine-readable problem code. |
requestId | string | Yes | The request ID to include when contacting MyRemotely support. |
status | number | Yes | The HTTP status code. |
{
"type": "https://app.myremotely.ai/en/docs/errors#internal-error",
"title": "Internal error",
"status": 500,
"detail": "The request could not be completed.",
"code": "internal_error",
"requestId": "request_demo_01"
}Last updated Nov 3, 2026