NAV
json

Introduction

This document contains all necessary resources to consume the RemoteLock RESTful API, meaning that a client application is able authenticate a user, fetch, create, update, delete and perform other actions via HTTP with objects in JSON representation.

Production environment

Changelog

Getting Started

Introduction

This tutorial is a step-by-step configuration of an application that integrates with the RemoteLock API to manage access to rental properties or rooms. In the next steps we will go over:

Throughout this tutorial you will see links to different parts of the RemoteLock API documentation. This documentation is more detailed and can be used for troubleshooting or if you have a different use case from what's presented here.

What you're going to need

Creating an OAuth Application

Create Account

Before you can create an OAuth Application, first create an account on the RemoteLock Connect Portal. Enter your user information on Step 1, then select the Basic Plan option on Step 2. When presented with payment information, you can select “Skip” to complete account creation.

Skip button to the left of Submit & Finish

Setup an OAuth Application

Now that an account is created, send an e-mail to [email protected] requesting API access for your account. Once API access is enabled, you can go to the developer portal, click on "New OAuth Application" and fill the form:

After submitting the form, you will be redirected to a page with your generated Client ID and Client Secret. These are the credentials for your integration, so make sure you take note and keep them in a secure place. For security reasons, this is the only time the client secret is visible.

Authenticating a User

Generating an Authorization Code

The RemoteLock API supports two of the OAuth 2.0 grant types: Authorization Code and Client Credentials. On this example, since you want your users to authorize your application to manage their locks, we will use the Authorization Code Grant. You can check the Authentication Section of the documentation for more details on the two types of grants.

With your OAuth application created, your users can be redirected to the authorization URL to allow your application to access their resources. The URL must be formatted as below:

https://connect.remotelock.com/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&response_type=code

In the above example, you will be replacing CLIENT_ID and REDIRECT_URI with values from the OAuth Application you just created. If you view your application on the developer portal, you will see an "Authorize" button next to the redirect URI that takes you to a generated URL using the above format. If you have created a separate account to represent a customer, you should go to that URL using an incognito / private mode, so you can sign in using that account and not your current one.

Once you go to this URL, you will either see a sign in page or, if you're already logged in, a list of accounts. Unless you have access to shared accounts, this list should only have one pre-selected option, so all you need to do is click "Authorize". If our Redirect URI was set to a URL on an application, that is where we would've been taken now, but since we've used urn:ietf:wg:oauth:2.0:oob. What you should see is a JSON result like so:

{"code":"a1b2...d4e5","state":""}

The value in the code attribute is what we call your authorization code, we'll use it to generate a token to access a user's data.

Generating a Token

To generate a token, we must send the authorization code in a POST request like the following:

curl -X POST \
  -d code=$AUTHORIZATION_CODE \
  -d client_id=$CLIENT_ID \
  -d client_secret=$CLIENT_SECRET \
  -d redirect_uri=urn:ietf:wg:oauth:2.0:oob \
  -d grant_type=authorization_code \
  'https://connect.remotelock.com/oauth/token'

Replacing $AUTHORIZATION_CODE, $CLIENT_ID and $CLIENT_SECRET with their respective values. The response should look like the following:

{
  "access_token": "acc3...063n",
  "token_type": "bearer",
  "expires_in": 7199,
  "refresh_token": "13f1...ab14",
  "created_at": 1531403248
}

The value in the access_token attribute of that response is what we'll use as authorization in the API requests to manipulate that user's resources in the next steps.

Retrieving the List of Locks

The next step is to retrieve the list of locks in the account so that your user can assign them to Rooms/Units in your application. To fetch that list, use the following request:

curl -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.lockstate+json; version=1' \
  'https://api.remotelock.com/devices'

Replacing $ACCESS_TOKEN in the authorization header with the value we generated in the previous step. Notice how an additional header is required to specify the API version we're using. See the API Versioning section of the documentation for more details. The response should look like this:

{
  "data": [
    {
      "type": "lock",
      "attributes": {
        "name": "My Lock",
        "heartbeat_interval": 1200,
        // ...
        "model_id": "1d99dded-91ce-47ed-90e4-84389e783a92",
        "location_id": "38e651b3-9944-4539-be3b-13203b61d638"
      },
      "id": "053994ef-ceed-455a-a5f7-7962261a722d",
      "links": {
        // ...
      },
      "meta": {
        // ...
      }
    },
    // ...
  ],
  "meta": {
    // ...
  }
}

In the response, each entry in the data array is a Device. The most important value we need to consider here is the id and type, as we will need them to assign an accessible when granting access, so this is what your application should keep track of.

If you have many devices of different types, or if your application's flow will only use specific device types, you can use query string parameters on the URL to filter down the results, like so:

curl -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.lockstate+json; version=1' \
  'https://api.remotelock.com/devices?type[]=lock&type[]=zwave_lock&type[]=resort_lock'

The above example changes the URL to add a filter on type, to return only locks, zwave_locks and resort_locks. You can check our documentation for more information on Filtering and Listing Devices.

For more information on the JSON structure of requests and responses, refer to the JSON Structure section of the documentation.

The next section of the tutorial is specific to connected locks, if you need to grant access to ResortLocks (algorithmic code locks), refer to the Working with ResortLocks section in the end of the tutorial.

Granting Door Access to a User

Granting access is done in two steps:

  1. Create an Access User (we'll also create an Access Guest in the next step) with a credential that can be used on the lock.
  2. Grant that Access User access to the lock.

Step 1: Create an Access User

To create an Access User, send the following POST request:

curl -X POST \
  -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.lockstate+json; version=1' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "access_user",
    "attributes": {
      "name": "Example User",
      "generate_pin": true
    }
  }' \
  'https://api.remotelock.com/access_persons'

Replacing $ACCESS_TOKEN in the authorization header with the value we generated in the authentication step. Keep in mind that POST and PUT requests require an additional Content-Type: application/json header.

You will get a response that looks like this:

{
  "data": {
    "type": "access_user",
    "attributes": {
      "name": "Example User",
      "pin": "2155",
      // ...
      "created_at": "2018-07-12T21:05:30Z",
      "updated_at": "2018-07-12T21:05:30Z"
    },
    "id": "1864e7e5-2475-44ab-9dfe-2912469fc1b2",
    "links": {
      // ...
    }
  }
}

Notice that since we used "generate_pin": true, a PIN was generated. You could set your own PIN, along with other options for users, all listed in the documentation for creating an access user.
The most important value in this response is the id. We'll be using it, together with the lock's id and type we have from the previous step to grant this newly created user access to our lock.

Step 2: Grant Access

To grant access, send the following POST request:

curl -X POST \
  -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.lockstate+json; version=1' \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": {
      "accessible_id": "053994ef-ceed-455a-a5f7-7962261a722d",
      "accessible_type": "lock"
    }
  }' \
  'https://api.remotelock.com/access_persons/1864e7e5-2475-44ab-9dfe-2912469fc1b2/accesses'

There are a few more things to replace on this step:

For more options and details, refer to the documentation section on granting access.

The response will look like this:

{
  "data": {
    "type": "access_person_access",
    "attributes": {
      // ...
      "access_person_id": "1864e7e5-2475-44ab-9dfe-2912469fc1b2",
      "access_person_type": "access_user",
      "accessible_id": "053994ef-ceed-455a-a5f7-7962261a722d"
    },
    "id": "c5d4ef02-1538-4924-990e-21e40dd0d5a6",
    "links": {
      // ...
    }
  }
}

Your user is all set! The next time the lock wakes up, this new code will be synchronized and usable to lock/unlock your lock.

Granting Door Access to a Guest

This step is very similar to the previous one. However, in step 1 you'll be creating an Access Guest instead of an Access User. The creation of an Access Guest also requires two additional attributes: starts_at and ends_at, to set the time period during which that Guest has access.

Step 1: Create an Access Guest

To create an Access Guest, send the following POST request:

curl -X POST \
  -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.lockstate+json; version=1' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "access_guest",
    "attributes": {
      "starts_at": "2020-01-02T16:04:00",
      "ends_at": "2021-01-02T16:04:00",
      "name": "My Guest",
      "pin": "4567"
    }
  }' \
  'https://api.remotelock.com/access_persons'

Replacing $ACCESS_TOKEN in the authorization header with the value we generated in the authentication step. Feel free to change the starts_at and ends_at values. Notice that the time format on those do not include a timezone. The effective timezone is the one configured at the lock. You will get a response that looks like this:

{
  "data": {
    "type": "access_guest",
    "attributes": {
      "name": "My Guest",
      "pin": "4567",
      // ..
      "starts_at": "2020-01-02T16:04:00",
      "ends_at": "2021-01-02T16:04:00"
    },
    "id": "036aa265-d008-4c1a-942d-905e7f2ec3e2",
    "links": {
      // ...
    }
  }
}

The most important value in this response is the id. We'll be using it, together with the lock's id and type we have from the previous step to grant this newly created user access to our lock.

For more information see the documentation section for creating an access guest.

Step 2: Grant access

Now all you need to do is grant access using that Access Guest's id, just like you did before with the Access User. To grant access, send the following POST request:

curl -X POST \
  -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.lockstate+json; version=1' \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": {
      "accessible_id": "053994ef-ceed-455a-a5f7-7962261a722d",
      "accessible_type": "lock"
    }
  }' \
  'https://api.remotelock.com/access_persons/036aa265-d008-4c1a-942d-905e7f2ec3e2/accesses'

Replacing $ACCESS_TOKEN in the authorization header with the value we generated in the authentication step. And the response will look like this:

{
  "data": {
    "type": "access_person_access",
    "attributes": {
      // ...
      "accessible_type": "lock",
      "access_person_id": "036aa265-d008-4c1a-942d-905e7f2ec3e2",
      "access_person_type": "access_guest",
      "accessible_id": "053994ef-ceed-455a-a5f7-7962261a722d"
    },
    "id": "6786a08e-665e-4722-a68f-a6b41fa129a0",
    "links": {
      // ...
    }
  }
}

Your guest is all set! The next time the lock wakes up, this new code will be synchronized and usable to lock/unlock your lock within that specified time period.

Webhook Notification Subscriptions (Optional)

Your application might need to be informed of events as they happen in the user's account, like when one of the codes is synchronized with a lock, or when access is granted or denied. The best way to do that is by creating a webhook notification subscription, so that as events happen, a URL in your application is sent data about the event for your application to act upon. In this example, you will create a webhook that will be triggered when an access is synchronized with the lock you've selected previously.

Create a Webhook Notification Subscriber

The first step is to create a Notification Subscriber. Send the following POST request:

curl -X POST \
  -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.lockstate+json; version=1' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "webhook_notification_subscriber",
    "attributes": {
      "active": true,
      "name": "My webhook",
      "url": "https://myrentalapplication.com/my_webhook_example",
      "content_type": "json",
      "secret": "oRWQWqQ0sn5xugpl"
    }
  }' \
  'https://api.remotelock.com/notification_subscribers'

Where the url must be a valid endpoint of your application able to handle this request. Make sure you review the requirements, along with a few more options for configuring webhooks in the documentation section about creating a webhook notification subscriber. The response should look like this:

{
  "data": {
    "type": "webhook_notification_subscriber",
    "attributes": {
      "name": "My webhook",
      "url": "https://myrentalapplication.com/my_webhook_example",
      "content_type": "json",
      "secret": "oRWQWqQ0sn5xugpl",
      "active": true,
      "created_at": "2018-07-13T14:37:17Z",
      "updated_at": "2018-07-13T14:37:17Z"
    },
    "id": "df4e347b-b885-47da-b627-59d0b4b47807",
    "links": {
      // ...
    }
  }
}

Create a Notification Subscription

With the Subscriber configured, you now can associate it with event types and a publisher. In this case we'll create a Notification Subscription for the access_person_synced event using the lock id and type as a publisher. Send the following POST request:

curl -X POST \
  -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.remotelock+json; version=1' \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": {
      "events": [
        {
          "event_type": "access_person_synced"
        }
      ],
      "publisher_type": "lock",
      "publisher_id": "053994ef-ceed-455a-a5f7-7962261a722d",
      "subscriber_type": "webhook_notification_subscriber",
      "subscriber_id": "df4e347b-b885-47da-b627-59d0b4b47807"
    }
  }' \
  'https://api.remotelock.com/notification_subscriptions'

Don't forget to replace $ACCESS_TOKEN with your generated value. Notice that the publisher_idand publisher_type here are the values from our lock, and the subscriber_id and subscriber_type, values for the webhook subscriber created in the previous step. It's worth mentioning that multiple event types can be configured, and the publisher can be a broader scope, like a Location or even the entire Account. For more details, see the documentation section on creating notification subscriptions. You will get a response similar to the one below:

{
  "data": {
    "type": "notification_subscription",
    "attributes": {
      "events": [
        {
          "event_type": "access_person_synced"
        }
      ],
      "created_at": "2018-07-13T14:54:11Z",
      "updated_at": "2018-07-13T14:54:11Z",
      "subscriber_id": "df4e347b-b885-47da-b627-59d0b4b47807",
      "subscriber_type": "webhook_notification_subscriber",
      "publisher_id": "053994ef-ceed-455a-a5f7-7962261a722d",
      "publisher_type": "lock"
    },
    "id": "09491f96-da50-4ae1-8d29-390e5397d5ad",
    "links": {
      // ...
    }
  }
}

Now, whenever that event happens on that lock, a POST request will be sent to the configured URL with a body similar to the one below:

{
  "data": {
    "type": "access_person_synced_event",
    "attributes": {
      "source": "user",
      "status": "succeeded",
      "time_zone": "America/Denver",
      "occurred_at": "2018-07-10T18:15:32Z",
      // ...
      "publisher_id": "053994ef-ceed-455a-a5f7-7962261a722d",
      "publisher_type": "lock",
      "associated_resource_id": "1864e7e5-2475-44ab-9dfe-2912469fc1b2",
      "associated_resource_type": "access_user"
    },
    "id": "a152915c-3d12-480b-8d68-baebbfa1264c",
    "links": {
      // ...
    }
  }
}

Working with ResortLocks (Optional)

The process for granting access to ResortLocks works differently from Wi-Fi connected locks, as they use algorithmic codes instead of synchronizing codes over Wi-Fi. If you have a registered ResortLock, the list of devices in the response from the /devices endpoint should include an object similar to this one in the data array:

{
  "type": "resort_lock",
  "attributes": {
    "name": "My ResortLock",
    // ...
  },
  "id": "ed1b7a1b-0dc5-4081-8658-728d96ed0dde",
  "links": {
    // ...
  }
}

To create a guest for this ResortLock, send the following POST request:

curl -X POST \
  -H 'Authorization: Bearer $ACCESS_TOKEN' \
  -H 'Accept: application/vnd.remotelock+json; version=1' \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": {
      "resort_lock_id": "ed1b7a1b-0dc5-4081-8658-728d96ed0dde",
      "name": "My ResortLock Guest",
      "starts_at": "2020-01-02T13:00:00",
      "ends_at": "2021-01-02T16:00:00"
    }
  }' \
  'https://api.remotelock.com/resort_lock_guests'

Replacing $ACCESS_TOKEN in the authorization header with the value we generated in the authentication step, and the value for resort_lock_id with the id for your ResortLock. This guest will only have access between the times in starts_at and ends_at, and those should not use minutes or seconds - any value here will be converted to 0. Refer to the Resort Lock Guests documentation section for more information.

The response will look like this:

{
  "data": {
    "type": "resort_lock_guest",
    "attributes": {
      "name": "My ResortLock Guest",
      "pin": "123456789012",
      "starts_at": "2020-01-02T13:00:00",
      "ends_at": "2021-01-02T16:00:00",
      // ...
      "resort_lock_id": "ed1b7a1b-0dc5-4081-8658-728d96ed0dde"
    },
    "id": "f66610b0-a73f-4cee-9ba5-eafd73f80e4d",
    "links": {
      // ...
    }
  }
}

The PIN for that guest is the pin value in the response. In the above example, 123456789012.

Authentication

RemoteLock uses OAuth 2.0 to authenticate users in applications installed in mobile devices or running in external servers. The supported OAuth flows:

The RemoteLock user credentials are only accepted in RemoteLock sign in page, which generates an Authorization Code for an access token request.

The access token for this flow gives access to the user resources that signed in using your Application.

Only the Application ID and Secret are used to authorize access to the API.

The access token for this flow only allows access to resources associated with the application's account.

Once a user is authorized, every API request must include a valid access token.

The following OAuth 2.0 endpoints are available under https://connect.remotelock.com.

These are needed for OAuth2 client library you'll be using:

GET       /oauth/authorize
POST      /oauth/token

Choose an OAuth2 client library for your language

To simplify integration with RemoteLock it is strongly recommended to use one of the open source OAuth2 client libraries available in your language. The library will handle many details described in this documentation.

Since OAuth2 is an open protocol a quick Google search will give you at least a couple options. Here are some examples:

Setup a new Application

  1. Send an email to [email protected] requesting API Access for your account.
  2. Once API access is enabled for your account, go to the developer portal and sign in to manage your OAuth Applications.

1. Authorization Code Grant - RFC 6749-Section 4.1

1.1. Generating the initial Authorization Code

Whenever you need access to a user's account for the first time, the application should load the Authorize URL in a browser or webview. The user will enter the credentials and the server will redirect to the Callback URL so that the application can extract the authorization code and then generate an access token.

Example:

Let your Application settings be:

Application ID: abc
Secret: xyz
Callback URL: http://your.server/oauth_callback

The Authorize URL should be:

https://connect.remotelock.com/oauth/authorize?client_id=a1b2c3&response_type=code&redirect_uri=http://your.server/oauth_callback

Your app should load the above URL in a browser and the user will enter credentials on it. Once the authentication succeeds, the server will redirect the request to:

http://your.server/oauth_callback?code=123

Where 123 is the Authorization Code that is valid for 10 minutes, which is enough time to your application request the token for the first time. Your application must be able to handle this URL in order to capture this code so that it can obtain the OAuth Token.

1.2. Generating an OAuth Token

POST /oauth/token
Host: connect.remotelock.com
Content-Type: application/x-www-form-urlencoded

code=123&
client_id=abc&
client_secret=xyz&
redirect_uri=http://your.server/oauth_callback&
grant_type=authorization_code
{
  "access_token": "1/4cc3ss-t0k3n",
  "expires_in": 7200,
  "token_type": "Bearer",
  "refresh_token": "1/r3fR3sH-t0k3n"
}

1.3. Refresh Token

Each access token expires in 7200 seconds (2 hours). The access token JSON response contains a refresh_token that can be used to issue a new access_token without asking for user authentication again.

POST /oauth/token
Host: connect.remotelock.com
Content-Type: application/x-www-form-urlencoded

client_id=abc&
client_secret=123&
refresh_token=1/r3fR3sH-t0k3n&
grant_type=refresh_token
{
  "access_token": "1/N3w-4cc3ss-T0k3n",
  "expires_in": 7200,
  "refresh_token": "1/n3w-r3fR3sH-t0k3n",
  "token_type": "Bearer"
}

Your application should store both Access Token and Refresh Token so that it can access the user account when the user is offline or the application is running in background.

Whenever an Access Token expires and you use the Refresh Token to request a new Access Token, the response includes a new Refresh Token, meaning the previous one became invalid, and then your application should store the new Access Token and Refresh Token replacing the previous (expired) ones.

Here is an example of this flow:

  1. Customer authorizes and you get the initial Access Token A as well as a Refresh Token X
  2. You access customer data using Access Token A
  3. After 2 hours the Access Token A expires, but you need to access customer data and you notice that Access Token A is expired
  4. You make a request to issue a new Access Token based on the Refresh Token X and you get a new Access Token B and a new Refresh Token Y. At this point, the Refresh Token X becomes invalid since it was just used
  5. Repeat from step 2 replacing A with B and X with Y

The user can revoke the authorization to your app at anytime, so the Refresh Token will become invalid and your app will need to ask for user authorization again.

2. Client Credentials Grant - RFC 6749-Section 4.4

In this flow, only your account resources are available via API. For this reason, the only credentials required are the Application ID and Secret.

Let your Application settings be:

Application ID: abc
Secret: xyz

2.1. Generating an OAuth Token

POST /oauth/token
Host: connect.remotelock.com
Content-Type: application/x-www-form-urlencoded

client_id=abc&
client_secret=xyz&
grant_type=client_credentials
{
  "access_token": "1/4cc3ss-t0k3n",
  "expires_in": 7200,
  "token_type": "Bearer",
}

Notice that this flow does not include a Refresh Token, meaning that this same request must be done when the access token expires.

Making requests with an OAuth Token

Just make a GET request using a valid access token. Example:

GET /locations
Host: api.remotelock.com
Accept: application/vnd.lockstate.v1+json
Authorization: Bearer 1/4cc3ss-t0k3n

Revoking an OAuth Access Token

Send the following POST request to immediately revoke a token:

POST /oauth/revoke
Host: connect.remotelock.com
Content-Type: application/x-www-form-urlencoded

client_id=abc&
client_secret=xyz&
token=1/4cc3ss-t0k3n

JSON Structure

Overview

JSON request structure

The HTTP methods POST/PUT/PATCH require the header Content-Type: application/json and the request body must contain a valid JSON structure.

Other HTTP methods accept empty or missing Content-Type header since the request body is ignored.

Example JSON request structure:

{
  "attributes": {
    "body": "Very informative article"
  }
}

JSON response structure

JSON response structure for a collection

{
  "data": [
    {
      "type": "article",
      "id": "3",
      "attributes": {
        "title": "JSON API paints my bikeshed!",
        "body": "The shortest article. Ever.",
        "author_id": 1,
        "created_at": "2015-07-23T18:51:11Z",
        "updated_at": "2015-07-23T18:51:11Z"
      },
      "links": {
        "self": "https://api.remotelock.com/articles/3",
        "author": "https://api.remotelock.com/authors/1",
        "comments": "https://api.remotelock.com/comments"
      }
    },
    {
      "type": "article",
      "id": "5",
      "attributes": {
        "title": "Ruby on Rails framework",
        "body": "RoR is 10 years old!",
        "author_id": 1,
        "created_at": "2015-05-22T14:56:29Z",
        "updated_at": "2015-05-22T14:56:28Z"
      },
      "links": {
        "self": "https://api.remotelock.com/articles/3",
        "author": "https://api.remotelock.com/authors/1",
        "comments": "https://api.remotelock.com/comments"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 2,
    "total_pages": 7,
    "total_count": 14
  }
}

JSON response structure for a single resource

{
  "data": {
    "type": "article",
    "id": "3",
    "attributes": {
      "title": "JSON API paints my bikeshed!",
      "body": "The shortest article. Ever.",
      "author_id": 1,
      "created_at": "2015-07-23T18:51:11Z",
      "updated_at": "2015-07-23T18:51:11Z"
    },
    "links": {
      "self": "https://api.remotelock.com/articles/3",
      "author": "https://api.remotelock.com/authors/1",
      "comments": "https://api.remotelock.com/comments"
    }
  }
}

Errors

There are 2 types of error responses:

Resource errors

Resource errors are used to indicate an error happened for a resource you're trying to work with. For example: if an invalid configuration option is passed when updating a lock, the response will be a resource error.

Here's the example response when an error happens:

{
  "attributes": {
    "name": "",
    "age": 10
  },
  "errors": [{
    "attribute": "name",
    "messages": ["is empty"],
    "full_messages": ["name is empty"]
  }]
}

In case an error is not related to a particular attribute, the errors attribute value will be null.

{
  "attributes": {
    "name": "",
    "age": 10
  },
  "errors": [{
    "attribute": null,
    "messages": ["Subuser creation limit reached, please upgrade your account."],
    "full_messages": ["Subuser creation limit reached, please upgrade your account."]
  }]
}

General errors

General errors are used to describe application-wide errors. For example: the response contains general error if you try creating a lock but the account doesn't have a paid subscription.

Here's the example response:

{
  "message": "Please create a subscription",
  "type": "billing_subscription_required"
}

Pagination

Collection resources can be paginated using the data from meta top level key.

{
  "data": {
    //...
  },
  "meta": {
    "page": 1,
    "per_page": 2,
    "total_pages": 7,
    "total_count": 14
  }
}

On every endpoint that responds with a collection of resources, you can provide the following query parameters:

The pagination is limited to access up to 10,000 resources, which means the product page * per_page should not exceed that number.

Examples:

HTTP Status Codes

Request Method Response Outcome Response Status Code
GET Success 200
PUT/PATCH Success 200
POST Success 201
DELETE Success 204
ANY Malformed request 400
ANY Not permitted 401
ANY Payment required 402
ANY Expired/Invalid token 403
GET Not found 404
POST Duplicate resource 409
POST/PUT/PATCH/DELETE Validation error 422
ANY Unexpected server error 5xx

Filtering

Filter results by multiple ids

Supported in endpoints that return a collection of resources

Filter results by resource type

Supported in endpoints that return a collection of resources of multiple types

Filter results by association

Used to apply the id or type filter in a resource association
Example: To retrieve devices of the location a1b2
GET https://api.remotelock.com/devices?attributes[location_id]=a1b2

Sorting

Most endpoints that return a collection are sortable. Additionally, these endpoints usually have a default sort attribute. The documentation for each endpoint specifies the default sort attribute as well as other attributes that can be used for sorting (if any).

Query formats

Sort order

The default sort order for any attribute is "ascending". In order to get "descending" sort order prefix the attribute with hyphen (-).

Examples:

Examples

Versioning

Specifying API version

It is strongly recommended to explicitly specify the version. Specifying the version can be done:

If API version is not specified, the application will default to the latest version.

Changes

API version will increase only if there's a breaking change.

For example: if a single field is added to the resource, the version won't change as this is a non breaking change.

Rate Limiting

Currently, each account is limited to 120 requests/minute.

Each API response includes rate limiting related headers such as:

X-RateLimit-Limit: 120
X-RateLimit-Remaining: 15
X-RateLimit-Reset: 1452626187
Header Description
X-RateLimit-Limit The maximum number of requests that the account is allowed to make per minute.
X-RateLimit-Remaining The number of requests remaining in current rate limit window.
X-RateLimit-Reset UTC epoch seconds in which the current rate limit window will reset

Whenever the account has exceeded the rate limit, the request will be responded with status 429 (Too Many Requests) and the body will contain following JSON:

{
  "message": "Your account has exceeded the rate limit. Check the X-RateLimit-* headers."
}

Alternative

Rather than polling our API, we offer Webhook Notification Subscriptions to keep your application up to date.

Access Exceptions

Get all access exceptions

Request

Endpoint

GET /access_exceptions

GET /access_exceptions

Parameters

Name Description
sort Sortable attributes: created_at and name, default: created_at ascending

Response


200 OK
{
  "data": [
    {
      "type": "access_exception",
      "attributes": {
        "name": "Sunt consequatur laborum atque.",
        "dates": [
          {
            "start_date": "2016-11-24",
            "end_date": "2016-11-25"
          },
          {
            "start_date": "2015-12-25",
            "end_date": "2015-12-25"
          }
        ],
        "created_at": "2026-03-03T00:13:51Z",
        "updated_at": "2026-03-03T00:13:51Z"
      },
      "id": "e78e30b8-6b4c-44f5-a87a-b143d05f4c23",
      "links": {
        "self": "http://api.remotelock.dev/access_exceptions/e78e30b8-6b4c-44f5-a87a-b143d05f4c23"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 1,
    "total_pages": 1
  }
}

Get an access exception

Request

Endpoint

GET /access_exceptions/:id

GET /access_exceptions/eb79c189-4b77-4569-8487-8f3124decd3b

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "access_exception",
    "attributes": {
      "name": "Autem itaque ut et.",
      "dates": [
        {
          "start_date": "2016-11-24",
          "end_date": "2016-11-25"
        },
        {
          "start_date": "2015-12-25",
          "end_date": "2015-12-25"
        }
      ],
      "created_at": "2026-03-03T00:13:52Z",
      "updated_at": "2026-03-03T00:13:52Z"
    },
    "id": "eb79c189-4b77-4569-8487-8f3124decd3b",
    "links": {
      "self": "http://api.remotelock.dev/access_exceptions/eb79c189-4b77-4569-8487-8f3124decd3b"
    }
  }
}

Create an access exception

Request

Endpoint

POST /access_exceptions

POST /access_exceptions

Parameters

{
  "attributes": {
    "name": "Thanks Giving and Christmas",
    "dates": [
      {
        "start_date": "2016-11-24",
        "end_date": "2016-11-25"
      },
      {
        "start_date": "2015-12-25",
        "end_date": "2015-12-25"
      }
    ]
  }
}
Name Description
attributes[name] required Access exception name
attributes[dates] required [{ "start_date": "2016-01-01", "end_date": "2016-01-01" }, ...]

Response


201 Created
{
  "data": {
    "type": "access_exception",
    "attributes": {
      "name": "Thanks Giving and Christmas",
      "dates": [
        {
          "start_date": "2016-11-24",
          "end_date": "2016-11-25"
        },
        {
          "start_date": "2015-12-25",
          "end_date": "2015-12-25"
        }
      ],
      "created_at": "2026-03-03T00:13:52Z",
      "updated_at": "2026-03-03T00:13:52Z"
    },
    "id": "93e4bf89-e664-4c0e-83d2-ae9ce7746918",
    "links": {
      "self": "http://api.remotelock.dev/access_exceptions/93e4bf89-e664-4c0e-83d2-ae9ce7746918"
    }
  }
}

Update an access exception

Request

Endpoint

PUT /access_exceptions/:id

PUT /access_exceptions/44596efe-f31d-4e85-b4a6-edd83d06d3be

Parameters

{
  "attributes": {
    "name": "Thanks Giving",
    "dates": [
      {
        "start_date": "2016-11-24",
        "end_date": "2016-11-25"
      }
    ]
  }
}
Name Description
attributes[name] Access exception name
attributes[dates] required [{ "start_date": "2016-01-01", "end_date": "2016-01-01" }, ...]

Response


200 OK
{
  "data": {
    "type": "access_exception",
    "attributes": {
      "name": "Thanks Giving",
      "dates": [
        {
          "start_date": "2016-11-24",
          "end_date": "2016-11-25"
        }
      ],
      "created_at": "2026-03-03T00:13:52Z",
      "updated_at": "2026-03-03T00:13:52Z"
    },
    "id": "44596efe-f31d-4e85-b4a6-edd83d06d3be",
    "links": {
      "self": "http://api.remotelock.dev/access_exceptions/44596efe-f31d-4e85-b4a6-edd83d06d3be"
    }
  }
}

Delete an access exception

Request

Endpoint

DELETE /access_exceptions/:id

DELETE /access_exceptions/396c43dd-3920-4970-a2de-516678377502

Parameters

None.

Response


204 No Content

Access Persons

Get access persons

Returns all access person types (homogeneous).

Status

Statuses for access_guest type:

Statuses for access_user type:

This endpoint returns only current and upcoming by default. See next example to fetch expired and deactivated access persons.

Request

Endpoint

GET /access_persons

GET /access_persons

Parameters

Name Description
[type] Filter by type(s). Supported types: access_user and access_guest
sort Sortable attributes: created_at, updated_at, name, department, starts_at, and ends_at, default: created_at ascending
attributes[status] Status: current, upcoming, deactivated or expired. Default: current and upcoming. Supports array query

Response


200 OK
{
  "data": [
    {
      "type": "access_user",
      "attributes": {
        "name": "Vanita Dickinson",
        "email": "[email protected]",
        "phone": null,
        "department": null,
        "deliver_as_qr_code": false,
        "status": "current",
        "source": null,
        "guest_source": null,
        "deliver_as_url_credential": false,
        "require_pin_verification": false,
        "schlage_engage_mobile_credentials_enabled": false,
        "korelock_wifi_credential_enabled": false,
        "ttlock_mobile_credential_enabled": false,
        "igloo_mobile_credentials_enabled": false,
        "august_mobile_credentials_enabled": false,
        "dormakaba_lyazon_mobile_credentials_enabled": false,
        "card_number_is_hex": false,
        "created_at": "2026-03-03T00:11:13Z",
        "updated_at": "2026-03-03T00:11:13Z",
        "pin": "1000",
        "card_number": null,
        "schlage_engage_smart_card_id": null,
        "schlage_engage_smart_card_badge": null
      },
      "id": "6c1d4572-d37b-4b07-833c-c1242254c060",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/6c1d4572-d37b-4b07-833c-c1242254c060"
      },
      "meta": {
        "restricted_attributes": [
          "url_credential"
        ]
      }
    },
    {
      "type": "access_guest",
      "attributes": {
        "name": "Terrell Berge",
        "email": "[email protected]",
        "phone": null,
        "department": null,
        "deliver_as_qr_code": false,
        "status": "upcoming",
        "source": null,
        "guest_source": null,
        "deliver_as_url_credential": false,
        "require_pin_verification": false,
        "schlage_engage_mobile_credentials_enabled": false,
        "korelock_wifi_credential_enabled": false,
        "ttlock_mobile_credential_enabled": false,
        "igloo_mobile_credentials_enabled": false,
        "august_mobile_credentials_enabled": false,
        "dormakaba_lyazon_mobile_credentials_enabled": false,
        "card_number_is_hex": false,
        "created_at": "2026-03-03T00:11:13Z",
        "updated_at": "2026-03-03T00:11:13Z",
        "pin": "1001",
        "card_number": null,
        "schlage_engage_smart_card_id": null,
        "schlage_engage_smart_card_badge": null,
        "starts_at": "2026-03-06T00:00:00",
        "ends_at": "2026-03-30T00:11:13",
        "ready_pins": null
      },
      "id": "394c5db4-5593-44bf-a663-49464501c4af",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/394c5db4-5593-44bf-a663-49464501c4af"
      },
      "meta": {
        "restricted_attributes": [
          "url_credential"
        ]
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get access persons filtered by status

Request

Endpoint

GET /access_persons

GET /access_persons?attributes[status][]=deactivated&attributes[status][]=expired

Parameters

attributes: {"status"=>["deactivated", "expired"]}
Name Description
[type] Filter by type(s). Supported types: access_user and access_guest
sort Sortable attributes: created_at, updated_at, name, department, starts_at, and ends_at, default: created_at ascending
attributes[status] Status: current, upcoming, deactivated or expired. Default: current and upcoming. Supports array query

Response


200 OK
{
  "data": [
    {
      "type": "access_user",
      "attributes": {
        "name": "Celeste Kovacek",
        "email": "[email protected]",
        "phone": null,
        "department": null,
        "deliver_as_qr_code": false,
        "status": "deactivated",
        "source": null,
        "guest_source": null,
        "deliver_as_url_credential": false,
        "require_pin_verification": false,
        "schlage_engage_mobile_credentials_enabled": false,
        "korelock_wifi_credential_enabled": false,
        "ttlock_mobile_credential_enabled": false,
        "igloo_mobile_credentials_enabled": false,
        "august_mobile_credentials_enabled": false,
        "dormakaba_lyazon_mobile_credentials_enabled": false,
        "card_number_is_hex": false,
        "created_at": "2026-03-03T00:11:13Z",
        "updated_at": "2026-03-03T00:11:14Z",
        "pin": "1002",
        "card_number": null,
        "schlage_engage_smart_card_id": null,
        "schlage_engage_smart_card_badge": null
      },
      "id": "4f46d4cf-7d84-44ac-b7ba-f4dd1584f82a",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/4f46d4cf-7d84-44ac-b7ba-f4dd1584f82a"
      },
      "meta": {
        "restricted_attributes": [
          "url_credential"
        ],
        "restricted_actions": [
          "update"
        ]
      }
    },
    {
      "type": "access_guest",
      "attributes": {
        "name": "Lien Kerluke",
        "email": "[email protected]",
        "phone": null,
        "department": null,
        "deliver_as_qr_code": false,
        "status": "expired",
        "source": null,
        "guest_source": null,
        "deliver_as_url_credential": false,
        "require_pin_verification": false,
        "schlage_engage_mobile_credentials_enabled": false,
        "korelock_wifi_credential_enabled": false,
        "ttlock_mobile_credential_enabled": false,
        "igloo_mobile_credentials_enabled": false,
        "august_mobile_credentials_enabled": false,
        "dormakaba_lyazon_mobile_credentials_enabled": false,
        "card_number_is_hex": false,
        "created_at": "2026-03-03T00:11:14Z",
        "updated_at": "2026-03-03T00:11:14Z",
        "pin": "1004",
        "card_number": null,
        "schlage_engage_smart_card_id": null,
        "schlage_engage_smart_card_badge": null,
        "starts_at": "2026-02-28T00:11:14",
        "ends_at": "2026-03-02T00:11:14",
        "ready_pins": null
      },
      "id": "6d01251a-72f2-49fb-8fea-d95178499132",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/6d01251a-72f2-49fb-8fea-d95178499132"
      },
      "meta": {
        "restricted_attributes": [
          "url_credential"
        ],
        "restricted_actions": [
          "update"
        ]
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get an access person

Request

Endpoint

GET /access_persons/:id

GET /access_persons/687f786c-34b1-456b-99af-ed2d309a88c6

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "access_user",
    "attributes": {
      "name": "Elmer Wehner",
      "email": "[email protected]",
      "phone": null,
      "department": null,
      "deliver_as_qr_code": false,
      "status": "current",
      "source": null,
      "guest_source": null,
      "deliver_as_url_credential": false,
      "require_pin_verification": false,
      "schlage_engage_mobile_credentials_enabled": false,
      "korelock_wifi_credential_enabled": false,
      "ttlock_mobile_credential_enabled": false,
      "igloo_mobile_credentials_enabled": false,
      "august_mobile_credentials_enabled": false,
      "dormakaba_lyazon_mobile_credentials_enabled": false,
      "card_number_is_hex": false,
      "created_at": "2026-03-03T00:11:18Z",
      "updated_at": "2026-03-03T00:11:18Z",
      "pin": "1015",
      "card_number": null,
      "schlage_engage_smart_card_id": null,
      "schlage_engage_smart_card_badge": null,
      "url_credential": null
    },
    "id": "687f786c-34b1-456b-99af-ed2d309a88c6",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/687f786c-34b1-456b-99af-ed2d309a88c6"
    },
    "meta": {
      "restricted_attributes": [
        "url_credential"
      ]
    }
  }
}

Create an access user

'Access user' is a permanent access person type. The only difference from 'access guest' is it doesn't accept 'starts_at' and 'ends_at' parameters.

Request

Endpoint

POST /access_persons

POST /access_persons

Parameters

{
  "type": "access_user",
  "attributes": {
    "name": "Ann Smith",
    "email": "[email protected]",
    "department": "Human Resources",
    "pin": "0999",
    "card_number": "23456",
    "phone": "+13036671824",
    "igloo_mobile_credentials_enabled": true
  }
}
Name Description
type required access_user
attributes[name] required Name
attributes[email] Email
attributes[pin] Access person pin (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number] Card number (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number_is_hex] When true, card number is in a hexadecimal format. Default: false
attributes[schlage_engage_smart_card_id] Schlage Control smart card id (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[schlage_engage_mobile_credentials_enabled] When true, schlage engage mobile credentials are enabled. Default: false
attributes[igloo_mobile_credentials_enabled] When true, Igloo mobile credentials are enabled. Default: false
attributes[dormakaba_lyazon_mobile_credentials_enabled] When true, Dormakaba Lyazon mobile credentials are enabled. Default: false
attributes[generate_pin] When true, a random pin is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[generate_card_number] When true, a card number is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[deliver_as_qr_code] When true, the card number is delivered as a QR code. Default: false
attributes[department] Department name

Response


201 Created
{
  "data": {
    "type": "access_user",
    "attributes": {
      "name": "Ann Smith",
      "email": "[email protected]",
      "phone": null,
      "department": "Human Resources",
      "deliver_as_qr_code": false,
      "status": "current",
      "source": null,
      "guest_source": null,
      "deliver_as_url_credential": false,
      "require_pin_verification": false,
      "schlage_engage_mobile_credentials_enabled": false,
      "korelock_wifi_credential_enabled": false,
      "ttlock_mobile_credential_enabled": false,
      "igloo_mobile_credentials_enabled": true,
      "august_mobile_credentials_enabled": false,
      "dormakaba_lyazon_mobile_credentials_enabled": false,
      "card_number_is_hex": false,
      "created_at": "2026-03-03T00:11:19Z",
      "updated_at": "2026-03-03T00:11:19Z",
      "pin": "0999",
      "card_number": "23456",
      "schlage_engage_smart_card_id": null,
      "schlage_engage_smart_card_badge": null,
      "url_credential": null
    },
    "id": "469f184f-6f5e-496d-bfef-3b2373ddd0ee",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/469f184f-6f5e-496d-bfef-3b2373ddd0ee"
    },
    "meta": {
      "restricted_attributes": [
        "url_credential"
      ]
    }
  }
}

Create an access guest

'Access guest' is a temporary access person type. It has all the same features as 'access user', with the addition of 'starts_at' and 'ends_at' parameters that enable additional access limiting.

Request

Endpoint

POST /access_persons

POST /access_persons

Parameters

{
  "type": "access_guest",
  "attributes": {
    "starts_at": "2027-01-02T16:04:00",
    "ends_at": "2027-01-30T16:04:00",
    "name": "Ann Smith",
    "pin": "0999"
  }
}
Name Description
type required access_guest
attributes[name] required Name
attributes[email] Email
attributes[pin] Access person pin (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number] Card number (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number_is_hex] When true, card number is in a hexadecimal format. Default: false
attributes[schlage_engage_smart_card_id] Schlage Control smart card id (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[schlage_engage_mobile_credentials_enabled] When true, schlage engage mobile credentials are enabled. Default: false
attributes[igloo_mobile_credentials_enabled] When true, Igloo mobile credentials are enabled. Default: false
attributes[dormakaba_lyazon_mobile_credentials_enabled] When true, Dormakaba Lyazon mobile credentials are enabled. Default: false
attributes[generate_pin] When true, a random pin is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[generate_card_number] When true, a card number is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[deliver_as_qr_code] When true, the card number is delivered as a QR code. Default: false
attributes[starts_at] required Starts at ISO 8601 timestamp without time zone
attributes[ends_at] required Ends at ISO 8601 timestamp without time zone
attributes[ready_pin_model_id] Attributes ready PIN model

Response


201 Created
{
  "data": {
    "type": "access_guest",
    "attributes": {
      "name": "Ann Smith",
      "email": null,
      "phone": null,
      "department": null,
      "deliver_as_qr_code": false,
      "status": "upcoming",
      "source": null,
      "guest_source": null,
      "deliver_as_url_credential": false,
      "require_pin_verification": false,
      "schlage_engage_mobile_credentials_enabled": false,
      "korelock_wifi_credential_enabled": false,
      "ttlock_mobile_credential_enabled": false,
      "igloo_mobile_credentials_enabled": false,
      "august_mobile_credentials_enabled": false,
      "dormakaba_lyazon_mobile_credentials_enabled": false,
      "card_number_is_hex": false,
      "created_at": "2026-03-03T00:11:46Z",
      "updated_at": "2026-03-03T00:11:46Z",
      "pin": "0999",
      "card_number": null,
      "schlage_engage_smart_card_id": null,
      "schlage_engage_smart_card_badge": null,
      "url_credential": null,
      "starts_at": "2027-01-02T16:04:00",
      "ends_at": "2027-01-30T16:04:00",
      "ready_pins": null
    },
    "id": "a8be9da4-d542-41ce-8da7-3e7c77bed9b8",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/a8be9da4-d542-41ce-8da7-3e7c77bed9b8"
    },
    "meta": {
      "restricted_attributes": [
        "url_credential"
      ]
    }
  }
}

Bulk import access persons

Bulk imports access persons from a CSV file. The CSV must include headers and can contain both access users (permanent) and access guests (temporary) based on whether start/end dates are provided.

Limits and Constraints

Import Behavior

The system will:

Download the CSV template from: https://connect.remotelock.com/access_persons_template.csv

Request

Endpoint

POST /access_persons/import

POST /access_persons/import

Parameters

{
  "csv": "Name,email,Department,Start Date,Start Time,End Date,End Time,Pin,Prox Card\nEphraim Gutmann,[email protected],Human Resources,,,,,2000,\nSophie Gutmann,[email protected],Human Resources,,,,,,4125\n",
  "accessible_type": "door_group",
  "accessible_id": "320aef0b-1122-4ba9-9241-0406517c7884",
  "send_access_instructions": false
}
Name Description
csv required CSV file containing access person data. Required columns: name, email, department, start_date, start_time, end_date, end_time, pin, prox_card, prox_card_is_hex, smart_card.
accessible_type required Type of accessible resource (acs_door, acs_elevator_floor, lock, connector_lock, zwave_lock, schlage_home_lock, igloo_lock, door_group, location)
accessible_id required UUID of the accessible_type to grant access to
send_access_instructions required Whether to send access instructions via email to imported users

Response


201 Created
{
  "data": {
    "type": "access_person_csv_import_action",
    "attributes": {
    },
    "id": "5ec9d985-acc5-4a11-9f3d-b2982c9fc74c",
    "links": {
      "self": "http://api.remotelock.dev/access_person_csv_import_actions/5ec9d985-acc5-4a11-9f3d-b2982c9fc74c"
    }
  }
}

Update an access user

Request

Endpoint

PUT /access_persons/:id

PUT /access_persons/18d2ad29-06dc-44a7-890b-a6607c6d0826

Parameters

{
  "attributes": {
    "name": "House Owner",
    "pin": "2345"
  }
}
Name Description
attributes[name] Name
attributes[email] Email
attributes[pin] Access person pin (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number] Card number (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number_is_hex] When true, card number is in a hexadecimal format. Default: false
attributes[schlage_engage_smart_card_id] Schlage Control smart card id (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[schlage_engage_mobile_credentials_enabled] When true, schlage engage mobile credentials are enabled. Default: false
attributes[igloo_mobile_credentials_enabled] When true, Igloo mobile credentials are enabled. Default: false
attributes[dormakaba_lyazon_mobile_credentials_enabled] When true, Dormakaba Lyazon mobile credentials are enabled. Default: false
attributes[generate_pin] When true, a random pin is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[generate_card_number] When true, a card number is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[deliver_as_qr_code] When true, the card number is delivered as a QR code. Default: false
attributes[department] Department name

Response


200 OK
{
  "data": {
    "type": "access_user",
    "attributes": {
      "name": "House Owner",
      "email": "[email protected]",
      "phone": null,
      "department": null,
      "deliver_as_qr_code": false,
      "status": "current",
      "source": null,
      "guest_source": null,
      "deliver_as_url_credential": false,
      "require_pin_verification": false,
      "schlage_engage_mobile_credentials_enabled": false,
      "korelock_wifi_credential_enabled": false,
      "ttlock_mobile_credential_enabled": false,
      "igloo_mobile_credentials_enabled": false,
      "august_mobile_credentials_enabled": false,
      "dormakaba_lyazon_mobile_credentials_enabled": false,
      "card_number_is_hex": false,
      "created_at": "2026-03-03T00:12:06Z",
      "updated_at": "2026-03-03T00:12:07Z",
      "pin": "2345",
      "card_number": null,
      "schlage_engage_smart_card_id": null,
      "schlage_engage_smart_card_badge": null,
      "url_credential": null
    },
    "id": "18d2ad29-06dc-44a7-890b-a6607c6d0826",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/18d2ad29-06dc-44a7-890b-a6607c6d0826"
    },
    "meta": {
      "restricted_attributes": [
        "url_credential"
      ]
    }
  }
}

responds with an Unprocessable Entity error

Request

Endpoint

PUT /access_persons/:id

PUT /access_persons/e9324408-b653-4f5e-8b6d-085419583de2

PUT /access_persons/e9324408-b653-4f5e-8b6d-085419583de2

Parameters

{
  "attributes": {
    "name": "House Owner",
    "pin": "2345"
  }
}
Name Description
attributes[name] Name
attributes[email] Email
attributes[pin] Access person pin (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number] Card number (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number_is_hex] When true, card number is in a hexadecimal format. Default: false
attributes[schlage_engage_smart_card_id] Schlage Control smart card id (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[schlage_engage_mobile_credentials_enabled] When true, schlage engage mobile credentials are enabled. Default: false
attributes[igloo_mobile_credentials_enabled] When true, Igloo mobile credentials are enabled. Default: false
attributes[dormakaba_lyazon_mobile_credentials_enabled] When true, Dormakaba Lyazon mobile credentials are enabled. Default: false
attributes[generate_pin] When true, a random pin is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[generate_card_number] When true, a card number is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[deliver_as_qr_code] When true, the card number is delivered as a QR code. Default: false
attributes[department] Department name

Response


200 OK
{
  "data": {
    "type": "access_user",
    "attributes": {
      "name": "House Owner",
      "email": "[email protected]",
      "phone": null,
      "department": null,
      "deliver_as_qr_code": false,
      "status": "current",
      "source": null,
      "guest_source": null,
      "deliver_as_url_credential": false,
      "require_pin_verification": false,
      "schlage_engage_mobile_credentials_enabled": false,
      "korelock_wifi_credential_enabled": false,
      "ttlock_mobile_credential_enabled": false,
      "igloo_mobile_credentials_enabled": false,
      "august_mobile_credentials_enabled": false,
      "dormakaba_lyazon_mobile_credentials_enabled": false,
      "card_number_is_hex": false,
      "created_at": "2026-03-03T00:12:07Z",
      "updated_at": "2026-03-03T00:12:08Z",
      "pin": "2345",
      "card_number": null,
      "schlage_engage_smart_card_id": null,
      "schlage_engage_smart_card_badge": null,
      "url_credential": null
    },
    "id": "e9324408-b653-4f5e-8b6d-085419583de2",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/e9324408-b653-4f5e-8b6d-085419583de2"
    },
    "meta": {
      "restricted_attributes": [
        "url_credential"
      ]
    }
  }
}
{
  "attributes": {
    "name": "House Owner",
    "pin": "1078",
    "phone": "+13036671824"
  }
}
Name Description
attributes[name] Name
attributes[email] Email
attributes[pin] Access person pin (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number] Card number (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number_is_hex] When true, card number is in a hexadecimal format. Default: false
attributes[schlage_engage_smart_card_id] Schlage Control smart card id (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[schlage_engage_mobile_credentials_enabled] When true, schlage engage mobile credentials are enabled. Default: false
attributes[igloo_mobile_credentials_enabled] When true, Igloo mobile credentials are enabled. Default: false
attributes[dormakaba_lyazon_mobile_credentials_enabled] When true, Dormakaba Lyazon mobile credentials are enabled. Default: false
attributes[generate_pin] When true, a random pin is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[generate_card_number] When true, a card number is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[deliver_as_qr_code] When true, the card number is delivered as a QR code. Default: false
attributes[department] Department name

Response


422 Unprocessable Entity
{
  "errors": [
    {
      "attribute": "pin",
      "messages": [
        "has already been taken"
      ],
      "full_messages": [
        "PIN has already been taken"
      ]
    }
  ]
}

Update an access guest

Request

Endpoint

PUT /access_persons/:id

PUT /access_persons/16ba8efb-57bc-4bb3-a992-c9a0fb296fb3

Parameters

{
  "attributes": {
    "name": "Cleaning Crew",
    "ends_at": "2026-03-16T00:00:00Z"
  },
  "audited": true
}
Name Description
attributes[name] Name
attributes[email] Email
attributes[pin] Access person pin (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number] Card number (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[card_number_is_hex] When true, card number is in a hexadecimal format. Default: false
attributes[schlage_engage_smart_card_id] Schlage Control smart card id (pin, generate_pin, card_number, generate_card_number or schlage_engage_smart_card_id are required)
attributes[schlage_engage_mobile_credentials_enabled] When true, schlage engage mobile credentials are enabled. Default: false
attributes[igloo_mobile_credentials_enabled] When true, Igloo mobile credentials are enabled. Default: false
attributes[dormakaba_lyazon_mobile_credentials_enabled] When true, Dormakaba Lyazon mobile credentials are enabled. Default: false
attributes[generate_pin] When true, a random pin is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[generate_card_number] When true, a card number is generated (pin, generate_pin, card_number or generate_card_number are required). Default: false
attributes[deliver_as_qr_code] When true, the card number is delivered as a QR code. Default: false
attributes[starts_at] Starts at ISO 8601 timestamp without time zone
attributes[ends_at] Ends at ISO 8601 timestamp without time zone
attributes[ready_pin_model_id] Attributes ready PIN model

Response


200 OK
{
  "data": {
    "type": "access_guest",
    "attributes": {
      "name": "Cleaning Crew",
      "email": "[email protected]",
      "phone": null,
      "department": null,
      "deliver_as_qr_code": false,
      "status": "upcoming",
      "source": null,
      "guest_source": null,
      "deliver_as_url_credential": false,
      "require_pin_verification": false,
      "schlage_engage_mobile_credentials_enabled": false,
      "korelock_wifi_credential_enabled": false,
      "ttlock_mobile_credential_enabled": false,
      "igloo_mobile_credentials_enabled": false,
      "august_mobile_credentials_enabled": false,
      "dormakaba_lyazon_mobile_credentials_enabled": false,
      "card_number_is_hex": false,
      "created_at": "2026-03-03T00:12:08Z",
      "updated_at": "2026-03-03T00:12:08Z",
      "pin": "1080",
      "card_number": null,
      "schlage_engage_smart_card_id": null,
      "schlage_engage_smart_card_badge": null,
      "url_credential": null,
      "starts_at": "2026-03-06T00:00:00",
      "ends_at": "2026-03-16T00:00:00",
      "ready_pins": null
    },
    "id": "16ba8efb-57bc-4bb3-a992-c9a0fb296fb3",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/16ba8efb-57bc-4bb3-a992-c9a0fb296fb3"
    },
    "meta": {
      "restricted_attributes": [
        "url_credential"
      ]
    }
  }
}

Deactivates an access person

We recommend using this endpoint rather than DELETE /access_persons/:id because it allows you to fetch deactivated and expired access persons.

Request

Endpoint

PUT /access_persons/:id/deactivate

PUT /access_persons/9fbbaf7f-c1c3-4424-a1fe-e8258e5ba2a0/deactivate

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "access_user",
    "attributes": {
      "name": "Zachariah Treutel",
      "email": "[email protected]",
      "phone": null,
      "department": null,
      "deliver_as_qr_code": false,
      "status": "deactivated",
      "source": null,
      "guest_source": null,
      "deliver_as_url_credential": false,
      "require_pin_verification": false,
      "schlage_engage_mobile_credentials_enabled": false,
      "korelock_wifi_credential_enabled": false,
      "ttlock_mobile_credential_enabled": false,
      "igloo_mobile_credentials_enabled": false,
      "august_mobile_credentials_enabled": false,
      "dormakaba_lyazon_mobile_credentials_enabled": false,
      "card_number_is_hex": false,
      "created_at": "2026-03-03T00:12:09Z",
      "updated_at": "2026-03-03T00:12:10Z",
      "pin": "1081",
      "card_number": null,
      "schlage_engage_smart_card_id": null,
      "schlage_engage_smart_card_badge": null,
      "url_credential": null
    },
    "id": "9fbbaf7f-c1c3-4424-a1fe-e8258e5ba2a0",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/9fbbaf7f-c1c3-4424-a1fe-e8258e5ba2a0"
    },
    "meta": {
      "restricted_attributes": [
        "url_credential"
      ],
      "restricted_actions": [
        "update"
      ]
    }
  }
}

Delete an access person

Request

Endpoint

DELETE /access_persons/:id

DELETE /access_persons/0f4578b2-1c48-4388-8fa6-7ad2b3314477

Parameters

None.

Response


204 No Content

Schedule sending access instructions email in days

Request

Endpoint

POST /access_persons/:id/email/notify

POST /access_persons/ee378fa4-ed11-4298-9b6e-b03a4b42895f/email/notify

Parameters

{
  "attributes": {
    "days_before": 1
  }
}
Name Description
attributes[days_before] Schedule sending email a number of days beforeguest start time. Default: sends the email immediately.

Response


200 OK

Get all of an access person's accesses

Request

Endpoint

GET /access_persons/:access_person_id/accesses

GET /access_persons/b9771598-a646-41f4-a749-93abf3502ed9/accesses

Parameters

None.

Response


200 OK
{
  "data": [
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 1,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 1,
        "devices_failed_sync_count": 0,
        "accessible_type": "lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:21Z",
        "updated_at": "2026-03-03T00:12:21Z",
        "accessible_name": "LS-6i - AC000W005672423",
        "access_person_id": "b9771598-a646-41f4-a749-93abf3502ed9",
        "access_person_type": "access_user",
        "accessible_id": "f9ea04f9-ced3-49d7-b383-a6aaf11aecfc"
      },
      "id": "46146223-1f56-400a-a609-4c655e746562",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/b9771598-a646-41f4-a749-93abf3502ed9/accesses/46146223-1f56-400a-a609-4c655e746562",
        "access_person": "http://api.remotelock.dev/access_persons/b9771598-a646-41f4-a749-93abf3502ed9",
        "accessible": "http://api.remotelock.dev/devices/f9ea04f9-ced3-49d7-b383-a6aaf11aecfc"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "acs_door",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:21Z",
        "updated_at": "2026-03-03T00:12:21Z",
        "accessible_name": "Books & Clothing",
        "access_person_id": "b9771598-a646-41f4-a749-93abf3502ed9",
        "access_person_type": "access_user",
        "accessible_id": "e4bda014-063b-42dc-9cb2-34fcec8fcc93"
      },
      "id": "dbf6a00b-77d3-4d28-b351-e6ca58c5895a",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/b9771598-a646-41f4-a749-93abf3502ed9/accesses/dbf6a00b-77d3-4d28-b351-e6ca58c5895a",
        "access_person": "http://api.remotelock.dev/access_persons/b9771598-a646-41f4-a749-93abf3502ed9",
        "accessible": "http://api.remotelock.dev/devices/e4bda014-063b-42dc-9cb2-34fcec8fcc93"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "door_group",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:21Z",
        "updated_at": "2026-03-03T00:12:21Z",
        "accessible_name": "Shoes, Beauty & Garden",
        "access_person_id": "b9771598-a646-41f4-a749-93abf3502ed9",
        "access_person_type": "access_user",
        "accessible_id": "9e69722c-29b9-466d-a666-2df433906dc4"
      },
      "id": "434d1876-8676-4d18-b1df-32c49e98ff44",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/b9771598-a646-41f4-a749-93abf3502ed9/accesses/434d1876-8676-4d18-b1df-32c49e98ff44",
        "access_person": "http://api.remotelock.dev/access_persons/b9771598-a646-41f4-a749-93abf3502ed9",
        "accessible": "http://api.remotelock.dev/groups/9e69722c-29b9-466d-a666-2df433906dc4"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "location",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:21Z",
        "updated_at": "2026-03-03T00:12:21Z",
        "accessible_name": "Customizable explicit process improvement",
        "access_person_id": "b9771598-a646-41f4-a749-93abf3502ed9",
        "access_person_type": "access_user",
        "accessible_id": "ce3364f6-18a2-457d-8696-a1b899e4fa0a"
      },
      "id": "541ac6fb-fcd7-4b5e-804f-f2522296c098",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/b9771598-a646-41f4-a749-93abf3502ed9/accesses/541ac6fb-fcd7-4b5e-804f-f2522296c098",
        "access_person": "http://api.remotelock.dev/access_persons/b9771598-a646-41f4-a749-93abf3502ed9",
        "accessible": "http://api.remotelock.dev/locations/ce3364f6-18a2-457d-8696-a1b899e4fa0a"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 4,
    "total_pages": 1
  }
}

Returns only accesses for devices with guest management enabled

Request

Endpoint

GET /access_persons/:access_person_id/accesses

GET /access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses?document=false

GET /access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses?guest_management_enabled=true

Parameters

document: false

None.

Response


200 OK
{
  "data": [
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 1,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 1,
        "devices_failed_sync_count": 0,
        "accessible_type": "lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:22Z",
        "updated_at": "2026-03-03T00:12:22Z",
        "accessible_name": "LS-6i - AC000W001802552",
        "access_person_id": "fb529f90-2fef-4481-bfba-584df5a21c92",
        "access_person_type": "access_user",
        "accessible_id": "3620689a-9ddc-4307-8893-9c57dc0eb4e1"
      },
      "id": "97e32e4e-08b1-45fd-993a-23ada8b2b77c",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses/97e32e4e-08b1-45fd-993a-23ada8b2b77c",
        "access_person": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92",
        "accessible": "http://api.remotelock.dev/devices/3620689a-9ddc-4307-8893-9c57dc0eb4e1"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "acs_door",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:22Z",
        "updated_at": "2026-03-03T00:12:22Z",
        "accessible_name": "Outdoors & Garden",
        "access_person_id": "fb529f90-2fef-4481-bfba-584df5a21c92",
        "access_person_type": "access_user",
        "accessible_id": "84753351-8d67-4f6e-9471-0dd782901380"
      },
      "id": "05df9c1e-a402-4594-9c73-91f35889926e",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses/05df9c1e-a402-4594-9c73-91f35889926e",
        "access_person": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92",
        "accessible": "http://api.remotelock.dev/devices/84753351-8d67-4f6e-9471-0dd782901380"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "door_group",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:22Z",
        "updated_at": "2026-03-03T00:12:22Z",
        "accessible_name": "Grocery & Books",
        "access_person_id": "fb529f90-2fef-4481-bfba-584df5a21c92",
        "access_person_type": "access_user",
        "accessible_id": "68ef7ff5-d81e-48ee-b7f6-5a88f4d59d5a"
      },
      "id": "55595923-6801-4951-bc57-24fd908a6645",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses/55595923-6801-4951-bc57-24fd908a6645",
        "access_person": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92",
        "accessible": "http://api.remotelock.dev/groups/68ef7ff5-d81e-48ee-b7f6-5a88f4d59d5a"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "location",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:22Z",
        "updated_at": "2026-03-03T00:12:22Z",
        "accessible_name": "Seamless holistic array",
        "access_person_id": "fb529f90-2fef-4481-bfba-584df5a21c92",
        "access_person_type": "access_user",
        "accessible_id": "72ce7e89-261f-46b9-ad9b-9a06422a8368"
      },
      "id": "22a294c3-a293-4aa4-9dc4-c20f30061ee5",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses/22a294c3-a293-4aa4-9dc4-c20f30061ee5",
        "access_person": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92",
        "accessible": "http://api.remotelock.dev/locations/72ce7e89-261f-46b9-ad9b-9a06422a8368"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "zwave_lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:22Z",
        "updated_at": "2026-03-03T00:12:22Z",
        "accessible_name": "XPA",
        "access_person_id": "fb529f90-2fef-4481-bfba-584df5a21c92",
        "access_person_type": "access_user",
        "accessible_id": "0fce1228-86ed-476c-b0e9-69278efcebd8"
      },
      "id": "aa3a312a-18dc-4b63-8d7f-40aeb56ad1b4",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses/aa3a312a-18dc-4b63-8d7f-40aeb56ad1b4",
        "access_person": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92",
        "accessible": "http://api.remotelock.dev/devices/0fce1228-86ed-476c-b0e9-69278efcebd8"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "zwave_lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:23Z",
        "updated_at": "2026-03-03T00:12:23Z",
        "accessible_name": "QMC",
        "access_person_id": "fb529f90-2fef-4481-bfba-584df5a21c92",
        "access_person_type": "access_user",
        "accessible_id": "0b9176c7-0e3e-40f9-86a0-9eb022255130"
      },
      "id": "1e1abf55-37f3-4907-855a-5b232f7a10d6",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses/1e1abf55-37f3-4907-855a-5b232f7a10d6",
        "access_person": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92",
        "accessible": "http://api.remotelock.dev/devices/0b9176c7-0e3e-40f9-86a0-9eb022255130"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "zwave_lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:23Z",
        "updated_at": "2026-03-03T00:12:23Z",
        "accessible_name": "UEK",
        "access_person_id": "fb529f90-2fef-4481-bfba-584df5a21c92",
        "access_person_type": "access_user",
        "accessible_id": "16a4afda-1c3e-4de1-8dbe-f20b272ed1d7"
      },
      "id": "a6dd2460-0590-4983-b7b9-c5b2e6fedddd",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses/a6dd2460-0590-4983-b7b9-c5b2e6fedddd",
        "access_person": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92",
        "accessible": "http://api.remotelock.dev/devices/16a4afda-1c3e-4de1-8dbe-f20b272ed1d7"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 7,
    "total_pages": 1
  }
}
guest_management_enabled: true

None.

Response


200 OK
{
  "data": [
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "zwave_lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:22Z",
        "updated_at": "2026-03-03T00:12:22Z",
        "accessible_name": "XPA",
        "access_person_id": "fb529f90-2fef-4481-bfba-584df5a21c92",
        "access_person_type": "access_user",
        "accessible_id": "0fce1228-86ed-476c-b0e9-69278efcebd8"
      },
      "id": "aa3a312a-18dc-4b63-8d7f-40aeb56ad1b4",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92/accesses/aa3a312a-18dc-4b63-8d7f-40aeb56ad1b4",
        "access_person": "http://api.remotelock.dev/access_persons/fb529f90-2fef-4481-bfba-584df5a21c92",
        "accessible": "http://api.remotelock.dev/devices/0fce1228-86ed-476c-b0e9-69278efcebd8"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 1,
    "total_pages": 1
  }
}

Get an access person's access

Request

Endpoint

GET /access_persons/:access_person_id/accesses/:id

GET /access_persons/68565470-8bb5-4fe8-a989-d4547e5ae4ed/accesses/88f1efbf-19a1-4b73-a95f-0d42f084db1e

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "access_person_access",
    "attributes": {
      "guest_start_time": null,
      "guest_end_time": null,
      "devices_count": 1,
      "devices_synced_count": 0,
      "devices_pending_sync_count": 1,
      "devices_failed_sync_count": 0,
      "accessible_type": "lock",
      "access_starts_at": null,
      "access_ends_at": null,
      "created_at": "2026-03-03T00:12:24Z",
      "updated_at": "2026-03-03T00:12:24Z",
      "accessible_name": "LS-6i - AC000W006056833",
      "access_person_id": "68565470-8bb5-4fe8-a989-d4547e5ae4ed",
      "access_person_type": "access_user",
      "accessible_id": "dd35527b-6d35-4270-831b-50a377943186"
    },
    "id": "88f1efbf-19a1-4b73-a95f-0d42f084db1e",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/68565470-8bb5-4fe8-a989-d4547e5ae4ed/accesses/88f1efbf-19a1-4b73-a95f-0d42f084db1e",
      "access_person": "http://api.remotelock.dev/access_persons/68565470-8bb5-4fe8-a989-d4547e5ae4ed",
      "accessible": "http://api.remotelock.dev/devices/dd35527b-6d35-4270-831b-50a377943186"
    }
  }
}

Grant an access person access

Accessible can be one of: acs_door, acs_elevator_floor, lock, connector_lock, zwave_lock, schlage_home_lock, igloo_lock, door_group or location

Request

Endpoint

POST /access_persons/:access_person_id/accesses

POST /access_persons/afa4dad2-ce2b-4002-a4cc-8b42007c75ac/accesses

Parameters

{
  "attributes": {
    "accessible_id": "9b3ec290-d144-4c8e-ba1b-a8470e88d075",
    "accessible_type": "lock",
    "guest_start_time": "14:00",
    "access_schedule_id": "52d02881-bcf5-4053-95fd-cd18b2d7e3c8"
  }
}
Name Description
attributes[accessible_type] required Accessible type: acs_door, acs_elevator_floor, lock, connector_lock, zwave_lock, schlage_home_lock, igloo_lock, door_group or location
attributes[accessible_id] required Accessible id
attributes[access_schedule_id] Access schedule id
attributes[guest_start_time] Access Guest start time override, ISO 8601 24 hour time format
attributes[guest_end_time] Access Guest end time override, ISO 8601 24 hour time format

Response


201 Created
{
  "data": {
    "type": "access_person_access",
    "attributes": {
      "guest_start_time": "14:00:00",
      "guest_end_time": null,
      "devices_count": 0,
      "devices_synced_count": 0,
      "devices_pending_sync_count": 0,
      "devices_failed_sync_count": 0,
      "accessible_type": "lock",
      "access_starts_at": null,
      "access_ends_at": null,
      "created_at": "2026-03-03T00:12:32Z",
      "updated_at": "2026-03-03T00:12:32Z",
      "accessible_name": "LS-6i - AC000W008886874",
      "access_schedule_id": "52d02881-bcf5-4053-95fd-cd18b2d7e3c8",
      "access_person_id": "afa4dad2-ce2b-4002-a4cc-8b42007c75ac",
      "access_person_type": "access_guest",
      "accessible_id": "9b3ec290-d144-4c8e-ba1b-a8470e88d075"
    },
    "id": "4a45aca6-113e-4610-bd32-cd7046be92d1",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/afa4dad2-ce2b-4002-a4cc-8b42007c75ac/accesses/4a45aca6-113e-4610-bd32-cd7046be92d1",
      "access_schedule": "http://api.remotelock.dev/schedules/52d02881-bcf5-4053-95fd-cd18b2d7e3c8",
      "access_person": "http://api.remotelock.dev/access_persons/afa4dad2-ce2b-4002-a4cc-8b42007c75ac",
      "accessible": "http://api.remotelock.dev/devices/9b3ec290-d144-4c8e-ba1b-a8470e88d075"
    }
  }
}

Update an access person's access

Only updating the access schedule is supported. To change the accessible, revoke the access and grant a new one.

Request

Endpoint

PUT /access_persons/:access_person_id/accesses/:id

PUT /access_persons/1391d8b3-0c75-429c-8ee5-4de501734208/accesses/9ab5bc5a-a0be-41d7-adee-34e422239b16

Parameters

{
  "attributes": {
    "access_schedule_id": "13083046-93fe-4210-a386-d733c86f89b2"
  }
}
Name Description
attributes[access_schedule_id] Access schedule id

Response


200 OK
{
  "data": {
    "type": "access_person_access",
    "attributes": {
      "guest_start_time": null,
      "guest_end_time": null,
      "devices_count": 1,
      "devices_synced_count": 0,
      "devices_pending_sync_count": 1,
      "devices_failed_sync_count": 0,
      "accessible_type": "lock",
      "access_starts_at": null,
      "access_ends_at": null,
      "created_at": "2026-03-03T00:12:35Z",
      "updated_at": "2026-03-03T00:12:35Z",
      "accessible_name": "LS-6i - AC000W008511587",
      "access_schedule_id": "13083046-93fe-4210-a386-d733c86f89b2",
      "access_person_id": "1391d8b3-0c75-429c-8ee5-4de501734208",
      "access_person_type": "access_user",
      "accessible_id": "120a9614-98e9-4e69-b485-0d53c2f18c0c"
    },
    "id": "9ab5bc5a-a0be-41d7-adee-34e422239b16",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/1391d8b3-0c75-429c-8ee5-4de501734208/accesses/9ab5bc5a-a0be-41d7-adee-34e422239b16",
      "access_schedule": "http://api.remotelock.dev/schedules/13083046-93fe-4210-a386-d733c86f89b2",
      "access_person": "http://api.remotelock.dev/access_persons/1391d8b3-0c75-429c-8ee5-4de501734208",
      "accessible": "http://api.remotelock.dev/devices/120a9614-98e9-4e69-b485-0d53c2f18c0c"
    }
  }
}

Revoke an access person's access

Request

Endpoint

DELETE /access_persons/:access_person_id/accesses/:id

DELETE /access_persons/ae5d5052-ad4d-46a9-9782-a6c26994a5a4/accesses/7b83ca34-1173-4498-8bde-fc698dc9ee91

Parameters

None.

Response


204 No Content

List all allegion tokens

Generates Allegion tokens tied to a specific access person

Request

Endpoint

POST /access_persons/:id/allegion_tokens

POST /access_persons/a6fe2b0a-b51b-4184-a22a-9f7cc60e31f8/allegion_tokens

Parameters

None.

Response


200 OK
{
  "data": {
    "id_token": "id_token",
    "access_rights_token": "access_rights_token"
  }
}

List all mobile accesses

Fetches the list of mobile accesses (i.e., doors or devices) available to a specific access person under their control

Request

Endpoint

GET /access_persons/:id/mobile_accesses

GET /access_persons/23299dd7-6b6b-4554-ad48-a7daf55dfccd/mobile_accesses

Parameters

None.

Response


200 OK
{
  "data": [
    {
      "type": "connector_lock",
      "attributes": {
        "connectivity_enabled": true,
        "connected": false,
        "connected_at": "2026-03-03T00:12:39Z",
        "alive": true,
        "name": "bathroom",
        "power_level": 100,
        "serial_number": "ef2253b3bfe917d2bdc6c6133bb3ca4d",
        "signal_quality": 4,
        "state": "LOCKED",
        "pending_physical_sync": false,
        "model_number": "SchlageControl",
        "created_at": "2026-03-03T00:12:39Z",
        "updated_at": "2026-03-03T00:12:39Z",
        "location_name": "Pre-emptive modular alliance",
        "location_id": "4cdba772-0e7d-4e47-8c51-282fbc2e5cbf",
        "model_id": "4f4432f8-fc90-4e01-b4f7-6a6d03358b41"
      },
      "id": "a0748140-f8e6-41bf-bd30-5e9f7c5f48dd",
      "links": {
        "self": "http://api.remotelock.dev/devices/a0748140-f8e6-41bf-bd30-5e9f7c5f48dd",
        "location": "http://api.remotelock.dev/locations/4cdba772-0e7d-4e47-8c51-282fbc2e5cbf",
        "model": "http://api.remotelock.dev/models/4f4432f8-fc90-4e01-b4f7-6a6d03358b41"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 1,
    "total_pages": 1
  }
}

List all mobile credentials for the access person

Fetches the mobile credentials associated with an access person under their management

Request

Endpoint

GET /access_persons/:id/mobile_credentials

GET /access_persons/63cd1f2c-6399-4e71-82f3-5259440b1a52/mobile_credentials

Parameters

None.

Response


200 OK
{
  "data": [
    {
      "type": "credential",
      "attributes": {
        "type": "MobileCredential",
        "vendor": "ttlock",
        "vendor_data": {
          "ttlock": [
            {
              "lock_data": "xxx",
              "lock_uuid": "ba538e2c-9049-46b1-bdd5-ff1da7c9b802",
              "lock_mac": "44:f4:1f:26:37:c9"
            }
          ]
        }
      },
      "id": 1,
      "links": {
        "self": "http://api.remotelock.dev/mobile_credentials/1"
      }
    },
    {
      "type": "credential",
      "attributes": {
        "type": "MobileCredential",
        "vendor": "schlage_engage",
        "vendor_data": {
          "schlage_engage": [
            {
              "lock_uuid": "f3a71f14-e685-491f-86eb-1b3261befe1f",
              "lock_serial_number": "on21vh70dhrin6ys0nxxtxqo8rp9k4ms",
              "reader_serial_number": "SN000016130606"
            }
          ]
        }
      },
      "id": 2,
      "links": {
        "self": "http://api.remotelock.dev/mobile_credentials/2"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 2,
    "total_count": 2,
    "total_pages": 1
  }
}

Get Schlage Engage smart cards

The GET /connectors/schlage-engage/smart-cards endpoint retrieves information about smart cards that are currently not in use. Filtering by location is supported using the 'location_id' parameter.

Request

Endpoint

GET /connector_brands/schlage-engage/smart-cards

GET /connector_brands/schlage-engage/smart-cards

Parameters

Name Description
location_id Filter by location

Response


200 OK
{
  "data": [
    {
      "id": 1,
      "badge": "22",
      "card_format": "smart",
      "location_id": 3,
      "created_at": "2023-08-09T21:13:36.965Z",
      "updated_at": "2023-08-09T21:13:36.965Z"
    }
  ]
}

Accounts

Get current account

Request

Endpoint

GET /account

GET /account

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "account",
    "attributes": {
      "name": "Sarita Fahey Ret.",
      "created_at": "2026-03-03T00:12:15Z",
      "updated_at": "2026-03-03T00:12:15Z",
      "default_guest_start_time": "16:00:00",
      "default_guest_end_time": "11:00:00",
      "rental_guest_time_override": false,
      "guest_management_enabled": false,
      "primary_owner_id": "eafe64ea-36a5-42c0-911e-1bfc1abf7bf6",
      "owner_role_id": "287f0c4c-486b-4778-a879-3e3d2f79b125"
    },
    "id": "2d6d12d6-8af9-40a0-8a5d-01991841d0c3",
    "links": {
      "self": "http://api.remotelock.dev/account",
      "primary_owner": "http://api.remotelock.dev/user",
      "owner_role": "http://api.remotelock.dev/roles/287f0c4c-486b-4778-a879-3e3d2f79b125"
    }
  }
}

Update current account

Request

Endpoint

PUT /account

PUT /account

Parameters

{
  "attributes": {
    "default_guest_start_time": "15:30:00",
    "default_guest_end_time": "02:15:00"
  }
}
Name Description
attributes[name] Account Name
attributes[default_guest_start_time] Default Access Guest start time, ISO 8601 24 hour time format, default: "11:00:00"
attributes[default_guest_end_time] Default Access Guest end time, ISO 8601 24 hour time format, default: "23:00:00"

Response


200 OK
{
  "data": {
    "type": "account",
    "attributes": {
      "name": "Conception Hettinger",
      "created_at": "2026-03-03T00:12:16Z",
      "updated_at": "2026-03-03T00:12:16Z",
      "default_guest_start_time": "15:30:00",
      "default_guest_end_time": "02:15:00",
      "rental_guest_time_override": false,
      "guest_management_enabled": false,
      "primary_owner_id": "8d9ba7bc-f672-4b91-b06c-07a1573a38bc",
      "owner_role_id": "07d5e657-e438-4621-ae29-63d92ceb642d"
    },
    "id": "676660d6-b4f4-43bf-bc5c-215ac800042d",
    "links": {
      "self": "http://api.remotelock.dev/account",
      "primary_owner": "http://api.remotelock.dev/user",
      "owner_role": "http://api.remotelock.dev/roles/07d5e657-e438-4621-ae29-63d92ceb642d"
    }
  }
}

Brands

Get all brands

Returns all brands.

Request

Endpoint

GET /brands

GET /brands

Parameters

None.

Response


200 OK
{
  "data": [
    {
      "type": "brand",
      "attributes": {
        "name": "Brand 1",
        "vendor": "ayla",
        "uuid": "27af3a78-c12b-42a7-ad53-536a2eb65fd7"
      },
      "id": "27af3a78-c12b-42a7-ad53-536a2eb65fd7",
      "links": {
        "self": "http://api.remotelock.dev/brands/27af3a78-c12b-42a7-ad53-536a2eb65fd7"
      }
    },
    {
      "type": "brand",
      "attributes": {
        "name": "Brand 1",
        "vendor": "ayla",
        "uuid": "acdaabc2-fafb-4390-bcb3-2ffba9289949"
      },
      "id": "acdaabc2-fafb-4390-bcb3-2ffba9289949",
      "links": {
        "self": "http://api.remotelock.dev/brands/acdaabc2-fafb-4390-bcb3-2ffba9289949"
      }
    },
    {
      "type": "brand",
      "attributes": {
        "name": "Brand 1",
        "vendor": "ayla",
        "uuid": "82574c1f-947b-49dd-80db-4625db2d7847"
      },
      "id": "82574c1f-947b-49dd-80db-4625db2d7847",
      "links": {
        "self": "http://api.remotelock.dev/brands/82574c1f-947b-49dd-80db-4625db2d7847"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 3,
    "total_pages": 1
  }
}

Get Models By Brand

Returns a models list based on brand uuid.

Request

Endpoint

GET /brands/:brand_id/models

GET /brands/c9d935cb-40f2-4414-9947-ca93457a9a97/models

Parameters

Name Description
brand_id Brand Universally Unique IDentifier

Response


200 OK
{
  "data": [
    {
      "type": "model",
      "attributes": {
        "name": "RG (LS-5i)",
        "number": "LS-5i",
        "type": "lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "auto_lock_enable": true,
          "auto_lock_schedule": true,
          "auto_lock_timeouts": [
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            30,
            60,
            300,
            600,
            900,
            1200,
            1500,
            1800
          ],
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "heartbeat_intervals": [
            0,
            300,
            900,
            1200,
            1800,
            3600,
            7200,
            14400,
            28800,
            43200
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "local_pins": true,
          "lock_action_schedule": true,
          "manual_auto_lock_timeout": true,
          "manual_auto_lock_timeout_intervals": [
            5,
            10,
            20,
            30,
            60,
            120,
            300,
            600,
            1200,
            1800,
            3600
          ],
          "mobile_commissionable": true,
          "mute": true,
          "native_temporary_unlockable": false,
          "no_enter_code": true,
          "online_auto_lock": true,
          "phone_credential": false,
          "pin_credential": true,
          "power_sources": [
            "alkaline_battery",
            "lithium_battery"
          ],
          "programming_code": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": true,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wake_wifi": [
            "user_action",
            "heartbeat_interval",
            "user_action_except_manual"
          ],
          "wavelynx_mobile_credential": false
        },
        "vendor": "ayla"
      },
      "id": "8f54382e-9728-41f6-8e7a-dd8adf862491",
      "links": {
        "self": "http://api.remotelock.dev/models/8f54382e-9728-41f6-8e7a-dd8adf862491"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "LS-6i",
        "number": "LS-6i",
        "type": "lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "auto_lock_enable": true,
          "auto_lock_schedule": true,
          "auto_lock_timeouts": [
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            30,
            60,
            300,
            600,
            900,
            1200,
            1500,
            1800
          ],
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "heartbeat_intervals": [
            0,
            300,
            900,
            1200,
            1800,
            3600,
            7200,
            14400,
            28800,
            43200
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "local_pins": true,
          "lock_action_schedule": true,
          "manual_auto_lock_timeout": false,
          "manual_auto_lock_timeout_intervals": [
            5,
            10,
            20,
            30,
            60,
            120,
            300,
            600,
            1200,
            1800,
            3600
          ],
          "mobile_commissionable": true,
          "mute": true,
          "native_temporary_unlockable": false,
          "no_enter_code": false,
          "online_auto_lock": false,
          "phone_credential": false,
          "pin_credential": true,
          "power_sources": [
            "alkaline_battery",
            "lithium_battery"
          ],
          "programming_code": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": true,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wake_wifi": [
            "user_action",
            "heartbeat_interval"
          ],
          "wavelynx_mobile_credential": false
        },
        "vendor": "ayla"
      },
      "id": "d87e10c4-7feb-4dae-bfbe-dab482453d77",
      "links": {
        "self": "http://api.remotelock.dev/models/d87e10c4-7feb-4dae-bfbe-dab482453d77"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get Models By Brand with a invalid uuid

Returns a error 404.

Request

Endpoint

GET /brands/:brand_id/models

GET /brands/invalid_uuid/models

Parameters

Name Description
brand_id Brand Universally Unique IDentifier

Response


404 Not Found
{
  "error": "brand not found"
}

Devices

Update a Schlage Home lock

Request

Endpoint

PUT /devices/:id

PUT /devices/c3edd06a-b695-4608-b309-de5eba86f54f

Parameters

{
  "attributes": {
    "name": "East door",
    "location_id": "4d8da9a9-41a8-49f3-8443-e670c387071f"
  }
}
Name Description
attributes[name] Name
attributes[location_id] Location ID

Response


200 OK
{
  "data": {
    "type": "schlage_home_lock",
    "attributes": {
      "connectivity_enabled": true,
      "name": "East door",
      "state": "locked",
      "alive": true,
      "connected": true,
      "connected_at": "2026-03-03T00:06:07Z",
      "power_level": 90,
      "integration_status": "connected",
      "integration_id": "3ecb0f2f-6a8b-4262-be41-66d6db807818",
      "model_number": "SchlageEncode",
      "created_at": "2026-03-03T00:14:07Z",
      "updated_at": "2026-03-03T00:14:07Z",
      "location_name": "De-engineered explicit matrices",
      "serial_number": "3100003251782951",
      "location_id": "4d8da9a9-41a8-49f3-8443-e670c387071f",
      "model_id": "733b9f70-af23-4819-a7ea-449313a26944"
    },
    "id": "c3edd06a-b695-4608-b309-de5eba86f54f",
    "links": {
      "self": "http://api.remotelock.dev/devices/c3edd06a-b695-4608-b309-de5eba86f54f",
      "location": "http://api.remotelock.dev/locations/4d8da9a9-41a8-49f3-8443-e670c387071f",
      "model": "http://api.remotelock.dev/models/733b9f70-af23-4819-a7ea-449313a26944"
    }
  }
}

Lock a Schlage Home lock

Request

Endpoint

PUT /devices/:id/lock

PUT /devices/766fbadc-d41a-4288-b9aa-69df37379495/lock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "schlage_home_lock",
    "attributes": {
      "connectivity_enabled": true,
      "name": "loft",
      "state": "locked",
      "alive": true,
      "connected": true,
      "connected_at": "2026-03-03T00:10:08Z",
      "power_level": 90,
      "integration_status": "connected",
      "integration_id": "866385dc-5d54-452d-bdad-0934d1263069",
      "model_number": "SchlageEncode",
      "created_at": "2026-03-03T00:14:08Z",
      "updated_at": "2026-03-03T00:14:08Z",
      "location_name": "Future-proofed asymmetric orchestration",
      "serial_number": "3100003251782951",
      "location_id": "84b37a85-f03a-4fd9-b099-b73ba7446544",
      "model_id": "e81145e5-2a75-40b8-ba9b-6936eab536a8"
    },
    "id": "766fbadc-d41a-4288-b9aa-69df37379495",
    "links": {
      "self": "http://api.remotelock.dev/devices/766fbadc-d41a-4288-b9aa-69df37379495",
      "location": "http://api.remotelock.dev/locations/84b37a85-f03a-4fd9-b099-b73ba7446544",
      "model": "http://api.remotelock.dev/models/e81145e5-2a75-40b8-ba9b-6936eab536a8"
    }
  }
}

Unlock a Schlage Home lock

Request

Endpoint

PUT /devices/:id/unlock

PUT /devices/a8cfa154-f536-4d91-8eea-ba2a027379b3/unlock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "schlage_home_lock",
    "attributes": {
      "connectivity_enabled": true,
      "name": "kitchen",
      "state": "locked",
      "alive": true,
      "connected": true,
      "connected_at": "2026-03-03T00:10:08Z",
      "power_level": 90,
      "integration_status": "connected",
      "integration_id": "67152bc4-3798-4ebe-bf4f-5c1c8d26caeb",
      "model_number": "SchlageEncode",
      "created_at": "2026-03-03T00:14:08Z",
      "updated_at": "2026-03-03T00:14:08Z",
      "location_name": "Automated mission-critical intranet",
      "serial_number": "3100003251782951",
      "location_id": "c9a5b33a-3cfb-4e4f-8418-a46b51672284",
      "model_id": "e03d87e7-7729-4a8a-b9a7-430af16c140c"
    },
    "id": "a8cfa154-f536-4d91-8eea-ba2a027379b3",
    "links": {
      "self": "http://api.remotelock.dev/devices/a8cfa154-f536-4d91-8eea-ba2a027379b3",
      "location": "http://api.remotelock.dev/locations/c9a5b33a-3cfb-4e4f-8418-a46b51672284",
      "model": "http://api.remotelock.dev/models/e03d87e7-7729-4a8a-b9a7-430af16c140c"
    }
  }
}

Access person accesses of a Schlage Home lock

Request

Endpoint

GET /devices/:id/access_person_accesses

GET /devices/325244c1-f93b-4b4b-b6a6-e728d5a12fc7/access_person_accesses?attributes[access_person_type]=access_user

Parameters

attributes: {"access_person_type"=>"access_user"}
Name Description
attributes[access_person_type] Filter by type(s). Supported types: access_user and access_guest

Response


200 OK
{
  "data": [
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "location",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:14:08Z",
        "updated_at": "2026-03-03T00:14:08Z",
        "accessible_name": "Mandatory tertiary superstructure",
        "access_person_id": "84db7913-9cfc-4c16-b134-8c123d859baf",
        "access_person_type": "access_user",
        "accessible_id": "b45ce4f5-a494-4a79-b697-db4e269532ef"
      },
      "id": "7066f85c-072a-4e1c-9480-a0a31fd55d00",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/84db7913-9cfc-4c16-b134-8c123d859baf/accesses/7066f85c-072a-4e1c-9480-a0a31fd55d00",
        "access_person": "http://api.remotelock.dev/access_persons/84db7913-9cfc-4c16-b134-8c123d859baf",
        "accessible": "http://api.remotelock.dev/locations/b45ce4f5-a494-4a79-b697-db4e269532ef"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "schlage_home_lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:14:08Z",
        "updated_at": "2026-03-03T00:14:08Z",
        "accessible_name": "porch",
        "access_person_id": "a4651087-7b6c-4784-b2e0-0db64f059d34",
        "access_person_type": "access_user",
        "accessible_id": "325244c1-f93b-4b4b-b6a6-e728d5a12fc7"
      },
      "id": "b92e13d2-1e5a-4f57-8af2-0bdfff028534",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/a4651087-7b6c-4784-b2e0-0db64f059d34/accesses/b92e13d2-1e5a-4f57-8af2-0bdfff028534",
        "access_person": "http://api.remotelock.dev/access_persons/a4651087-7b6c-4784-b2e0-0db64f059d34",
        "accessible": "http://api.remotelock.dev/devices/325244c1-f93b-4b4b-b6a6-e728d5a12fc7"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Register a ResortLock

Request

Endpoint

POST /devices

POST /devices

Parameters

{
  "attributes": {
    "name": "My Resort Lock",
    "serial_number": "AB57EF010F4FBE01",
    "location_id": "c1a814c4-7215-41ef-b9d8-81106cf8ad44",
    "model_id": "a2965e51-c9b6-4813-acdf-011105f46c7a",
    "default_guest_start_time": "11:30:00",
    "default_guest_end_time": "14:15:00"
  }
}
Name Description
attributes[name] required Name
attributes[serial_number] required Device serial number
attributes[location_id] required Location
attributes[model_id] Model
attributes[default_guest_start_time] Default Access Guest start time, ISO 8601 24 hour time format
attributes[default_guest_end_time] Default Access Guest end time, ISO 8601 24 hour time format

Response


201 Created
{
  "data": {
    "type": "resort_lock",
    "attributes": {
      "name": "My Resort Lock",
      "default_guest_start_time": "11:30:00",
      "default_guest_end_time": "14:15:00",
      "model_number": "RL-4000",
      "created_at": "2026-03-03T00:14:16Z",
      "updated_at": "2026-03-03T00:14:16Z",
      "location_name": "Profit-focused 3rd generation model",
      "serial_number": "AB57EF010F4FBE01",
      "model_id": "a2965e51-c9b6-4813-acdf-011105f46c7a",
      "location_id": "c1a814c4-7215-41ef-b9d8-81106cf8ad44"
    },
    "id": "1bd39fcd-1748-4ae6-9074-f068126149c4",
    "links": {
      "self": "http://api.remotelock.dev/devices/1bd39fcd-1748-4ae6-9074-f068126149c4",
      "model": "http://api.remotelock.dev/models/a2965e51-c9b6-4813-acdf-011105f46c7a",
      "location": "http://api.remotelock.dev/locations/c1a814c4-7215-41ef-b9d8-81106cf8ad44"
    }
  }
}

Update a ResortLock

Request

Endpoint

PUT /devices/:id

PUT /devices/cf8a7244-ef1d-4341-a553-9e75bb96984b

Parameters

{
  "attributes": {
    "name": "Backdoor Resort Lock",
    "default_guest_start_time": "10:00:00"
  }
}
Name Description
attributes[name] Name
attributes[location_id] Location
attributes[serial_number] Device serial number
attributes[default_guest_start_time] Default Access Guest start time, ISO 8601 24 hour time format
attributes[default_guest_end_time] Default Access Guest end time, ISO 8601 24 hour time format

Response


200 OK
{
  "data": {
    "type": "resort_lock",
    "attributes": {
      "name": "Backdoor Resort Lock",
      "default_guest_start_time": "10:00:00",
      "default_guest_end_time": null,
      "model_number": "RL-4000",
      "created_at": "2026-03-03T00:14:17Z",
      "updated_at": "2026-03-03T00:14:17Z",
      "location_name": "Pre-emptive 24/7 forecast",
      "serial_number": "0A1LCXL30B4FBE01",
      "model_id": "7f2ae8a6-21ea-40cf-9dc2-392814eb29f4",
      "location_id": "023500aa-ef11-4afc-aa80-36fcd3197c87"
    },
    "id": "cf8a7244-ef1d-4341-a553-9e75bb96984b",
    "links": {
      "self": "http://api.remotelock.dev/devices/cf8a7244-ef1d-4341-a553-9e75bb96984b",
      "model": "http://api.remotelock.dev/models/7f2ae8a6-21ea-40cf-9dc2-392814eb29f4",
      "location": "http://api.remotelock.dev/locations/023500aa-ef11-4afc-aa80-36fcd3197c87"
    }
  }
}

Get all devices

Returns all device types (homogeneous).

Request

Endpoint

GET /devices

GET /devices

Parameters

Name Description
sort Sortable attributes: created_at and name, default: created_at ascending
[type] Filter by type(s). Supported types: acs_door, connector_lock, connector_thermostat, connector_sensor, lock, thermostat, power_plug, zwave_lock, schlage_home_lock, igloo_lock, acs_elevator, acs_elevator_floor, and resort_lock

Response


200 OK
{
  "data": [
    {
      "type": "power_plug",
      "attributes": {
        "name": "LS-P50i - 20F85EAK4RNA",
        "heartbeat_interval": 1200,
        "wifi_level": 0,
        "signal_quality": 0,
        "connected": false,
        "alive": true,
        "power_source": "hardwire",
        "connected_at": "2026-03-03T00:10:35Z",
        "location_name": "Open-architected methodical encoding",
        "model_number": "LS-P50i",
        "serial_number": "20F85EAK4RNA",
        "connectivity_enabled": true,
        "on": true,
        "voltage": 120.0,
        "power": 4.5,
        "power_factor": 0.57,
        "current": 0.06,
        "frequency": 59.95,
        "total_power": 8.75,
        "occupied": true,
        "model_id": "8d455cbd-8cb2-4a26-86bd-a0f6ff8325ed",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "power_plug_schedule_id": "db109592-5b89-44b3-b7e4-6e45eb8b3879"
      },
      "id": "30749ad4-7318-4075-9185-6a8a7b22aa5c",
      "links": {
        "self": "http://api.remotelock.dev/devices/30749ad4-7318-4075-9185-6a8a7b22aa5c",
        "model": "http://api.remotelock.dev/models/8d455cbd-8cb2-4a26-86bd-a0f6ff8325ed",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "power_plug_schedule": "http://api.remotelock.dev/schedules/db109592-5b89-44b3-b7e4-6e45eb8b3879"
      },
      "meta": {
        "restricted_actions": [
          "replace"
        ]
      }
    },
    {
      "type": "acs_door",
      "attributes": {
        "connectivity_enabled": true,
        "name": "Kids, Beauty & Books",
        "state": "unlocked",
        "connected": false,
        "model_number": "Mercury",
        "created_at": "2026-03-03T00:11:34Z",
        "updated_at": "2026-03-03T00:11:34Z",
        "location_name": "Open-architected methodical encoding",
        "model_id": "f36553f5-1c0c-4e2a-a06e-731e9f011d08",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "lock_action_schedule_id": "77940478-1789-4b2c-a651-56679c2c2dc2",
        "auto_lock_schedule_id": "12e3f6d5-4c7f-4582-8697-0884bdfce727"
      },
      "id": "81ce9133-9ae4-4027-a15f-25d2d5302027",
      "links": {
        "self": "http://api.remotelock.dev/devices/81ce9133-9ae4-4027-a15f-25d2d5302027",
        "model": "http://api.remotelock.dev/models/f36553f5-1c0c-4e2a-a06e-731e9f011d08",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "lock_action_schedule": "http://api.remotelock.dev/schedules/77940478-1789-4b2c-a651-56679c2c2dc2",
        "auto_lock_schedule": "http://api.remotelock.dev/schedules/12e3f6d5-4c7f-4582-8697-0884bdfce727"
      }
    },
    {
      "type": "lock",
      "attributes": {
        "name": "LS-DB500i - 20F85E00KZR3",
        "heartbeat_interval": 1200,
        "wifi_level": 0,
        "signal_quality": 1,
        "connected": false,
        "alive": true,
        "power_source": "alkaline_battery",
        "connected_at": "2026-03-03T00:11:35Z",
        "location_name": "Open-architected methodical encoding",
        "model_number": "LS-DB500i",
        "serial_number": "20F85E00KZR3",
        "connectivity_enabled": true,
        "algorithmic_pin_enabled": true,
        "auto_lock": true,
        "auto_lock_timeout": 20,
        "created_at": "2026-03-03T00:11:34Z",
        "default_guest_end_time": null,
        "default_guest_start_time": null,
        "local_pins": [
          "1234"
        ],
        "mac_address": "c0:11:d9:16:61:33",
        "manual_auto_lock_timeout": 0,
        "muted": false,
        "nfc": "no_nfc",
        "smd": "1100",
        "no_enter_code": false,
        "online_auto_lock": false,
        "power_level": 5,
        "programming_code": "123456",
        "state": "unlocked",
        "updated_at": "2026-03-03T00:11:34Z",
        "wake_wifi": "user_action",
        "wifi_enabled": true,
        "model_id": "b9a50c86-faaa-4ec2-88a9-4b2936e05134",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "lock_action_schedule_id": "77940478-1789-4b2c-a651-56679c2c2dc2",
        "auto_lock_schedule_id": "12e3f6d5-4c7f-4582-8697-0884bdfce727"
      },
      "id": "c8449ea0-5892-4c05-9587-63a09a103e52",
      "links": {
        "self": "http://api.remotelock.dev/devices/c8449ea0-5892-4c05-9587-63a09a103e52",
        "model": "http://api.remotelock.dev/models/b9a50c86-faaa-4ec2-88a9-4b2936e05134",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "lock_action_schedule": "http://api.remotelock.dev/schedules/77940478-1789-4b2c-a651-56679c2c2dc2",
        "auto_lock_schedule": "http://api.remotelock.dev/schedules/12e3f6d5-4c7f-4582-8697-0884bdfce727"
      },
      "meta": {
        "restricted_actions": [
          "replace"
        ]
      }
    },
    {
      "type": "resort_lock",
      "attributes": {
        "name": "RL-4000 - KKR425GG0B4FBE01",
        "default_guest_start_time": null,
        "default_guest_end_time": null,
        "model_number": "RL-4000",
        "created_at": "2026-03-03T00:11:34Z",
        "updated_at": "2026-03-03T00:11:34Z",
        "location_name": "Open-architected methodical encoding",
        "serial_number": "KKR425GG0B4FBE01",
        "model_id": "2722d888-dc69-4e39-8584-a898c8741119",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3"
      },
      "id": "d6bdcb00-e859-411d-8f8e-e027d40f03f3",
      "links": {
        "self": "http://api.remotelock.dev/devices/d6bdcb00-e859-411d-8f8e-e027d40f03f3",
        "model": "http://api.remotelock.dev/models/2722d888-dc69-4e39-8584-a898c8741119",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3"
      }
    },
    {
      "type": "lock",
      "attributes": {
        "name": "LS-6i - AC000W001171543",
        "heartbeat_interval": 1200,
        "wifi_level": 0,
        "signal_quality": 1,
        "connected": false,
        "alive": true,
        "power_source": "alkaline_battery",
        "connected_at": "2026-03-03T00:10:35Z",
        "location_name": "Open-architected methodical encoding",
        "model_number": "LS-6i",
        "serial_number": "AC000W001171543",
        "connectivity_enabled": true,
        "algorithmic_pin_enabled": true,
        "auto_lock": true,
        "auto_lock_timeout": 20,
        "created_at": "2026-03-03T00:11:34Z",
        "default_guest_end_time": null,
        "default_guest_start_time": null,
        "local_pins": [
          "1234"
        ],
        "mac_address": "b4:4a:ce:55:51:90",
        "manual_auto_lock_timeout": 0,
        "muted": false,
        "nfc": "no_nfc",
        "smd": "1100",
        "no_enter_code": false,
        "online_auto_lock": false,
        "power_level": 5,
        "programming_code": "123456",
        "state": "unlocked",
        "updated_at": "2026-03-03T00:11:34Z",
        "wake_wifi": "user_action",
        "wifi_enabled": true,
        "model_id": "d082b542-fa13-4558-92b4-6313dbcf3355",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "lock_action_schedule_id": "77940478-1789-4b2c-a651-56679c2c2dc2",
        "auto_lock_schedule_id": "12e3f6d5-4c7f-4582-8697-0884bdfce727"
      },
      "id": "dbb00869-4fcf-479d-8ded-34284f941d9b",
      "links": {
        "self": "http://api.remotelock.dev/devices/dbb00869-4fcf-479d-8ded-34284f941d9b",
        "model": "http://api.remotelock.dev/models/d082b542-fa13-4558-92b4-6313dbcf3355",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "lock_action_schedule": "http://api.remotelock.dev/schedules/77940478-1789-4b2c-a651-56679c2c2dc2",
        "auto_lock_schedule": "http://api.remotelock.dev/schedules/12e3f6d5-4c7f-4582-8697-0884bdfce727"
      }
    },
    {
      "type": "lock",
      "attributes": {
        "connectivity_enabled": true,
        "name": "August - L2FQEA4928",
        "serial_number": "L2FQEA4928",
        "state": "locked",
        "alive": true,
        "connected": true,
        "connected_at": "2026-03-03T00:02:35.000Z",
        "power_level": 90,
        "signal_quality": 3,
        "default_guest_start_time": null,
        "default_guest_end_time": null,
        "model_number": "August",
        "created_at": "2026-03-03T00:11:34Z",
        "updated_at": "2026-03-03T00:11:34Z",
        "location_name": "Open-architected methodical encoding",
        "model_id": "a520e1ff-1de4-40a3-958f-29ee23bd7d35",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3"
      },
      "id": "f352afe1-5afd-4a1f-af51-a6c037f5a414",
      "links": {
        "self": "http://api.remotelock.dev/devices/f352afe1-5afd-4a1f-af51-a6c037f5a414",
        "model": "http://api.remotelock.dev/models/a520e1ff-1de4-40a3-958f-29ee23bd7d35",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3"
      }
    },
    {
      "type": "thermostat",
      "attributes": {
        "name": "LS-60i - 001DC9A03GT8",
        "heartbeat_interval": 1200,
        "wifi_level": 0,
        "signal_quality": 1,
        "connected": true,
        "alive": true,
        "power_source": "hardwire",
        "connected_at": "2026-03-03T00:08:35Z",
        "location_name": "Open-architected methodical encoding",
        "model_number": "LS-60i",
        "serial_number": "001DC9A03GT8",
        "connectivity_enabled": true,
        "current_mode": "cool",
        "target_mode": "auto",
        "fan_mode": "auto",
        "hold": false,
        "temperature": 77.0,
        "target_temperature": 75.5,
        "unit": "F",
        "humidity": 45,
        "energy_saver": true,
        "scheduled_target_temperature": 80.0,
        "desired_target_temperature": 75.5,
        "created_at": "2026-03-03T00:11:34Z",
        "updated_at": "2026-03-03T00:11:34Z",
        "model_id": "7dd280a7-c9b9-44d3-b6f0-73320577a91b",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "thermostat_schedule_id": "c815790a-9688-4c92-bdd7-559f533f44ba"
      },
      "id": "fea63ce8-bc46-44be-90d8-3effb9e71506",
      "links": {
        "self": "http://api.remotelock.dev/devices/fea63ce8-bc46-44be-90d8-3effb9e71506",
        "model": "http://api.remotelock.dev/models/7dd280a7-c9b9-44d3-b6f0-73320577a91b",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "thermostat_schedule": "http://api.remotelock.dev/schedules/c815790a-9688-4c92-bdd7-559f533f44ba"
      },
      "meta": {
        "restricted_actions": [
          "replace"
        ]
      }
    },
    {
      "type": "lock",
      "attributes": {
        "connectivity_enabled": true,
        "name": "YaleHome - L2FQ137BD1",
        "serial_number": "L2FQ137BD1",
        "state": "locked",
        "alive": true,
        "connected": true,
        "connected_at": "2026-03-03T00:07:35.000Z",
        "power_level": 90,
        "signal_quality": 3,
        "default_guest_start_time": null,
        "default_guest_end_time": null,
        "model_number": "YaleHome",
        "created_at": "2026-03-03T00:11:34Z",
        "updated_at": "2026-03-03T00:11:34Z",
        "location_name": "Open-architected methodical encoding",
        "model_id": "2c8fa0eb-9b9e-46df-be5a-7a6533a211dd",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3"
      },
      "id": "fed38028-5155-4e1c-9bee-6144e5a86f6e",
      "links": {
        "self": "http://api.remotelock.dev/devices/fed38028-5155-4e1c-9bee-6144e5a86f6e",
        "model": "http://api.remotelock.dev/models/2c8fa0eb-9b9e-46df-be5a-7a6533a211dd",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3"
      }
    },
    {
      "type": "acs_elevator_floor",
      "attributes": {
        "connectivity_enabled": true,
        "name": "Tools, Baby & Electronics",
        "state": "locked",
        "number": 1,
        "model_number": "MercuryElevatorFloor",
        "created_at": "2026-03-03T00:11:35Z",
        "updated_at": "2026-03-03T00:11:35Z",
        "connected": true,
        "location_name": "Open-architected methodical encoding",
        "model_id": "ca0da6f7-f539-4dc9-8776-88d5aa92f96a",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "elevator_id": "d1c7ffa1-495d-46e2-9b02-75fce91df8b6"
      },
      "id": "333cee79-ecb7-49c7-beec-5644ae118f46",
      "links": {
        "self": "http://api.remotelock.dev/devices/333cee79-ecb7-49c7-beec-5644ae118f46",
        "model": "http://api.remotelock.dev/models/ca0da6f7-f539-4dc9-8776-88d5aa92f96a",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "elevator": "http://api.remotelock.dev/devices/d1c7ffa1-495d-46e2-9b02-75fce91df8b6"
      }
    },
    {
      "type": "schlage_home_lock",
      "attributes": {
        "connectivity_enabled": true,
        "name": "cellar",
        "state": "locked",
        "alive": true,
        "connected": true,
        "connected_at": "2026-03-03T00:11:35Z",
        "power_level": 90,
        "integration_status": "connected",
        "integration_id": "723fc629-f530-45e8-971f-23256afee408",
        "model_number": "SchlageEncode",
        "created_at": "2026-03-03T00:11:35Z",
        "updated_at": "2026-03-03T00:11:35Z",
        "location_name": "Open-architected methodical encoding",
        "serial_number": "3100003251782951",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "model_id": "a179a1d4-f9b7-476c-98d6-44022c8294d0"
      },
      "id": "54a71acc-0203-4aff-a987-bcf603eab3f5",
      "links": {
        "self": "http://api.remotelock.dev/devices/54a71acc-0203-4aff-a987-bcf603eab3f5",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "model": "http://api.remotelock.dev/models/a179a1d4-f9b7-476c-98d6-44022c8294d0"
      }
    },
    {
      "type": "igloo_lock",
      "attributes": {
        "connectivity_enabled": true,
        "name": "attic",
        "model_number": "IglooLock",
        "location_name": "Open-architected methodical encoding",
        "integration_status": "connected",
        "integration_id": "test-mock-account-id",
        "state": "locked",
        "pending_state": null,
        "connected_at": null,
        "alive": false,
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "model_id": "2b477e86-61b7-4a05-88f8-b7d2cb53bb6f"
      },
      "id": "79ee55de-fc12-422f-9341-9f825ac14c45",
      "links": {
        "self": "http://api.remotelock.dev/devices/79ee55de-fc12-422f-9341-9f825ac14c45",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "model": "http://api.remotelock.dev/models/2b477e86-61b7-4a05-88f8-b7d2cb53bb6f"
      }
    },
    {
      "type": "connector_lock",
      "attributes": {
        "connectivity_enabled": true,
        "connected": false,
        "connected_at": "2026-03-03T00:11:35Z",
        "alive": true,
        "name": "porch",
        "power_level": 100,
        "serial_number": "7dd6d6fda7e2233408aa1d6a60a6a91e",
        "signal_quality": 4,
        "state": "LOCKED",
        "pending_physical_sync": false,
        "model_number": "RubberLock",
        "created_at": "2026-03-03T00:11:35Z",
        "updated_at": "2026-03-03T00:11:35Z",
        "location_name": "Open-architected methodical encoding",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "model_id": "2a80a7fe-93c8-413b-89a4-28bad78f1929",
        "lock_action_schedule_id": "77940478-1789-4b2c-a651-56679c2c2dc2",
        "auto_lock_schedule_id": "12e3f6d5-4c7f-4582-8697-0884bdfce727"
      },
      "id": "e6fc41e6-741f-4b23-a5d7-629ac86d18d6",
      "links": {
        "self": "http://api.remotelock.dev/devices/e6fc41e6-741f-4b23-a5d7-629ac86d18d6",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "model": "http://api.remotelock.dev/models/2a80a7fe-93c8-413b-89a4-28bad78f1929",
        "lock_action_schedule": "http://api.remotelock.dev/schedules/77940478-1789-4b2c-a651-56679c2c2dc2",
        "auto_lock_schedule": "http://api.remotelock.dev/schedules/12e3f6d5-4c7f-4582-8697-0884bdfce727"
      }
    },
    {
      "type": "zwave_lock",
      "attributes": {
        "connectivity_enabled": true,
        "name": "SKY",
        "state": "locked",
        "connected": true,
        "power_level": 50,
        "protocol": "",
        "model_number": "ZWaveLock",
        "created_at": "2026-03-03T00:11:35Z",
        "updated_at": "2026-03-03T00:11:35Z",
        "location_name": "Open-architected methodical encoding",
        "location_id": "73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "model_id": "72611534-c3ff-4beb-9801-f32f9a5969ce"
      },
      "id": "fda86bde-636f-4a0b-a1a7-4670589c3adc",
      "links": {
        "self": "http://api.remotelock.dev/devices/fda86bde-636f-4a0b-a1a7-4670589c3adc",
        "location": "http://api.remotelock.dev/locations/73455a4c-c6af-4694-b9e7-c92cf577a4f3",
        "model": "http://api.remotelock.dev/models/72611534-c3ff-4beb-9801-f32f9a5969ce"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 13,
    "total_pages": 1
  }
}

Get a device

Request

Endpoint

GET /devices/:id

GET /devices/81c02d5a-d1a1-4473-a2ce-0a3039c4cc86

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "lock",
    "attributes": {
      "name": "LS-6i - AC000W007146997",
      "heartbeat_interval": 1200,
      "wifi_level": 0,
      "signal_quality": 0,
      "connected": false,
      "alive": true,
      "power_source": "alkaline_battery",
      "connected_at": "2026-03-03T00:07:51Z",
      "location_name": "Decentralized multi-state groupware",
      "model_number": "LS-6i",
      "serial_number": "AC000W007146997",
      "connectivity_enabled": true,
      "algorithmic_pin_enabled": true,
      "auto_lock": true,
      "auto_lock_timeout": 20,
      "created_at": "2026-03-03T00:11:51Z",
      "default_guest_end_time": null,
      "default_guest_start_time": null,
      "local_pins": [
        "1234"
      ],
      "mac_address": "12:3c:d8:22:da:20",
      "manual_auto_lock_timeout": 0,
      "muted": false,
      "nfc": "no_nfc",
      "smd": "1100",
      "no_enter_code": false,
      "online_auto_lock": false,
      "power_level": 15,
      "programming_code": "123456",
      "state": "locked",
      "updated_at": "2026-03-03T00:11:51Z",
      "wake_wifi": "user_action",
      "wifi_enabled": true,
      "model_id": "a9868804-8120-4dc5-aadf-5e5997539012",
      "location_id": "6f723440-b720-4338-85ab-1cd6873cdc48",
      "lock_action_schedule_id": "a0ce88ae-ecac-4805-ba4f-8150034b507a",
      "auto_lock_schedule_id": "393d7b7a-2ee5-43cb-8392-4ce6748d4064"
    },
    "id": "81c02d5a-d1a1-4473-a2ce-0a3039c4cc86",
    "links": {
      "self": "http://api.remotelock.dev/devices/81c02d5a-d1a1-4473-a2ce-0a3039c4cc86",
      "model": "http://api.remotelock.dev/models/a9868804-8120-4dc5-aadf-5e5997539012",
      "location": "http://api.remotelock.dev/locations/6f723440-b720-4338-85ab-1cd6873cdc48",
      "lock_action_schedule": "http://api.remotelock.dev/schedules/a0ce88ae-ecac-4805-ba4f-8150034b507a",
      "auto_lock_schedule": "http://api.remotelock.dev/schedules/393d7b7a-2ee5-43cb-8392-4ce6748d4064"
    }
  }
}

Temporarily unlock a Device

Temporarily unlocks a lock. Supported device API types: acs_door and connector_lock with the attribute native_temporary_unlockable = true.

Request

Endpoint

PUT /devices/:id/temporary_unlock

PUT /devices/1421c7b7-3c42-437e-92cf-fe8d573ec7c8/temporary_unlock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "acs_door",
    "attributes": {
      "connectivity_enabled": true,
      "name": "Books",
      "state": "unlocked",
      "connected": false,
      "model_number": "Mercury",
      "created_at": "2026-03-03T00:11:51Z",
      "updated_at": "2026-03-03T00:11:51Z",
      "location_name": "Diverse demand-driven intranet",
      "model_id": "c156438d-2cb7-4905-a372-09d2e63a4f61",
      "location_id": "cb445f2e-098e-472e-a46a-8e2c5e35d219"
    },
    "id": "1421c7b7-3c42-437e-92cf-fe8d573ec7c8",
    "links": {
      "self": "http://api.remotelock.dev/devices/1421c7b7-3c42-437e-92cf-fe8d573ec7c8",
      "model": "http://api.remotelock.dev/models/c156438d-2cb7-4905-a372-09d2e63a4f61",
      "location": "http://api.remotelock.dev/locations/cb445f2e-098e-472e-a46a-8e2c5e35d219"
    }
  }
}

Temporarily unlock a Device for access person

Temporarily unlocks a lock after checking access person's access.

Request

Endpoint

PUT /devices/:id/temporary_unlock/:access_person_id

PUT /devices/80fcb85e-1105-4bd7-b4a2-716db1803eaa/temporary_unlock/45fc1a77-6035-43a9-be1b-7ef1744ee621

Parameters

{
  "pin": "1111"
}
Name Description
pin Required when require_pin_verification is true

Response


200 OK
{
  "data": {
    "type": "acs_door",
    "attributes": {
      "connectivity_enabled": true,
      "name": "Grocery & Movies",
      "state": "unlocked",
      "connected": false,
      "model_number": "Mercury",
      "created_at": "2026-03-03T00:11:52Z",
      "updated_at": "2026-03-03T00:11:52Z",
      "location_name": "Multi-layered systematic paradigm",
      "model_id": "07839651-bf5a-4a39-af2c-f10ce4f7503f",
      "location_id": "2194b318-52ff-453e-9023-51fd80fc37e2"
    },
    "id": "80fcb85e-1105-4bd7-b4a2-716db1803eaa",
    "links": {
      "self": "http://api.remotelock.dev/devices/80fcb85e-1105-4bd7-b4a2-716db1803eaa",
      "model": "http://api.remotelock.dev/models/07839651-bf5a-4a39-af2c-f10ce4f7503f",
      "location": "http://api.remotelock.dev/locations/2194b318-52ff-453e-9023-51fd80fc37e2"
    }
  }
}

Respond with a not found response

AccessPersonDevice not found

Request

Endpoint

PUT /devices/:id/temporary_unlock/:access_person_id

PUT /devices/55ba1e92-aa75-4d18-99b4-e9cc701daccc/temporary_unlock/1ab71357-5e81-4c2a-b53e-bcde25e19677

Parameters

{
  "pin": "1111"
}
Name Description
pin Required when require_pin_verification is true

Response


404 Not Found
{
  "message": "Access person does not have access to this device",
  "type": "missing_access_person_device"
}

Deregister a device

Request

Endpoint

DELETE /devices/:id

DELETE /devices/ee4d26a7-afab-4f87-b4d4-a5742dc1dbab

Parameters

{
  "audited": true
}

None.

Response


204 No Content

Register an OpenEdge RG/BG/CG (formerly 5i/3i/7i) lock

Request

Endpoint

POST /devices

POST /devices

Parameters

{
  "attributes": {
    "name": "Home Lock",
    "location_id": "b8dd12c7-48ae-4b76-be20-74ae5f6a3760",
    "serial_number": "AC000W000213429"
  }
}
Name Description
attributes[name] required Name
attributes[serial_number] required Serial number
attributes[model_id] Model
attributes[location_id] required Location

Response


201 Created
{
  "data": {
    "type": "lock",
    "attributes": {
      "name": "Home Lock",
      "heartbeat_interval": 1200,
      "wifi_level": 0,
      "signal_quality": 2,
      "connected": false,
      "alive": true,
      "power_source": "alkaline_battery",
      "connected_at": "2026-03-03T00:10:08Z",
      "location_name": "Quality-focused discrete throughput",
      "model_number": "LS-5i",
      "serial_number": "AC000W000213429",
      "connectivity_enabled": true,
      "algorithmic_pin_enabled": true,
      "auto_lock": true,
      "auto_lock_timeout": 20,
      "created_at": "2026-03-03T00:12:08Z",
      "default_guest_end_time": null,
      "default_guest_start_time": null,
      "local_pins": [
        "1234"
      ],
      "mac_address": "f2:57:a8:67:39:16",
      "manual_auto_lock_timeout": 0,
      "muted": false,
      "nfc": "no_nfc",
      "smd": "1100",
      "no_enter_code": false,
      "online_auto_lock": false,
      "power_level": 5,
      "programming_code": "123456",
      "state": "unlocked",
      "updated_at": "2026-03-03T00:12:08Z",
      "wake_wifi": "user_action",
      "wifi_enabled": true,
      "model_id": "c2c96a3b-a49f-4451-816f-409e0177ba96",
      "location_id": "b8dd12c7-48ae-4b76-be20-74ae5f6a3760"
    },
    "id": "91c5be68-de2b-4eaa-9030-92e835e82c69",
    "links": {
      "self": "http://api.remotelock.dev/devices/91c5be68-de2b-4eaa-9030-92e835e82c69",
      "model": "http://api.remotelock.dev/models/c2c96a3b-a49f-4451-816f-409e0177ba96",
      "location": "http://api.remotelock.dev/locations/b8dd12c7-48ae-4b76-be20-74ae5f6a3760"
    }
  }
}

Fields

Name Description
heartbeat_interval Number of seconds between connections.
connected Is the device connected at this moment?
alive Is the device "heartbeating" regularly?
signal_quality Wi-Fi signal quality, values 0 to 4
power_level Battery power level (percentage)
wake_wifi When the lock is synced with the cloud.
auto_lock Automatically lock after an unlock event.
auto_lock_timeout Number of seconds before relocking.
connected_at Time of last successful connection.

Update a lock

Your settings changes might be lost if you make this request before the lock wakes up for the first time - which means you should wait until connected_at has a timestamp before making this request. This is because we request the current lock settings whenever it's registered.

Request

Endpoint

PUT /devices/:id

PUT /devices/51e930c7-89c7-45ae-a89e-be63f1c596bc

Parameters

{
  "attributes": {
    "name": "Backdoor Lock",
    "location_id": "850e1506-9c97-4e88-80c8-1c3e162f5088",
    "default_guest_start_time": "11:15:00",
    "power_source": "alkaline_battery",
    "local_pins": [
      "0999"
    ]
  }
}
Name Description
attributes[name] Name
attributes[serial_number] Device serial number
attributes[programming_code] Programming code
attributes[heartbeat_interval] Heartbeat interval
attributes[wake_wifi] Controls what events cause the lock to sync with the cloud. Can be user_action or heartbeat_interval. Additionally, model LS-5i supports user_action_except_manual, which excludes interaction with the knob.
attributes[muted] Muted
attributes[auto_lock] Auto-lock
attributes[auto_lock_timeout] Auto-lock timeout
attributes[auto_lock_schedule_id] Auto-lock Schedule
attributes[lock_action_schedule_id] Lock Action Schedule
attributes[location_id] Location
attributes[default_guest_start_time] Default Access Guest start time, ISO 8601 24 hour time format
attributes[default_guest_end_time] Default Access Guest end time, ISO 8601 24 hour time format
attributes[power_source] One of hardwire, alkaline_battery, or lithium_battery. This affects the battery level percentage as well as "low battery" notifications.
attributes[local_pins] Array of PINs programmed via the device keypad. This is a "set" operation. Only PIN removal is supported.

Response


200 OK
{
  "data": {
    "type": "lock",
    "attributes": {
      "name": "Backdoor Lock",
      "heartbeat_interval": 1200,
      "wifi_level": 0,
      "signal_quality": 3,
      "connected": true,
      "alive": true,
      "power_source": "alkaline_battery",
      "connected_at": "2026-03-03T00:11:11Z",
      "location_name": "Down-sized logistical algorithm",
      "model_number": "OEMAIN",
      "serial_number": "AC000W005290030",
      "connectivity_enabled": true,
      "algorithmic_pin_enabled": true,
      "auto_lock": true,
      "auto_lock_timeout": 20,
      "created_at": "2026-03-03T00:12:10Z",
      "default_guest_end_time": null,
      "default_guest_start_time": "11:15:00",
      "local_pins": [
        "1234"
      ],
      "mac_address": "d8:a2:9c:d8:e6:aa",
      "manual_auto_lock_timeout": 0,
      "muted": false,
      "nfc": "no_nfc",
      "smd": "1100",
      "no_enter_code": false,
      "online_auto_lock": false,
      "power_level": 5,
      "programming_code": "123456",
      "state": "unlocked",
      "updated_at": "2026-03-03T00:12:11Z",
      "wake_wifi": "user_action",
      "wifi_enabled": true,
      "model_id": "5cee1df6-80dc-4c57-9b1d-bd5b5971a223",
      "location_id": "850e1506-9c97-4e88-80c8-1c3e162f5088"
    },
    "id": "51e930c7-89c7-45ae-a89e-be63f1c596bc",
    "links": {
      "self": "http://api.remotelock.dev/devices/51e930c7-89c7-45ae-a89e-be63f1c596bc",
      "model": "http://api.remotelock.dev/models/5cee1df6-80dc-4c57-9b1d-bd5b5971a223",
      "location": "http://api.remotelock.dev/locations/850e1506-9c97-4e88-80c8-1c3e162f5088"
    }
  }
}

Lock a lock

Request

Endpoint

PUT /devices/:id/lock

PUT /devices/b48fb499-5b46-447c-97f1-530814c41429/lock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "lock",
    "attributes": {
      "name": "OEMAIN - AC000W002607392",
      "heartbeat_interval": 0,
      "wifi_level": 0,
      "signal_quality": 0,
      "connected": false,
      "alive": false,
      "power_source": "hardwire",
      "connected_at": null,
      "location_name": "Optimized 6th generation artificial intelligence",
      "model_number": "OEMAIN",
      "serial_number": "AC000W002607392",
      "connectivity_enabled": false,
      "algorithmic_pin_enabled": false,
      "auto_lock": true,
      "auto_lock_timeout": 0,
      "created_at": "2026-03-03T00:12:11Z",
      "default_guest_end_time": null,
      "default_guest_start_time": null,
      "local_pins": [

      ],
      "mac_address": "",
      "manual_auto_lock_timeout": 0,
      "muted": false,
      "nfc": "no_nfc",
      "smd": "",
      "no_enter_code": false,
      "online_auto_lock": false,
      "power_level": 0,
      "programming_code": null,
      "state": "locked",
      "updated_at": "2026-03-03T00:12:11Z",
      "wake_wifi": "user_action",
      "wifi_enabled": false,
      "model_id": "c866766d-ab51-4bad-adc1-0a2d518d27eb",
      "location_id": "e6750c5a-356c-4df5-9d10-a7b5b11aa25b"
    },
    "id": "b48fb499-5b46-447c-97f1-530814c41429",
    "links": {
      "self": "http://api.remotelock.dev/devices/b48fb499-5b46-447c-97f1-530814c41429",
      "model": "http://api.remotelock.dev/models/c866766d-ab51-4bad-adc1-0a2d518d27eb",
      "location": "http://api.remotelock.dev/locations/e6750c5a-356c-4df5-9d10-a7b5b11aa25b"
    }
  }
}

Unlock a lock

Request

Endpoint

PUT /devices/:id/unlock

PUT /devices/90160d8a-0bf6-4e08-939a-5defd1ad6847/unlock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "lock",
    "attributes": {
      "name": "OEMAIN - AC000W005802008",
      "heartbeat_interval": 0,
      "wifi_level": 0,
      "signal_quality": 0,
      "connected": false,
      "alive": false,
      "power_source": "hardwire",
      "connected_at": null,
      "location_name": "Pre-emptive solution-oriented strategy",
      "model_number": "OEMAIN",
      "serial_number": "AC000W005802008",
      "connectivity_enabled": false,
      "algorithmic_pin_enabled": false,
      "auto_lock": true,
      "auto_lock_timeout": 0,
      "created_at": "2026-03-03T00:12:12Z",
      "default_guest_end_time": null,
      "default_guest_start_time": null,
      "local_pins": [

      ],
      "mac_address": "",
      "manual_auto_lock_timeout": 0,
      "muted": false,
      "nfc": "no_nfc",
      "smd": "",
      "no_enter_code": false,
      "online_auto_lock": false,
      "power_level": 0,
      "programming_code": null,
      "state": "unlocked",
      "updated_at": "2026-03-03T00:12:12Z",
      "wake_wifi": "user_action",
      "wifi_enabled": false,
      "model_id": "3ec489ed-1fbe-4d54-982f-e16de7aea413",
      "location_id": "562b7f63-6d61-4fd4-a21f-9b4e06aa42c1"
    },
    "id": "90160d8a-0bf6-4e08-939a-5defd1ad6847",
    "links": {
      "self": "http://api.remotelock.dev/devices/90160d8a-0bf6-4e08-939a-5defd1ad6847",
      "model": "http://api.remotelock.dev/models/3ec489ed-1fbe-4d54-982f-e16de7aea413",
      "location": "http://api.remotelock.dev/locations/562b7f63-6d61-4fd4-a21f-9b4e06aa42c1"
    }
  }
}

Lock a device for access person

Request

Endpoint

PUT /devices/:id/lock/:access_person_id

PUT /devices/2f72f9b8-8c70-4d5f-9865-426a73a87e3b/lock/422a4285-4443-48e7-b16c-737aae5ed418

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "lock",
    "attributes": {
      "name": "OEMAIN - AC000W006069085",
      "heartbeat_interval": 1200,
      "wifi_level": 0,
      "signal_quality": 3,
      "connected": false,
      "alive": true,
      "power_source": "alkaline_battery",
      "connected_at": "2026-03-03T00:08:12Z",
      "location_name": "Front-line even-keeled frame",
      "model_number": "OEMAIN",
      "serial_number": "AC000W006069085",
      "connectivity_enabled": true,
      "algorithmic_pin_enabled": true,
      "auto_lock": true,
      "auto_lock_timeout": 20,
      "created_at": "2026-03-03T00:12:12Z",
      "default_guest_end_time": null,
      "default_guest_start_time": null,
      "local_pins": [
        "1234"
      ],
      "mac_address": "4b:d0:75:9d:79:b6",
      "manual_auto_lock_timeout": 0,
      "muted": false,
      "nfc": "no_nfc",
      "smd": "1100",
      "no_enter_code": false,
      "online_auto_lock": false,
      "power_level": 50,
      "programming_code": "123456",
      "state": "locked",
      "updated_at": "2026-03-03T00:12:12Z",
      "wake_wifi": "user_action",
      "wifi_enabled": true,
      "model_id": "9dea23a0-2aef-43bd-b95e-f0abd21e083e",
      "location_id": "7b073a27-7d68-4ed5-9e21-b57c1c9fc5eb"
    },
    "id": "2f72f9b8-8c70-4d5f-9865-426a73a87e3b",
    "links": {
      "self": "http://api.remotelock.dev/devices/2f72f9b8-8c70-4d5f-9865-426a73a87e3b",
      "model": "http://api.remotelock.dev/models/9dea23a0-2aef-43bd-b95e-f0abd21e083e",
      "location": "http://api.remotelock.dev/locations/7b073a27-7d68-4ed5-9e21-b57c1c9fc5eb"
    }
  }
}

Unlock a device for access person

Request

Endpoint

PUT /devices/:id/unlock/:access_person_id

PUT /devices/c393ef13-dfdb-474e-a57a-0fe87312421c/unlock/b2dbc3a9-e80d-4ae5-a02d-5bab7bd99083

Parameters

{
  "pin": "1111"
}
Name Description
pin Required when require_pin_verification is true

Response


200 OK
{
  "data": {
    "type": "lock",
    "attributes": {
      "name": "OEMAIN - AC000W006042844",
      "heartbeat_interval": 1200,
      "wifi_level": 0,
      "signal_quality": 2,
      "connected": true,
      "alive": true,
      "power_source": "alkaline_battery",
      "connected_at": "2026-03-03T00:12:13Z",
      "location_name": "Diverse system-worthy policy",
      "model_number": "OEMAIN",
      "serial_number": "AC000W006042844",
      "connectivity_enabled": true,
      "algorithmic_pin_enabled": true,
      "auto_lock": true,
      "auto_lock_timeout": 20,
      "created_at": "2026-03-03T00:12:13Z",
      "default_guest_end_time": null,
      "default_guest_start_time": null,
      "local_pins": [
        "1234"
      ],
      "mac_address": "58:6f:10:9a:24:00",
      "manual_auto_lock_timeout": 0,
      "muted": false,
      "nfc": "no_nfc",
      "smd": "1100",
      "no_enter_code": false,
      "online_auto_lock": false,
      "power_level": 15,
      "programming_code": "123456",
      "state": "locked",
      "updated_at": "2026-03-03T00:12:13Z",
      "wake_wifi": "user_action",
      "wifi_enabled": true,
      "model_id": "ec649bf6-524d-46f2-8f41-1407459fba6c",
      "location_id": "8d1b2eeb-01e3-49ca-88dc-9c6cf1739f14"
    },
    "id": "c393ef13-dfdb-474e-a57a-0fe87312421c",
    "links": {
      "self": "http://api.remotelock.dev/devices/c393ef13-dfdb-474e-a57a-0fe87312421c",
      "model": "http://api.remotelock.dev/models/ec649bf6-524d-46f2-8f41-1407459fba6c",
      "location": "http://api.remotelock.dev/locations/8d1b2eeb-01e3-49ca-88dc-9c6cf1739f14"
    }
  }
}

Access person accesses of a lock

Request

Endpoint

GET /devices/:id/access_person_accesses

GET /devices/1c3f2ef8-5686-4248-a1a3-55866d0e7e09/access_person_accesses?attributes[access_person_type]=access_user

Parameters

attributes: {"access_person_type"=>"access_user"}
Name Description
attributes[access_person_type] Filter by type(s). Supported types: access_user and access_guest

Response


200 OK
{
  "data": [
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "location",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:14Z",
        "updated_at": "2026-03-03T00:12:14Z",
        "accessible_name": "Synchronised global concept",
        "access_person_id": "fe7110d9-65a8-4f9f-8ea9-19c81eae6073",
        "access_person_type": "access_user",
        "accessible_id": "0f941a8f-69d8-4962-ad31-9c6aab7d3592"
      },
      "id": "3cf7a6c3-0713-4aa8-bf2e-2603dfd0a97d",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/fe7110d9-65a8-4f9f-8ea9-19c81eae6073/accesses/3cf7a6c3-0713-4aa8-bf2e-2603dfd0a97d",
        "access_person": "http://api.remotelock.dev/access_persons/fe7110d9-65a8-4f9f-8ea9-19c81eae6073",
        "accessible": "http://api.remotelock.dev/locations/0f941a8f-69d8-4962-ad31-9c6aab7d3592"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:12:14Z",
        "updated_at": "2026-03-03T00:12:14Z",
        "accessible_name": "OEMAIN - AC000W005928011",
        "access_person_id": "cc37a136-6639-426a-8e8b-da97a2f7de7f",
        "access_person_type": "access_user",
        "accessible_id": "1c3f2ef8-5686-4248-a1a3-55866d0e7e09"
      },
      "id": "1995e4dc-29af-4003-833e-4ce73aa399bc",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/cc37a136-6639-426a-8e8b-da97a2f7de7f/accesses/1995e4dc-29af-4003-833e-4ce73aa399bc",
        "access_person": "http://api.remotelock.dev/access_persons/cc37a136-6639-426a-8e8b-da97a2f7de7f",
        "accessible": "http://api.remotelock.dev/devices/1c3f2ef8-5686-4248-a1a3-55866d0e7e09"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Update a ZWave lock

Request

Endpoint

PUT /devices/:id

PUT /devices/d5dafc76-8f23-447c-a7c6-636d96a8b8a6

Parameters

{
  "attributes": {
    "name": "East door"
  }
}
Name Description
attributes[name] Name

Response


200 OK
{
  "data": {
    "type": "zwave_lock",
    "attributes": {
      "connectivity_enabled": true,
      "name": "East door",
      "state": "locked",
      "connected": false,
      "power_level": 0,
      "protocol": "",
      "model_number": "ZWaveLock",
      "created_at": "2026-03-03T00:13:45Z",
      "updated_at": "2026-03-03T00:13:45Z",
      "location_name": "Operative non-volatile structure",
      "location_id": "17e50fb7-4e44-4d74-8edd-30abdb8f02d6",
      "model_id": "97336ceb-c0e1-44a6-9e41-4882040bd9ce"
    },
    "id": "d5dafc76-8f23-447c-a7c6-636d96a8b8a6",
    "links": {
      "self": "http://api.remotelock.dev/devices/d5dafc76-8f23-447c-a7c6-636d96a8b8a6",
      "location": "http://api.remotelock.dev/locations/17e50fb7-4e44-4d74-8edd-30abdb8f02d6",
      "model": "http://api.remotelock.dev/models/97336ceb-c0e1-44a6-9e41-4882040bd9ce"
    }
  }
}

Lock a ZWave lock

Request

Endpoint

PUT /devices/:id/lock

PUT /devices/d15f00a0-1eca-4d61-a8d3-6f187ec2fc9c/lock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "zwave_lock",
    "attributes": {
      "connectivity_enabled": true,
      "name": "JEJ",
      "state": "locked",
      "connected": false,
      "power_level": 0,
      "protocol": "",
      "model_number": "ZWaveLock",
      "created_at": "2026-03-03T00:13:45Z",
      "updated_at": "2026-03-03T00:13:46Z",
      "location_name": "Face to face full-range pricing structure",
      "location_id": "def78b9e-a9b5-4149-b1a4-56a22851cc05",
      "model_id": "074619f2-54a7-4de0-9061-a101e412d203"
    },
    "id": "d15f00a0-1eca-4d61-a8d3-6f187ec2fc9c",
    "links": {
      "self": "http://api.remotelock.dev/devices/d15f00a0-1eca-4d61-a8d3-6f187ec2fc9c",
      "location": "http://api.remotelock.dev/locations/def78b9e-a9b5-4149-b1a4-56a22851cc05",
      "model": "http://api.remotelock.dev/models/074619f2-54a7-4de0-9061-a101e412d203"
    }
  }
}

Unlock a ZWave lock

Request

Endpoint

PUT /devices/:id/unlock

PUT /devices/f8529c1a-7f85-4f08-9e1c-a4b7140304d6/unlock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "zwave_lock",
    "attributes": {
      "connectivity_enabled": true,
      "name": "ZRU",
      "state": "unlocked",
      "connected": false,
      "power_level": 0,
      "protocol": "",
      "model_number": "ZWaveLock",
      "created_at": "2026-03-03T00:13:46Z",
      "updated_at": "2026-03-03T00:13:46Z",
      "location_name": "Automated didactic hub",
      "location_id": "21ad85fc-c5b3-4633-a199-c9e6d33aac14",
      "model_id": "b25b9fb5-0eaf-4b50-af31-766e586d465e"
    },
    "id": "f8529c1a-7f85-4f08-9e1c-a4b7140304d6",
    "links": {
      "self": "http://api.remotelock.dev/devices/f8529c1a-7f85-4f08-9e1c-a4b7140304d6",
      "location": "http://api.remotelock.dev/locations/21ad85fc-c5b3-4633-a199-c9e6d33aac14",
      "model": "http://api.remotelock.dev/models/b25b9fb5-0eaf-4b50-af31-766e586d465e"
    }
  }
}

Access person accesses of a ZWave lock

Request

Endpoint

GET /devices/:id/access_person_accesses

GET /devices/65e89f1c-115a-4dc5-a768-96e1033d7f40/access_person_accesses?attributes[access_person_type]=access_user

Parameters

attributes: {"access_person_type"=>"access_user"}
Name Description
attributes[access_person_type] Filter by type(s). Supported types: access_user and access_guest

Response


200 OK
{
  "data": [
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "location",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:13:46Z",
        "updated_at": "2026-03-03T00:13:46Z",
        "accessible_name": "Digitized discrete flexibility",
        "access_person_id": "92164ce3-3d60-41a8-8180-46b3d1ace4a0",
        "access_person_type": "access_user",
        "accessible_id": "620639c5-50b5-4f48-b8b4-ff787c2d0723"
      },
      "id": "d28fce25-ab5b-44d8-890b-d567ad024664",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/92164ce3-3d60-41a8-8180-46b3d1ace4a0/accesses/d28fce25-ab5b-44d8-890b-d567ad024664",
        "access_person": "http://api.remotelock.dev/access_persons/92164ce3-3d60-41a8-8180-46b3d1ace4a0",
        "accessible": "http://api.remotelock.dev/locations/620639c5-50b5-4f48-b8b4-ff787c2d0723"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "zwave_lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:13:46Z",
        "updated_at": "2026-03-03T00:13:46Z",
        "accessible_name": "CLI",
        "access_person_id": "e44632b8-7341-4e09-a229-fd6ecaa8267a",
        "access_person_type": "access_user",
        "accessible_id": "65e89f1c-115a-4dc5-a768-96e1033d7f40"
      },
      "id": "a0fe396d-74bb-4b09-a67b-e7c23bfac0d5",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/e44632b8-7341-4e09-a229-fd6ecaa8267a/accesses/a0fe396d-74bb-4b09-a67b-e7c23bfac0d5",
        "access_person": "http://api.remotelock.dev/access_persons/e44632b8-7341-4e09-a229-fd6ecaa8267a",
        "accessible": "http://api.remotelock.dev/devices/65e89f1c-115a-4dc5-a768-96e1033d7f40"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Update a Connector Lock

The configuration object is used to update the configuration of a Connector Lock and must include the relevant fields of the specific Connector Lock model. The supported fields for each Connector Lock can be found using the Connector Lock configurability endpoint. If the specific Connector Lock model does not support configuration updates, the configuration field is to be omitted from the request.

Request

Endpoint

PUT /devices/:id

PUT /devices/d5e9376e-632b-4d3d-ae23-ad166f5bbad7

Parameters

{
  "attributes": {
    "name": "East door",
    "location_id": "3704ea5c-792a-415d-bd5a-effb10da484d",
    "configuration": {
      "relock": 5,
      "led_standby_color": "amber"
    }
  }
}
Name Description
attributes[name] Name
attributes[location_id] Location ID
attributes[configuration] Configuration update payload

Response


200 OK
{
  "data": {
    "type": "connector_lock",
    "attributes": {
      "connectivity_enabled": true,
      "connected": false,
      "connected_at": "2026-03-03T00:13:00Z",
      "alive": true,
      "name": "East door",
      "power_level": 100,
      "serial_number": "9d58ad515c59f44a86d48a5fd8253cd6",
      "signal_quality": 4,
      "state": "LOCKED",
      "pending_physical_sync": false,
      "model_number": "RubberLock",
      "created_at": "2026-03-03T00:13:00Z",
      "updated_at": "2026-03-03T00:13:00Z",
      "location_name": "Open-architected background software",
      "location_id": "3704ea5c-792a-415d-bd5a-effb10da484d",
      "model_id": "455f0fae-e935-4f45-b35b-921ad15b9d67"
    },
    "id": "d5e9376e-632b-4d3d-ae23-ad166f5bbad7",
    "links": {
      "self": "http://api.remotelock.dev/devices/d5e9376e-632b-4d3d-ae23-ad166f5bbad7",
      "location": "http://api.remotelock.dev/locations/3704ea5c-792a-415d-bd5a-effb10da484d",
      "model": "http://api.remotelock.dev/models/455f0fae-e935-4f45-b35b-921ad15b9d67"
    }
  }
}

Lock a Connector Lock

Request

Endpoint

PUT /devices/:id/lock

PUT /devices/367963dc-29ab-439d-8c48-1e23d64d8b1a/lock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "connector_lock",
    "attributes": {
      "connectivity_enabled": true,
      "connected": false,
      "connected_at": "2026-03-03T00:13:00Z",
      "alive": true,
      "name": "cellar",
      "power_level": 100,
      "serial_number": "2e263da8bec11351878f347f468a197b",
      "signal_quality": 4,
      "state": "LOCKED",
      "pending_physical_sync": false,
      "model_number": "RubberLock",
      "created_at": "2026-03-03T00:13:00Z",
      "updated_at": "2026-03-03T00:13:00Z",
      "location_name": "Function-based local model",
      "location_id": "de72730f-4382-4359-815e-dfd537fa802a",
      "model_id": "93fad588-86ff-48d6-88ab-34168c100565"
    },
    "id": "367963dc-29ab-439d-8c48-1e23d64d8b1a",
    "links": {
      "self": "http://api.remotelock.dev/devices/367963dc-29ab-439d-8c48-1e23d64d8b1a",
      "location": "http://api.remotelock.dev/locations/de72730f-4382-4359-815e-dfd537fa802a",
      "model": "http://api.remotelock.dev/models/93fad588-86ff-48d6-88ab-34168c100565"
    }
  }
}

Unlock a Connector Lock

Request

Endpoint

PUT /devices/:id/unlock

PUT /devices/0ec7fb02-655f-4d09-8340-faf8076def79/unlock

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "connector_lock",
    "attributes": {
      "connectivity_enabled": true,
      "connected": false,
      "connected_at": "2026-03-03T00:13:01Z",
      "alive": true,
      "name": "drawing room",
      "power_level": 100,
      "serial_number": "879e4e602f3e8430188baf45100e400c",
      "signal_quality": 4,
      "state": "LOCKED",
      "pending_physical_sync": false,
      "model_number": "RubberLock",
      "created_at": "2026-03-03T00:13:01Z",
      "updated_at": "2026-03-03T00:13:01Z",
      "location_name": "Monitored 24/7 infrastructure",
      "location_id": "ae4d2c22-74df-4b05-bfc0-e43f663e9a2b",
      "model_id": "3c1e1783-f11b-4af8-b2e9-542c0ad4c6fa"
    },
    "id": "0ec7fb02-655f-4d09-8340-faf8076def79",
    "links": {
      "self": "http://api.remotelock.dev/devices/0ec7fb02-655f-4d09-8340-faf8076def79",
      "location": "http://api.remotelock.dev/locations/ae4d2c22-74df-4b05-bfc0-e43f663e9a2b",
      "model": "http://api.remotelock.dev/models/3c1e1783-f11b-4af8-b2e9-542c0ad4c6fa"
    }
  }
}

Access person accesses of a Connector Lock

Request

Endpoint

GET /devices/:id/access_person_accesses

GET /devices/321c0667-7581-495b-bdc1-d311a803f75b/access_person_accesses?attributes[access_person_type]=access_user

Parameters

attributes: {"access_person_type"=>"access_user"}
Name Description
attributes[access_person_type] Filter by type(s). Supported types: access_user and access_guest

Response


200 OK
{
  "data": [
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "location",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:13:03Z",
        "updated_at": "2026-03-03T00:13:03Z",
        "accessible_name": "Decentralized methodical challenge",
        "access_person_id": "1c79af7c-f2bc-462e-8497-89c878c5048f",
        "access_person_type": "access_user",
        "accessible_id": "b16e6a4b-32ab-4d13-a4e9-48d619157bfb"
      },
      "id": "f7f3ad19-c690-4d8a-a53f-a51bcc957d69",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/1c79af7c-f2bc-462e-8497-89c878c5048f/accesses/f7f3ad19-c690-4d8a-a53f-a51bcc957d69",
        "access_person": "http://api.remotelock.dev/access_persons/1c79af7c-f2bc-462e-8497-89c878c5048f",
        "accessible": "http://api.remotelock.dev/locations/b16e6a4b-32ab-4d13-a4e9-48d619157bfb"
      }
    },
    {
      "type": "access_person_access",
      "attributes": {
        "guest_start_time": null,
        "guest_end_time": null,
        "devices_count": 0,
        "devices_synced_count": 0,
        "devices_pending_sync_count": 0,
        "devices_failed_sync_count": 0,
        "accessible_type": "connector_lock",
        "access_starts_at": null,
        "access_ends_at": null,
        "created_at": "2026-03-03T00:13:03Z",
        "updated_at": "2026-03-03T00:13:03Z",
        "accessible_name": "kitchen",
        "access_person_id": "6e0a5d0e-21ae-4577-8d2a-e10c579692b2",
        "access_person_type": "access_user",
        "accessible_id": "321c0667-7581-495b-bdc1-d311a803f75b"
      },
      "id": "4c2a19d6-7c43-4a3d-89e4-065d28131fd5",
      "links": {
        "self": "http://api.remotelock.dev/access_persons/6e0a5d0e-21ae-4577-8d2a-e10c579692b2/accesses/4c2a19d6-7c43-4a3d-89e4-065d28131fd5",
        "access_person": "http://api.remotelock.dev/access_persons/6e0a5d0e-21ae-4577-8d2a-e10c579692b2",
        "accessible": "http://api.remotelock.dev/devices/321c0667-7581-495b-bdc1-d311a803f75b"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Gets the Connector Lock configuration options

The endpoint returns a JSON object containing the Connector Lock configuration options also called the device configurability. The configurability object uses the below DSL to describe the key value configuration options.

  root: {
    version: integer
    name: string
    description: string
    lastUpdatedAt: integer
    attributes: ConfigurationObject[]
  }
  ConfigurationObject: {
    label: string
    name: string
    description?: string // used to display a tooltip next to the input
    type: "text" | "select" | "checkbox" | "radio" | "time" | "stepper" | "group"
    children?: ConfigurationObject[] // only if type is "group"
    options?: OptionObject[] // only if type is "select", "radio" or "stepper"
    dependencies?: DependencyObject[]
  }
  OptionObject: {
    value: string,
    label: string
  }
  DependencyObject: {
    enable?: DependencyCondition
    show?: DependencyCondition
  }
  DependencyCondition: {
    name: string
    value: string
    condition: "eq" | "neq" | "gt" | "lt" | "gte" | "lte"
  }

Request

Endpoint

GET /devices/:id/configurability

GET /devices/b044d892-f58d-4846-a6d1-7b787e3a1290/configurability

Parameters

None.

Response


200 OK
{
  "name": "model configurability",
  "version": 1,
  "attributes": [
    {
      "name": "relock",
      "type": "number",
      "maximum": 30,
      "minimum": 1,
      "label": "Relock",
      "description": "Relock time in seconds"
    },
    {
      "name": "led_standby_color",
      "type": "select",
      "options": [
        "off",
        "red",
        "green",
        "amber"
      ],
      "label": "Standby LED Color"
    }
  ],
  "description": "description",
  "lastUpdatedAt": "2024-03-22T13:11:11.601Z"
}

Fields

Name Description
name The device configurability schema name.
version The current device model configurability schema version.
attributes The device model configuration options described using the attached DSL.
description Extra details on the configurability schema.
lastUpdatedAt The last time the configurability schema was updated.

Gets a Connector Lock configuration

The endpoint returns an object containing the dynamic configuration fields of a Connector Lock. Extra details on the fields can be found using the configurability endpoint.

Request

Endpoint

GET /devices/:id/configuration

GET /devices/b5d83ecd-9954-4634-baeb-0411287f9c54/configuration

Parameters

None.

Response


200 OK
{
  "relock": 5,
  "led_standby_color": "amber"
}

Update a Connector Thermostat

Request

Endpoint

PUT /devices/:id

PUT /devices/e4cf6bfb-5810-480e-a065-771a758624df

Parameters

{
  "attributes": {
    "name": "East door",
    "location_id": "6073dd96-0dd5-4d85-8e4e-7f020ac9915b",
    "configuration": {
      "rethermostat": 5,
      "led_standby_color": "amber"
    }
  }
}
Name Description
attributes[name] Name
attributes[location_id] Location ID
attributes[configuration] Configuration update payload

Response


200 OK
{
  "data": {
    "type": "connector_thermostat",
    "attributes": {
      "connectivity_enabled": true,
      "connected": false,
      "connected_at": null,
      "alive": false,
      "name": "East door",
      "serial_number": "1427667436",
      "model_number": "Resideo",
      "power_level": null,
      "temperature": null,
      "outdoor_temperature": null,
      "temperature_unit": null,
      "outdoor_temperature_unit": null,
      "humidity": null,
      "outdoor_humidity": null,
      "fan_status": null,
      "fan_mode": null,
      "system_mode": null,
      "cool_set_point": null,
      "heat_set_point": null,
      "cool_set_point_status": null,
      "heat_set_point_status": null,
      "created_at": "2026-03-03T00:14:48Z",
      "updated_at": "2026-03-03T00:14:48Z",
      "location_name": "De-engineered transitional hardware",
      "location_id": "6073dd96-0dd5-4d85-8e4e-7f020ac9915b",
      "model_id": "58ba0843-b099-4460-99f4-fd283eb8808c"
    },
    "id": "e4cf6bfb-5810-480e-a065-771a758624df",
    "links": {
      "self": "http://api.remotelock.dev/devices/e4cf6bfb-5810-480e-a065-771a758624df",
      "location": "http://api.remotelock.dev/locations/6073dd96-0dd5-4d85-8e4e-7f020ac9915b",
      "model": "http://api.remotelock.dev/models/58ba0843-b099-4460-99f4-fd283eb8808c"
    }
  }
}

is expected to receive update_configuration("ad6b22d8-8f5e-4d86-a0ea-fd610657c096", {"configuration"=>{"led_standby_color"=>"amber", "rethermostat"=>5}}) 1 time

Request

Endpoint

PUT /devices/:id

PUT /devices/ad6b22d8-8f5e-4d86-a0ea-fd610657c096

Parameters

{
  "attributes": {
    "name": "East door",
    "location_id": "a3c67e48-7edc-4f50-83cf-e7851f066f7f",
    "configuration": {
      "rethermostat": 5,
      "led_standby_color": "amber"
    }
  }
}
Name Description
attributes[name] Name
attributes[location_id] Location ID
attributes[configuration] Configuration update payload

Response


200 OK
{
  "data": {
    "type": "connector_thermostat",
    "attributes": {
      "connectivity_enabled": true,
      "connected": false,
      "connected_at": null,
      "alive": false,
      "name": "East door",
      "serial_number": "8381087290",
      "model_number": "Resideo",
      "power_level": null,
      "temperature": null,
      "outdoor_temperature": null,
      "temperature_unit": null,
      "outdoor_temperature_unit": null,
      "humidity": null,
      "outdoor_humidity": null,
      "fan_status": null,
      "fan_mode": null,
      "system_mode": null,
      "cool_set_point": null,
      "heat_set_point": null,
      "cool_set_point_status": null,
      "heat_set_point_status": null,
      "created_at": "2026-03-03T00:14:48Z",
      "updated_at": "2026-03-03T00:14:48Z",
      "location_name": "Switchable optimal success",
      "location_id": "a3c67e48-7edc-4f50-83cf-e7851f066f7f",
      "model_id": "6d94997b-13e4-44db-944e-1a2e4d0b40e2"
    },
    "id": "ad6b22d8-8f5e-4d86-a0ea-fd610657c096",
    "links": {
      "self": "http://api.remotelock.dev/devices/ad6b22d8-8f5e-4d86-a0ea-fd610657c096",
      "location": "http://api.remotelock.dev/locations/a3c67e48-7edc-4f50-83cf-e7851f066f7f",
      "model": "http://api.remotelock.dev/models/6d94997b-13e4-44db-944e-1a2e4d0b40e2"
    }
  }
}

DoorGroupAccess

retrieves the access person for the device in the door group

Request

Endpoint

GET /groups/:id/door_group_accesses/search.csv

GET /groups/b068748d-3a80-4059-8bc6-1a370a1ee2dc/door_group_accesses/search.csv

GET /groups/b068748d-3a80-4059-8bc6-1a370a1ee2dc/door_group_accesses/search.csv

Parameters

None.

Response


200 OK
[binary data]

None.

Response


200 OK
[binary data]

Events

Get an event

Request

Endpoint

GET /events/:id

GET /events/b94251ea-d721-45ae-ad6e-ec7125c270fd

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "unlocked_event",
    "attributes": {
      "source": "user",
      "status": "succeeded",
      "time_zone": "America/Denver",
      "occurred_at": "2026-03-02T23:05:00Z",
      "created_at": "2026-03-03T00:13:00Z",
      "updated_at": "2026-03-03T00:13:00Z",
      "associated_resource_name": null,
      "status_info": null,
      "method": "pin",
      "pin": "0999",
      "card": null,
      "publisher_id": "7ce211ed-e7b7-4973-97f5-30c36945d88a",
      "publisher_type": "lock",
      "associated_resource_id": "3005eb32-44e3-4bfb-9159-9bb745a236c9",
      "associated_resource_type": "access_user"
    },
    "id": "b94251ea-d721-45ae-ad6e-ec7125c270fd",
    "links": {
      "self": "http://api.remotelock.dev/events/b94251ea-d721-45ae-ad6e-ec7125c270fd",
      "publisher": "http://api.remotelock.dev/devices/7ce211ed-e7b7-4973-97f5-30c36945d88a",
      "associated_resource": "http://api.remotelock.dev/access_persons/3005eb32-44e3-4bfb-9159-9bb745a236c9"
    }
  }
}

Fields

Name Description
type access_person_used, access_person_created, access_person_updated, access_person_deleted, acs_door_opened, acs_door_closed, acs_door_held_open, lock_requested, unlock_requested, temporary_unlock_requested, temporary_unlock_timeout, access_person_synced, access_person_sync_failed, access_guest_late_sync, reset, ready_pin_sync_failed, unlocked, locked, access_denied, jammed, connectivity, power_level_low, battery_replaced, temperature_changed, humidity_changed, outdoor_temperature_changed, outdoor_humidity_changed, relay_enabled, relay_disabled, door_action_held_open, door_action_forced_open, door_action_tamper_detected, door_action_tamper_cleared, ble_mapp_connected, power_level_restored, power_level_critical, power_level_critical_restored, alarm_triggered, alarm_resolved, kore_ready_pin_used or unlockedlocked
source 0, 1 or 2
status 0 and 1
associated_resource_name If associated_resource is deleted, this field is populated with associated_resource name

Groups

Get all groups

Returns all group types (homogeneous).

Request

Endpoint

GET /groups

GET /groups

Parameters

Name Description
[type] Filter by type(s). Supported types: door_group
sort Sortable attributes: created_at and name, default: created_at ascending

Response


200 OK
{
  "data": [
    {
      "type": "door_group",
      "attributes": {
        "name": "Indoor Locks",
        "created_at": "2026-03-03T00:13:28Z",
        "updated_at": "2026-03-03T00:13:28Z"
      },
      "id": "05eef00a-dc6a-4fd1-b046-8f3bf92f9448",
      "links": {
        "self": "http://api.remotelock.dev/groups/05eef00a-dc6a-4fd1-b046-8f3bf92f9448"
      }
    },
    {
      "type": "door_group",
      "attributes": {
        "name": "Outdoors",
        "created_at": "2026-03-03T00:13:28Z",
        "updated_at": "2026-03-03T00:13:28Z"
      },
      "id": "36327fb0-2c08-42e1-9575-cad231509941",
      "links": {
        "self": "http://api.remotelock.dev/groups/36327fb0-2c08-42e1-9575-cad231509941"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get a group

Request

Endpoint

GET /groups/:id

GET /groups/dc921dd0-cf0a-4873-93dd-ac1fcf323d38

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "door_group",
    "attributes": {
      "name": "Indoor Locks",
      "created_at": "2026-03-03T00:13:28Z",
      "updated_at": "2026-03-03T00:13:28Z"
    },
    "id": "dc921dd0-cf0a-4873-93dd-ac1fcf323d38",
    "links": {
      "self": "http://api.remotelock.dev/groups/dc921dd0-cf0a-4873-93dd-ac1fcf323d38"
    }
  }
}

Create a door group

Request

Endpoint

POST /groups

POST /groups

Parameters

{
  "type": "door_group",
  "attributes": {
    "name": "Warehouse doors"
  }
}
Name Description
type required door_group
attributes[name] required Door group name

Response


201 Created
{
  "data": {
    "type": "door_group",
    "attributes": {
      "name": "Warehouse doors",
      "created_at": "2026-03-03T00:13:29Z",
      "updated_at": "2026-03-03T00:13:29Z"
    },
    "id": "157f558d-0034-48c4-80ce-4c6730799725",
    "links": {
      "self": "http://api.remotelock.dev/groups/157f558d-0034-48c4-80ce-4c6730799725"
    }
  }
}

Update a group

Request

Endpoint

PUT /groups/:id

PUT /groups/6c1ded60-c080-42f4-a421-11946e9c601c

Parameters

{
  "attributes": {
    "name": "Inner doors"
  }
}
Name Description
attributes[name] Group name

Response


200 OK
{
  "data": {
    "type": "door_group",
    "attributes": {
      "name": "Inner doors",
      "created_at": "2026-03-03T00:13:29Z",
      "updated_at": "2026-03-03T00:13:29Z"
    },
    "id": "6c1ded60-c080-42f4-a421-11946e9c601c",
    "links": {
      "self": "http://api.remotelock.dev/groups/6c1ded60-c080-42f4-a421-11946e9c601c"
    }
  }
}

Delete a group

Request

Endpoint

DELETE /groups/:id

DELETE /groups/e0e9b29c-4028-458e-9c61-907bc8da28dc

Parameters

None.

Response


204 No Content

Get all items in a door group

Request

Endpoint

GET /groups/:group_id/items

GET /groups/8555d0a8-a2b8-4edb-85e7-5f24823cedd8/items?attributes[item_type]=lock

Parameters

attributes: {"item_type"=>"lock"}
Name Description
attributes[item_type] Filter by type(s). Supported types: door_group, acs_door, acs_elevator_floor, lock, connector_lock, zwave_lock, schlage_home_lock, and igloo_lock
sort Sortable attributes: created_at, default: created_at ascending

Response


200 OK
{
  "data": [
    {
      "type": "door_group_item",
      "attributes": {
        "created_at": "2026-03-03T00:13:08Z",
        "updated_at": "2026-03-03T00:13:08Z",
        "item_id": "8e943abc-dcf2-4c18-ba77-d10fc38a31ba",
        "item_type": "lock",
        "door_group_id": "8555d0a8-a2b8-4edb-85e7-5f24823cedd8"
      },
      "id": "3472bc24-edcf-45ec-84f5-bd3a9603873a",
      "links": {
        "self": "http://api.remotelock.dev/groups/8555d0a8-a2b8-4edb-85e7-5f24823cedd8/items/3472bc24-edcf-45ec-84f5-bd3a9603873a",
        "item": "http://api.remotelock.dev/devices/8e943abc-dcf2-4c18-ba77-d10fc38a31ba",
        "door_group": "http://api.remotelock.dev/groups/8555d0a8-a2b8-4edb-85e7-5f24823cedd8"
      }
    },
    {
      "type": "door_group_item",
      "attributes": {
        "created_at": "2026-03-03T00:13:08Z",
        "updated_at": "2026-03-03T00:13:08Z",
        "item_id": "b65c1597-3cbb-4154-9ccb-f1287e9be95f",
        "item_type": "lock",
        "door_group_id": "8555d0a8-a2b8-4edb-85e7-5f24823cedd8"
      },
      "id": "deaceda0-4681-440a-a607-c4361df09c8d",
      "links": {
        "self": "http://api.remotelock.dev/groups/8555d0a8-a2b8-4edb-85e7-5f24823cedd8/items/deaceda0-4681-440a-a607-c4361df09c8d",
        "item": "http://api.remotelock.dev/devices/b65c1597-3cbb-4154-9ccb-f1287e9be95f",
        "door_group": "http://api.remotelock.dev/groups/8555d0a8-a2b8-4edb-85e7-5f24823cedd8"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get an item in a door group

Request

Endpoint

GET /groups/:group_id/items/:id

GET /groups/3d917f00-a2a2-4728-81d7-e0ad642b5758/items/28a020f9-345c-4819-9579-b5597ec2cda2

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "door_group_item",
    "attributes": {
      "created_at": "2026-03-03T00:13:09Z",
      "updated_at": "2026-03-03T00:13:09Z",
      "item_id": "03a38049-6fbe-45f2-b1ce-c2ca844c6956",
      "item_type": "lock",
      "door_group_id": "3d917f00-a2a2-4728-81d7-e0ad642b5758"
    },
    "id": "28a020f9-345c-4819-9579-b5597ec2cda2",
    "links": {
      "self": "http://api.remotelock.dev/groups/3d917f00-a2a2-4728-81d7-e0ad642b5758/items/28a020f9-345c-4819-9579-b5597ec2cda2",
      "item": "http://api.remotelock.dev/devices/03a38049-6fbe-45f2-b1ce-c2ca844c6956",
      "door_group": "http://api.remotelock.dev/groups/3d917f00-a2a2-4728-81d7-e0ad642b5758"
    }
  }
}

Add an item to a door group

Request

Endpoint

POST /groups/:group_id/items

POST /groups/37a9ceca-0d47-44af-8051-20c672b26181/items

Parameters

{
  "attributes": {
    "item_id": "56c73818-c95b-4cd3-a947-966ebc357b78",
    "item_type": "lock"
  }
}
Name Description
attributes[item_id] required Item id
attributes[item_type] required Item type: door_group, acs_door, acs_elevator_floor, lock, connector_lock, zwave_lock, schlage_home_lock or igloo_lock

Response


201 Created
{
  "data": {
    "type": "door_group_item",
    "attributes": {
      "created_at": "2026-03-03T00:13:10Z",
      "updated_at": "2026-03-03T00:13:10Z",
      "item_id": "56c73818-c95b-4cd3-a947-966ebc357b78",
      "item_type": "lock",
      "door_group_id": "37a9ceca-0d47-44af-8051-20c672b26181"
    },
    "id": "b736a7b3-e046-406b-a765-5f05ff124e17",
    "links": {
      "self": "http://api.remotelock.dev/groups/37a9ceca-0d47-44af-8051-20c672b26181/items/b736a7b3-e046-406b-a765-5f05ff124e17",
      "item": "http://api.remotelock.dev/devices/56c73818-c95b-4cd3-a947-966ebc357b78",
      "door_group": "http://api.remotelock.dev/groups/37a9ceca-0d47-44af-8051-20c672b26181"
    }
  }
}

Remove an item from a door group

Request

Endpoint

DELETE /groups/:group_id/items/:id

DELETE /groups/d6e0aa67-57f4-45f3-ba96-36a7251ad1b9/items/2b9e9c4b-45fa-40a8-ba07-1c57571c007f

Parameters

None.

Response


204 No Content

Igloo Guests

Get all igloo lock guests

Request

Endpoint

GET /igloo_guests

GET /igloo_guests

Parameters

None.

Response


200 OK
{
  "data": [
    {
      "type": "igloo_guest",
      "attributes": {
        "name": "Mrs. Otha Rau",
        "email": "[email protected]",
        "starts_at": "2026-03-16T00:00:00",
        "ends_at": "2026-04-13T00:00:00",
        "igloo_lock_id": "f9d23d24-7324-4689-8161-97e9349629c4",
        "igloo_mobile_credentials_enabled": false,
        "created_at": "2026-03-03T00:11:38Z",
        "updated_at": "2026-03-03T00:11:38Z",
        "code": "1234567",
        "pin": "1234567"
      },
      "id": "d603f934-b5b9-412b-938d-d13138fcfe07",
      "links": {
        "self": "http://api.remotelock.dev/igloo_guests/d603f934-b5b9-412b-938d-d13138fcfe07"
      }
    },
    {
      "type": "igloo_guest",
      "attributes": {
        "name": "Kassandra Breitenberg Ret.",
        "email": "[email protected]",
        "starts_at": "2026-03-08T00:00:00",
        "ends_at": "2026-04-06T00:00:00",
        "igloo_lock_id": "f9d23d24-7324-4689-8161-97e9349629c4",
        "igloo_mobile_credentials_enabled": false,
        "created_at": "2026-03-03T00:11:38Z",
        "updated_at": "2026-03-03T00:11:38Z",
        "code": "1234567",
        "pin": "1234567"
      },
      "id": "fc28597c-963b-404a-b7ec-d546189aabac",
      "links": {
        "self": "http://api.remotelock.dev/igloo_guests/fc28597c-963b-404a-b7ec-d546189aabac"
      }
    },
    {
      "type": "igloo_guest",
      "attributes": {
        "name": "Pres. Lazaro Connelly",
        "email": "[email protected]",
        "starts_at": "2026-03-04T00:00:00",
        "ends_at": "2026-03-29T00:00:00",
        "igloo_lock_id": "a4d33266-723d-44a5-95f1-213103df3ef1",
        "igloo_mobile_credentials_enabled": false,
        "created_at": "2026-03-03T00:11:38Z",
        "updated_at": "2026-03-03T00:11:38Z",
        "code": "1234567",
        "pin": "1234567"
      },
      "id": "ee112b7e-e290-416f-8ef7-eccbbbeb8c81",
      "links": {
        "self": "http://api.remotelock.dev/igloo_guests/ee112b7e-e290-416f-8ef7-eccbbbeb8c81"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 3,
    "total_pages": 1
  }
}

Get an igloo guest

Request

Endpoint

GET /igloo_guests/:id

GET /igloo_guests/1912dbd0-eca0-4335-ac81-95e9827772aa

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "igloo_guest",
    "attributes": {
      "name": "Roy Howe",
      "email": "[email protected]",
      "starts_at": "2026-03-09T00:00:00",
      "ends_at": "2026-03-30T00:00:00",
      "igloo_lock_id": "37872358-62a3-4a2d-8d7a-fa04d9824a74",
      "igloo_mobile_credentials_enabled": false,
      "created_at": "2026-03-03T00:11:40Z",
      "updated_at": "2026-03-03T00:11:40Z",
      "code": "678123",
      "pin": "678123"
    },
    "id": "1912dbd0-eca0-4335-ac81-95e9827772aa",
    "links": {
      "self": "http://api.remotelock.dev/igloo_guests/1912dbd0-eca0-4335-ac81-95e9827772aa"
    }
  }
}

Create an igloo guest

Request

Endpoint

POST /igloo_guests

POST /igloo_guests

Parameters

{
  "attributes": {
    "igloo_lock_id": "a13b5537-e68d-4ca1-8ddd-7842f5881447",
    "name": "Ann Smith",
    "starts_at": "2026-03-03 00:11:40 UTC",
    "ends_at": "2026-03-04 00:11:40 UTC",
    "email": "[email protected]",
    "code": null,
    "igloo_mobile_credentials_enabled": false,
    "generate_algorithmic_pin": true
  }
}
Name Description
attributes[igloo_lock_id] required Igloo Lock
attributes[name] required Name
attributes[starts_at] required Starts at ISO 8601 timestamp without time zone. Only hours are supported (minutes and seconds will be converted to zeros).
attributes[ends_at] required Ends at ISO 8601 timestamp without time zone. Only hours are supported (minutes and seconds will be converted to zeros).
attributes[email] E-mail address of the guest
attributes[code] Custom PIN for the guest. Leave blank to issue an algorithmic PIN.
attributes[igloo_mobile_credentials_enabled] When true, Igloo mobile credentials are enabled. Default: false
attributes[generate_algorithmic_pin] When true, issues an algorithmic ReadyPIN. When false, no PIN is issued (useful for mobile-only credentials). Default: true

Response


201 Created
{
  "data": {
    "type": "igloo_guest",
    "attributes": {
      "name": "Ann Smith",
      "email": "[email protected]",
      "starts_at": "2026-03-03T00:00:00",
      "ends_at": "2026-03-04T00:00:00",
      "igloo_lock_id": "a13b5537-e68d-4ca1-8ddd-7842f5881447",
      "igloo_mobile_credentials_enabled": false,
      "created_at": "2026-03-03T00:11:40Z",
      "updated_at": "2026-03-03T00:11:40Z",
      "code": "1234567",
      "pin": "1234567"
    },
    "id": "99bd62f9-625b-45a3-b93f-6c6a0f9e1ab9",
    "links": {
      "self": "http://api.remotelock.dev/igloo_guests/99bd62f9-625b-45a3-b93f-6c6a0f9e1ab9"
    }
  }
}

Update an igloo guest

Request

Endpoint

PUT /igloo_guests/:id

PUT /igloo_guests/6e295b41-cc9c-465a-af1a-0d96779923a9

Parameters

{
  "attributes": {
    "name": "Jonatan Doery"
  }
}
Name Description
attributes[name] Name
attributes[email] Email
attributes[code] Custom PIN for the guest. Leave blank to issue an algorithmic PIN.
attributes[igloo_mobile_credentials_enabled] When true, Igloo mobile credentials are enabled
attributes[generate_algorithmic_pin] When true, issues an algorithmic ReadyPIN. When false, no PIN is issued

Response


200 OK
{
  "data": {
    "type": "igloo_guest",
    "attributes": {
      "name": "Jonatan Doery",
      "email": "[email protected]",
      "starts_at": "2026-03-07T00:00:00",
      "ends_at": "2026-03-29T00:00:00",
      "igloo_lock_id": "e6ae53f6-d44c-4129-a62b-7d4a93e1c1d2",
      "igloo_mobile_credentials_enabled": false,
      "created_at": "2026-03-03T00:11:45Z",
      "updated_at": "2026-03-03T00:11:45Z",
      "code": "1234567",
      "pin": "1234567"
    },
    "id": "6e295b41-cc9c-465a-af1a-0d96779923a9",
    "links": {
      "self": "http://api.remotelock.dev/igloo_guests/6e295b41-cc9c-465a-af1a-0d96779923a9"
    }
  }
}

Discard an igloo guest

Request

Endpoint

DELETE /igloo_guests/:id

DELETE /igloo_guests/cd63139d-6a29-4c24-8e5e-f5e861a3c8a9

Parameters

None.

Response


204 No Content

Kore ReadyPINs

Get all ReadyPINs

ReadyPINs are ideal for providing date/time based temporary guest access to locks without a network. Instead of relying on a network connection to the lock, the access information is actually carried within the PIN code itself.

Status

Request

Endpoint

GET /kore_ready_pins

GET /kore_ready_pins

Parameters

None.

Response


200 OK
{
  "data": [
    {
      "type": "kore_ready_pin",
      "attributes": {
        "uuid": "e8e5f161-6a95-4635-bbef-ba2bdecf275d",
        "name": "Marlin Spinka",
        "email": "[email protected]",
        "starts_at": "2026-03-03T00:00:00",
        "ends_at": "2026-03-05T00:00:00",
        "status": "current",
        "source": null,
        "created_at": "2026-03-03T00:13:57Z",
        "updated_at": "2026-03-03T00:13:57Z",
        "pin": "6643976158",
        "lock_id": "fb8fdeb4-4cbe-4186-ade5-1951bb29a779"
      },
      "id": "e8e5f161-6a95-4635-bbef-ba2bdecf275d",
      "links": {
        "self": "http://api.remotelock.dev/kore_ready_pins/e8e5f161-6a95-4635-bbef-ba2bdecf275d",
        "lock": "http://api.remotelock.dev/devices/fb8fdeb4-4cbe-4186-ade5-1951bb29a779"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 1,
    "total_pages": 1
  }
}

Get a ReadyPIN

Request

Endpoint

GET /kore_ready_pins/:id

GET /kore_ready_pins/1ba7be6e-48a6-41cf-9522-14a68d35ac71

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "access_guest",
    "attributes": {
      "name": "Barbie Cronin",
      "email": "[email protected]",
      "phone": null,
      "department": null,
      "deliver_as_qr_code": false,
      "status": "current",
      "source": null,
      "guest_source": null,
      "deliver_as_url_credential": false,
      "require_pin_verification": false,
      "schlage_engage_mobile_credentials_enabled": false,
      "korelock_wifi_credential_enabled": false,
      "ttlock_mobile_credential_enabled": false,
      "igloo_mobile_credentials_enabled": false,
      "august_mobile_credentials_enabled": false,
      "dormakaba_lyazon_mobile_credentials_enabled": false,
      "card_number_is_hex": false,
      "created_at": "2026-03-03T00:13:58Z",
      "updated_at": "2026-03-03T00:13:58Z",
      "pin": null,
      "card_number": null,
      "schlage_engage_smart_card_id": null,
      "schlage_engage_smart_card_badge": null,
      "url_credential": null,
      "starts_at": "2026-03-03T00:00:00",
      "ends_at": "2026-03-05T00:00:00",
      "ready_pins": [
        "8567707919"
      ],
      "ready_pin_model_id": "925ab703-2f63-46f9-9788-25caa575e4cf"
    },
    "id": "1ba7be6e-48a6-41cf-9522-14a68d35ac71",
    "links": {
      "self": "http://api.remotelock.dev/access_persons/1ba7be6e-48a6-41cf-9522-14a68d35ac71",
      "ready_pin_model": "http://api.remotelock.dev/ready_pin_models/925ab703-2f63-46f9-9788-25caa575e4cf"
    },
    "meta": {
      "restricted_attributes": [
        "url_credential"
      ]
    }
  }
}

Create a ReadyPIN

Request

Endpoint

POST /kore_ready_pins

POST /kore_ready_pins

Parameters

{
  "attributes": {
    "name": "Ann Smith",
    "lock_id": "8823e02c-3826-4c27-88f3-d73f12773c39",
    "starts_at": "2021-03-20T09:00:00",
    "ends_at": "2021-03-27T17:00:00",
    "email": "[email protected]"
  }
}
Name Description
attributes[name] required Name
attributes[lock_id] required Lock
attributes[starts_at] required Starts at ISO 8601 timestamp without time zone (only hours are supported).
attributes[ends_at] required Ends at ISO 8601 timestamp without time zone (only hours are supported).
attributes[email] Email

Response


201 Created
{
  "data": {
    "type": "kore_ready_pin",
    "attributes": {
      "uuid": "3831d561-05e2-4ba9-90b4-8e82763dbece",
      "name": "Ann Smith",
      "email": "[email protected]",
      "starts_at": "2021-03-20T09:00:00",
      "ends_at": "2021-03-27T17:00:00",
      "status": "current",
      "source": null,
      "created_at": "2021-03-22T00:00:00Z",
      "updated_at": "2021-03-22T00:00:00Z",
      "pin": "1234512345",
      "lock_id": "8823e02c-3826-4c27-88f3-d73f12773c39"
    },
    "id": "3831d561-05e2-4ba9-90b4-8e82763dbece",
    "links": {
      "self": "http://api.remotelock.dev/kore_ready_pins/3831d561-05e2-4ba9-90b4-8e82763dbece",
      "lock": "http://api.remotelock.dev/devices/8823e02c-3826-4c27-88f3-d73f12773c39"
    }
  }
}

Update a ReadyPIN

Updating of starts_at or ends_at is not allowed.

Request

Endpoint

PUT /kore_ready_pins/:id

PUT /kore_ready_pins/ff30a3ce-0eee-4335-b461-e496d0c3cffe

Parameters

{
  "attributes": {
    "name": "Mike Smith",
    "email": "[email protected]"
  }
}
Name Description
attributes[name] Name
attributes[email] Email

Response


200 OK
{
  "data": {
    "type": "kore_ready_pin",
    "attributes": {
      "uuid": "ff30a3ce-0eee-4335-b461-e496d0c3cffe",
      "name": "Mike Smith",
      "email": "[email protected]",
      "starts_at": "2026-03-03T00:00:00",
      "ends_at": "2026-03-05T00:00:00",
      "status": "current",
      "source": null,
      "created_at": "2026-03-03T00:13:59Z",
      "updated_at": "2026-03-03T00:13:59Z",
      "pin": "7149815797",
      "lock_id": "1fa3092c-9746-4963-ba39-23841bbd4be8"
    },
    "id": "ff30a3ce-0eee-4335-b461-e496d0c3cffe",
    "links": {
      "self": "http://api.remotelock.dev/kore_ready_pins/ff30a3ce-0eee-4335-b461-e496d0c3cffe",
      "lock": "http://api.remotelock.dev/devices/1fa3092c-9746-4963-ba39-23841bbd4be8"
    }
  }
}

Delete an expired ReadyPIN

Trying to delete a ReadyPIN will result in a 422 HTTP error if it's not expired.

Request

Endpoint

DELETE /kore_ready_pins/:id

DELETE /kore_ready_pins/f3ee0aa6-8ae9-49ff-b316-92858ffc1416

Parameters

None.

Response


204 No Content

Locations

Get all locations

Request

Endpoint

GET /locations

GET /locations

Parameters

Name Description
sort Sortable attributes: created_at and name, default: name ascending

Response


200 OK
{
  "data": [
    {
      "type": "location",
      "attributes": {
        "name": "RemoteLock Headquarters",
        "phone": "(877) 254-5625",
        "address": "1325 S. Colorado Blvd",
        "address2": "Suite B400",
        "city": "Denver",
        "state": "CO",
        "postal_code": "80222",
        "country": "US",
        "time_zone": "America/Denver",
        "created_at": "2026-03-03T00:13:15Z",
        "updated_at": "2026-03-03T00:13:15Z"
      },
      "id": "e9654aab-36ef-41a1-aa3d-9d3c195f7f2d",
      "links": {
        "self": "http://api.remotelock.dev/locations/e9654aab-36ef-41a1-aa3d-9d3c195f7f2d"
      }
    },
    {
      "type": "location",
      "attributes": {
        "name": "Synergistic coherent moderator",
        "phone": null,
        "address": "510 Rolf Flats",
        "address2": null,
        "city": null,
        "state": null,
        "postal_code": null,
        "country": null,
        "time_zone": "America/Denver",
        "created_at": "2026-03-03T00:13:14Z",
        "updated_at": "2026-03-03T00:13:14Z"
      },
      "id": "5006fe12-ba47-4d55-b5d6-2143fe255159",
      "links": {
        "self": "http://api.remotelock.dev/locations/5006fe12-ba47-4d55-b5d6-2143fe255159"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get a location

Request

Endpoint

GET /locations/:id

GET /locations/e9b555bf-8c30-484d-aa96-a4dba84dc5c5

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "location",
    "attributes": {
      "name": "RemoteLock Headquarters",
      "phone": "(877) 254-5625",
      "address": "1325 S. Colorado Blvd",
      "address2": "Suite B400",
      "city": "Denver",
      "state": "CO",
      "postal_code": "80222",
      "country": "US",
      "time_zone": "America/Denver",
      "created_at": "2026-03-03T00:13:16Z",
      "updated_at": "2026-03-03T00:13:16Z"
    },
    "id": "e9b555bf-8c30-484d-aa96-a4dba84dc5c5",
    "links": {
      "self": "http://api.remotelock.dev/locations/e9b555bf-8c30-484d-aa96-a4dba84dc5c5"
    }
  }
}

Create a location

Request

Endpoint

POST /locations

POST /locations

Parameters

{
  "attributes": {
    "name": "RemoteLock HQ",
    "phone": "(877) 254-5625",
    "address": "1325 S. Colorado Blvd",
    "address2": "Suite B400",
    "city": "Denver",
    "state": "CO",
    "postal_code": "80222",
    "country": "US",
    "time_zone": "America/Denver"
  }
}
Name Description
attributes[name] required Attributes name
attributes[phone] Attributes phone
attributes[address] Attributes address
attributes[address_2] Attributes address 2
attributes[city] Attributes city
attributes[state] Attributes state
attributes[postal_code] Attributes postal code
attributes[country] https://en.wikipedia.org/wiki/ISO_3166-1
attributes[time_zone] required https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Response


201 Created
{
  "data": {
    "type": "location",
    "attributes": {
      "name": "RemoteLock HQ",
      "phone": "(877) 254-5625",
      "address": "1325 S. Colorado Blvd",
      "address2": "Suite B400",
      "city": "Denver",
      "state": "CO",
      "postal_code": "80222",
      "country": "US",
      "time_zone": "America/Denver",
      "created_at": "2026-03-03T00:13:16Z",
      "updated_at": "2026-03-03T00:13:16Z"
    },
    "id": "7675262c-061e-4141-b3dc-cbb8e0cabc91",
    "links": {
      "self": "http://api.remotelock.dev/locations/7675262c-061e-4141-b3dc-cbb8e0cabc91"
    }
  }
}

Update a location

Request

Endpoint

PUT /locations/:id

PUT /locations/2445537c-13ea-4db4-8c50-c6de1928e8a1

Parameters

{
  "attributes": {
    "name": "RemoteLock HQ"
  }
}

None.

Response


200 OK
{
  "data": {
    "type": "location",
    "attributes": {
      "name": "RemoteLock HQ",
      "phone": "(877) 254-5625",
      "address": "1325 S. Colorado Blvd",
      "address2": "Suite B400",
      "city": "Denver",
      "state": "CO",
      "postal_code": "80222",
      "country": "US",
      "time_zone": "America/Denver",
      "created_at": "2026-03-03T00:13:16Z",
      "updated_at": "2026-03-03T00:13:17Z"
    },
    "id": "2445537c-13ea-4db4-8c50-c6de1928e8a1",
    "links": {
      "self": "http://api.remotelock.dev/locations/2445537c-13ea-4db4-8c50-c6de1928e8a1"
    }
  }
}

Delete a location

Request

Endpoint

DELETE /locations/:id

DELETE /locations/32e9a681-bd05-4f65-86d6-6c4116eab2d7

Parameters

None.

Response


204 No Content

Models

Returns all models.

capabilities

Each model has their own capabilities. This endpoint also allow filtering by capabilities. for example,
- In order to query models that support Prox Card Credentials /models?capabilities[prox_card_credential]=true

Get all models

Request

Endpoint

GET /models

GET /models

Parameters

Name Description
sort Sortable attributes: number, default: none
capabilities Filter by capabilities

Response


200 OK
{
  "data": [
    {
      "type": "model",
      "attributes": {
        "name": "RL-4000",
        "number": "RL-4000",
        "type": "resort_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": false,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "4ef34bf5-4239-4611-91fa-fcc9f5df2e09",
      "links": {
        "self": "http://api.remotelock.dev/models/4ef34bf5-4239-4611-91fa-fcc9f5df2e09"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "ZWaveLock",
        "number": "ZWaveLock",
        "type": "zwave_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "de1ba050-215b-4e16-8129-555b245cbccd",
      "links": {
        "self": "http://api.remotelock.dev/models/de1ba050-215b-4e16-8129-555b245cbccd"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "BE467/FE410",
        "number": "SchlageControl",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": false,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": true,
          "schlage_engage_smart_card_credential": true,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "uses_schlage_ble_firmware_updates": true,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "b4e526a1-b285-437d-bdde-568cbd4ab514",
      "links": {
        "self": "http://api.remotelock.dev/models/b4e526a1-b285-437d-bdde-568cbd4ab514"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "RemoteLock KL Series 500i",
        "number": "RL-KL-Series-500i",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": false,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "4f8fb50a-8722-4f2a-a203-9fea5b4488b1",
      "links": {
        "self": "http://api.remotelock.dev/models/4f8fb50a-8722-4f2a-a203-9fea5b4488b1"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "LS-P50i",
        "number": "LS-P50i",
        "type": "power_plug",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "heartbeat_intervals": [
            0,
            10,
            60,
            300,
            600,
            900,
            1200,
            1800,
            3600,
            7200,
            10800,
            14400
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "power_sources": [
            "hardwire"
          ],
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "9c84d6ff-9804-4fac-86e0-170edb3b1325",
      "links": {
        "self": "http://api.remotelock.dev/models/9c84d6ff-9804-4fac-86e0-170edb3b1325"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "KIC Narrow Stile Lock",
        "number": "KLM-8500",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "df0e7789-8a97-4225-b2ef-f678b3d95995",
      "links": {
        "self": "http://api.remotelock.dev/models/df0e7789-8a97-4225-b2ef-f678b3d95995"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "BG (LS-3i)",
        "number": "LS-3i",
        "type": "lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "auto_lock_enable": true,
          "auto_lock_schedule": true,
          "auto_lock_timeouts": [
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            30,
            60,
            300,
            600,
            900,
            1200,
            1500,
            1800
          ],
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "heartbeat_intervals": [
            0,
            300,
            900,
            1200,
            1800,
            3600,
            7200,
            14400,
            28800,
            43200
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "local_pins": true,
          "lock_action_schedule": true,
          "manual_auto_lock_timeout": false,
          "manual_auto_lock_timeout_intervals": [
            5,
            10,
            20,
            30,
            60,
            120,
            300,
            600,
            1200,
            1800,
            3600
          ],
          "mobile_commissionable": true,
          "mute": true,
          "native_temporary_unlockable": false,
          "no_enter_code": true,
          "online_auto_lock": true,
          "phone_credential": false,
          "pin_credential": true,
          "power_sources": [
            "hardwire",
            "alkaline_battery",
            "lithium_battery"
          ],
          "programming_code": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": true,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wake_wifi": [
            "user_action",
            "heartbeat_interval"
          ],
          "wavelynx_mobile_credential": false
        }
      },
      "id": "ebe8a0c1-fa20-4eba-ba46-da75edc9ea86",
      "links": {
        "self": "http://api.remotelock.dev/models/ebe8a0c1-fa20-4eba-ba46-da75edc9ea86"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "OpenEdge Series",
        "number": "OEMAIN",
        "type": "lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "auto_lock_enable": true,
          "auto_lock_schedule": true,
          "auto_lock_timeouts": [
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            30,
            60,
            300,
            600,
            900,
            1200,
            1500,
            1800
          ],
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "heartbeat_intervals": [
            0,
            300,
            900,
            1200,
            1800,
            3600,
            7200,
            14400,
            28800,
            43200
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "local_pins": true,
          "lock_action_schedule": true,
          "manual_auto_lock_timeout": false,
          "manual_auto_lock_timeout_intervals": [
            5,
            10,
            20,
            30,
            60,
            120,
            300,
            600,
            1200,
            1800,
            3600
          ],
          "mobile_commissionable": true,
          "mute": true,
          "native_temporary_unlockable": false,
          "no_enter_code": true,
          "online_auto_lock": true,
          "phone_credential": false,
          "pin_credential": true,
          "power_sources": [
            "hardwire",
            "alkaline_battery",
            "lithium_battery"
          ],
          "programming_code": true,
          "prox_card_credential": false,
          "ready_pin_credential": true,
          "registrable": true,
          "replaceable": true,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": true,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wake_wifi": [
            "user_action",
            "heartbeat_interval"
          ],
          "wavelynx_mobile_credential": false
        }
      },
      "id": "d855ab89-1d24-4d78-8077-946c57589165",
      "links": {
        "self": "http://api.remotelock.dev/models/d855ab89-1d24-4d78-8077-946c57589165"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "Kwikset Z-Wave",
        "number": "KwiksetZwave",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "4dabeac9-e82d-493e-b13c-9e7ef4c6a862",
      "links": {
        "self": "http://api.remotelock.dev/models/4dabeac9-e82d-493e-b13c-9e7ef4c6a862"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "KIC KoreLine 5200",
        "number": "KIC-KL-5200",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": false,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "29ab0572-8e1e-4f28-a921-244a377a35db",
      "links": {
        "self": "http://api.remotelock.dev/models/29ab0572-8e1e-4f28-a921-244a377a35db"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Interconnect Lock",
        "number": "PDQ-IN-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "e659f31d-307d-435d-98c7-f129b9182509",
      "links": {
        "self": "http://api.remotelock.dev/models/e659f31d-307d-435d-98c7-f129b9182509"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TTLock",
        "number": "TTLock",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": true,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "685b9e56-01e0-4bf3-a308-a827ba5b0e74",
      "links": {
        "self": "http://api.remotelock.dev/models/685b9e56-01e0-4bf3-a308-a827ba5b0e74"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "Yale Z-Wave",
        "number": "YaleZwave",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "3dbf0081-f0b5-4b34-9194-32c741c2dddd",
      "links": {
        "self": "http://api.remotelock.dev/models/3dbf0081-f0b5-4b34-9194-32c741c2dddd"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "NDE/LE",
        "number": "SchlageNdeLe",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": false,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": true,
          "schlage_engage_smart_card_credential": true,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "uses_schlage_ble_firmware_updates": true,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "c1ee10c7-2a01-4d72-8680-63c39cb842ac",
      "links": {
        "self": "http://api.remotelock.dev/models/c1ee10c7-2a01-4d72-8680-63c39cb842ac"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "Schlage Z-Wave",
        "number": "SchlageZWave",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "c7ed0217-6208-4540-a615-57623705a725",
      "links": {
        "self": "http://api.remotelock.dev/models/c7ed0217-6208-4540-a615-57623705a725"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "LS-P100mi",
        "number": "LS-P100mi",
        "type": "power_plug",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "heartbeat_intervals": [
            0,
            10,
            60,
            300,
            600,
            900,
            1200,
            1800,
            3600,
            7200,
            10800,
            14400
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "power_sources": [
            "hardwire"
          ],
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "02e71912-06ba-4a5c-b526-0469a45079ed",
      "links": {
        "self": "http://api.remotelock.dev/models/02e71912-06ba-4a5c-b526-0469a45079ed"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "Resideo",
        "number": "Resideo",
        "type": "connector_thermostat",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "89145481-b240-4782-a1f6-f48be9da1f47",
      "links": {
        "self": "http://api.remotelock.dev/models/89145481-b240-4782-a1f6-f48be9da1f47"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "Sadiot Lock",
        "number": "SadiotLock",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 20,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "fdb3a936-3228-48b7-a02b-52b8ec3b6dee",
      "links": {
        "self": "http://api.remotelock.dev/models/fdb3a936-3228-48b7-a02b-52b8ec3b6dee"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "ALLIGATE Lock Pro",
        "number": "AlligateLockPro",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "113f45eb-d8ef-4a06-a4ab-e370d5ce41bd",
      "links": {
        "self": "http://api.remotelock.dev/models/113f45eb-d8ef-4a06-a4ab-e370d5ce41bd"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "XE360",
        "number": "SchlageXe360",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": false,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": true,
          "schlage_engage_smart_card_credential": true,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "uses_schlage_ble_firmware_updates": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "eff4ffa0-7c3f-40ba-98f6-2e6455688b07",
      "links": {
        "self": "http://api.remotelock.dev/models/eff4ffa0-7c3f-40ba-98f6-2e6455688b07"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Mortice Lock",
        "number": "PDQ-M01-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "c97ead2e-57e0-4888-bfc3-d321fb70557f",
      "links": {
        "self": "http://api.remotelock.dev/models/c97ead2e-57e0-4888-bfc3-d321fb70557f"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "CTE",
        "number": "SchlageCte",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": false,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": true,
          "schlage_engage_smart_card_credential": true,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "uses_schlage_ble_firmware_updates": true,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "894e6285-ea83-438e-b08b-7a60d59f3fbc",
      "links": {
        "self": "http://api.remotelock.dev/models/894e6285-ea83-438e-b08b-7a60d59f3fbc"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "DUSAW",
        "number": "DUSAW",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": true,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "d1e26208-4ded-49c2-bd6e-0fef9f8e51ac",
      "links": {
        "self": "http://api.remotelock.dev/models/d1e26208-4ded-49c2-bd6e-0fef9f8e51ac"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "RG (LS-5i)",
        "number": "LS-5i",
        "type": "lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "auto_lock_enable": true,
          "auto_lock_schedule": true,
          "auto_lock_timeouts": [
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            30,
            60,
            300,
            600,
            900,
            1200,
            1500,
            1800
          ],
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "heartbeat_intervals": [
            0,
            300,
            900,
            1200,
            1800,
            3600,
            7200,
            14400,
            28800,
            43200
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "local_pins": true,
          "lock_action_schedule": true,
          "manual_auto_lock_timeout": true,
          "manual_auto_lock_timeout_intervals": [
            5,
            10,
            20,
            30,
            60,
            120,
            300,
            600,
            1200,
            1800,
            3600
          ],
          "mobile_commissionable": true,
          "mute": true,
          "native_temporary_unlockable": false,
          "no_enter_code": true,
          "online_auto_lock": true,
          "phone_credential": false,
          "pin_credential": true,
          "power_sources": [
            "alkaline_battery",
            "lithium_battery"
          ],
          "programming_code": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": true,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wake_wifi": [
            "user_action",
            "heartbeat_interval",
            "user_action_except_manual"
          ],
          "wavelynx_mobile_credential": false
        }
      },
      "id": "ca13ebff-5b26-4a50-8fcb-1de41e36b981",
      "links": {
        "self": "http://api.remotelock.dev/models/ca13ebff-5b26-4a50-8fcb-1de41e36b981"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "LS-DB500i",
        "number": "LS-DB500i",
        "type": "lock",
        "capabilities": {
          "access_exception": false,
          "august_mobile_credential": false,
          "auto_lock_enable": false,
          "auto_lock_schedule": false,
          "auto_lock_timeouts": [

          ],
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": true,
          "heartbeat_intervals": [
            0,
            10,
            60,
            300,
            600,
            900,
            1200,
            1800,
            3600,
            7200,
            10800,
            14400
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "local_pins": true,
          "lock_action_schedule": false,
          "manual_auto_lock_timeout": false,
          "manual_auto_lock_timeout_intervals": [
            5,
            10,
            20,
            30,
            60,
            120,
            300,
            600,
            1200,
            1800,
            3600
          ],
          "mobile_commissionable": true,
          "mute": false,
          "native_temporary_unlockable": false,
          "no_enter_code": false,
          "online_auto_lock": false,
          "phone_credential": false,
          "pin_credential": true,
          "power_sources": [

          ],
          "programming_code": true,
          "prox_card_credential": false,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wake_wifi": [

          ],
          "wavelynx_mobile_credential": false
        }
      },
      "id": "7f03b7d9-7286-47f9-8f92-7e1568872028",
      "links": {
        "self": "http://api.remotelock.dev/models/7f03b7d9-7286-47f9-8f92-7e1568872028"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 75,
    "total_pages": 3
  }
}

Get all models that supports capabilities requested as filters

Request

Endpoint

GET /models

GET /models?capabilities[prox_card_credential]=true

Parameters

capabilities: {"prox_card_credential"=>"true"}
Name Description
sort Sortable attributes: number, default: none
capabilities Filter by capabilities

Response


200 OK
{
  "data": [
    {
      "type": "model",
      "attributes": {
        "name": "KIC Narrow Stile Lock",
        "number": "KLM-8500",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "37f6cad3-4777-4e0b-abc2-56ed83510f98",
      "links": {
        "self": "http://api.remotelock.dev/models/37f6cad3-4777-4e0b-abc2-56ed83510f98"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Interconnect Lock",
        "number": "PDQ-IN-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "96c2a0c7-0633-4bd6-9da6-5701391df540",
      "links": {
        "self": "http://api.remotelock.dev/models/96c2a0c7-0633-4bd6-9da6-5701391df540"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TTLock",
        "number": "TTLock",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": true,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "2f8f2e7a-cb12-4926-a507-b9918b233ca3",
      "links": {
        "self": "http://api.remotelock.dev/models/2f8f2e7a-cb12-4926-a507-b9918b233ca3"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Mortice Lock",
        "number": "PDQ-M01-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "9281f8e7-afb4-4326-969c-450ef13eb073",
      "links": {
        "self": "http://api.remotelock.dev/models/9281f8e7-afb4-4326-969c-450ef13eb073"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "DUSAW",
        "number": "DUSAW",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": true,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "16beb6c5-ca27-4182-82b8-61028621be6f",
      "links": {
        "self": "http://api.remotelock.dev/models/16beb6c5-ca27-4182-82b8-61028621be6f"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "KIC KoreLine 4500, 5500, 6500",
        "number": "KIC-KL-Series",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "28260113-d34f-48fe-98eb-343c423f2167",
      "links": {
        "self": "http://api.remotelock.dev/models/28260113-d34f-48fe-98eb-343c423f2167"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "E06",
        "number": "WEST-E06",
        "type": "lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "auto_lock_enable": true,
          "auto_lock_schedule": true,
          "auto_lock_timeouts": [
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20,
            30,
            60,
            300,
            600,
            900,
            1200,
            1500,
            1800
          ],
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "heartbeat_intervals": [
            0,
            300,
            900,
            1200,
            1800,
            3600,
            7200,
            14400,
            28800,
            43200
          ],
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "local_pins": true,
          "lock_action_schedule": true,
          "manual_auto_lock_timeout": true,
          "manual_auto_lock_timeout_intervals": [
            5,
            10,
            20,
            30,
            60,
            120,
            300,
            600,
            1200,
            1800,
            3600
          ],
          "mobile_commissionable": true,
          "mute": true,
          "native_temporary_unlockable": false,
          "no_enter_code": true,
          "online_auto_lock": true,
          "phone_credential": false,
          "pin_credential": true,
          "power_sources": [
            "alkaline_battery",
            "lithium_battery"
          ],
          "programming_code": true,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": true,
          "replaceable": true,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wake_wifi": [
            "user_action",
            "heartbeat_interval",
            "user_action_except_manual"
          ],
          "wavelynx_mobile_credential": false
        }
      },
      "id": "0e59e68a-6b56-4532-b694-39f3378ef126",
      "links": {
        "self": "http://api.remotelock.dev/models/0e59e68a-6b56-4532-b694-39f3378ef126"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure 1-Door Controller",
        "number": "KLM-WU1DR",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": true,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "702d1136-f8eb-4d78-a396-79177b38404a",
      "links": {
        "self": "http://api.remotelock.dev/models/702d1136-f8eb-4d78-a396-79177b38404a"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Deadbolt",
        "number": "PDQ-DB-C",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "f78cd546-b354-4182-8d97-b4cd2a9ef2fc",
      "links": {
        "self": "http://api.remotelock.dev/models/f78cd546-b354-4182-8d97-b4cd2a9ef2fc"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "MercuryElevator",
        "number": "MercuryElevator",
        "type": "acs_elevator",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": false,
          "hid_mobile_credential": true,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": true,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "e183bffe-69ef-4d95-a0fb-6c741e57a5e4",
      "links": {
        "self": "http://api.remotelock.dev/models/e183bffe-69ef-4d95-a0fb-6c741e57a5e4"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "MercuryElevatorFloor",
        "number": "MercuryElevatorFloor",
        "type": "acs_elevator_floor",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": false,
          "hid_mobile_credential": true,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": true,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "0338702c-0cba-421a-8ac0-0625b658a74c",
      "links": {
        "self": "http://api.remotelock.dev/models/0338702c-0cba-421a-8ac0-0625b658a74c"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Interconnect Lock",
        "number": "PDQ-IN-C",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "de843ff0-7517-4c5e-a8ed-e5cd0b208ca2",
      "links": {
        "self": "http://api.remotelock.dev/models/de843ff0-7517-4c5e-a8ed-e5cd0b208ca2"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "Mercury",
        "number": "Mercury",
        "type": "acs_door",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": false,
          "hid_mobile_credential": true,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": true,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "8cd45e86-1e1f-4ea7-b0d8-f8fd0ff9679c",
      "links": {
        "self": "http://api.remotelock.dev/models/8cd45e86-1e1f-4ea7-b0d8-f8fd0ff9679c"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Grade 2 Lever",
        "number": "PDQ-G2-C",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "cb3fb82a-dfa4-4f76-b26f-96713a2a1746",
      "links": {
        "self": "http://api.remotelock.dev/models/cb3fb82a-dfa4-4f76-b26f-96713a2a1746"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Grade 1 Lever",
        "number": "PDQ-G1-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "b5fdedf1-8732-4b64-bf67-c51dc0ac0e5a",
      "links": {
        "self": "http://api.remotelock.dev/models/b5fdedf1-8732-4b64-bf67-c51dc0ac0e5a"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Mortice Lock w/Deadbolt",
        "number": "PDQ-M03-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "b7b4a497-50d7-48d4-a926-dd2e40f41801",
      "links": {
        "self": "http://api.remotelock.dev/models/b7b4a497-50d7-48d4-a926-dd2e40f41801"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Grade 1 Lever",
        "number": "PDQ-G1-C",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "bbe8d47b-966d-442e-913e-483638302887",
      "links": {
        "self": "http://api.remotelock.dev/models/bbe8d47b-966d-442e-913e-483638302887"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "ZKTeco USA Atlas Series",
        "number": "ZKTecoUsaAtlasSeries",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "44d72fa1-bbe8-4969-b7e0-1146595438f9",
      "links": {
        "self": "http://api.remotelock.dev/models/44d72fa1-bbe8-4969-b7e0-1146595438f9"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Mortice Lock",
        "number": "PDQ-M01-C",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "527c773f-27a3-4395-8dbd-efa705951892",
      "links": {
        "self": "http://api.remotelock.dev/models/527c773f-27a3-4395-8dbd-efa705951892"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "Yonomi XE360",
        "number": "YonomiXe360",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": true,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": true,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": true,
          "schlage_engage_smart_card_credential": true,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "e338597f-14f9-435a-84a7-a10908787078",
      "links": {
        "self": "http://api.remotelock.dev/models/e338597f-14f9-435a-84a7-a10908787078"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Mortice Lock w/Deadbolt",
        "number": "PDQ-M03-C",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "137bfdcd-3591-4fca-89ad-5de6af95125e",
      "links": {
        "self": "http://api.remotelock.dev/models/137bfdcd-3591-4fca-89ad-5de6af95125e"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "RemoteLock KL Series 900j(WST-900JQ)",
        "number": "WST-900JQ",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "2e31400d-0d45-4813-8892-8be86ed9accc",
      "links": {
        "self": "http://api.remotelock.dev/models/2e31400d-0d45-4813-8892-8be86ed9accc"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Exit Device",
        "number": "PDQ-EX-C",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": false,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "cf45ddb2-7e97-41a4-bad9-e2557fd8a932",
      "links": {
        "self": "http://api.remotelock.dev/models/cf45ddb2-7e97-41a4-bad9-e2557fd8a932"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "Dormakaba Saffire EVO",
        "number": "DormakabaSaffireEvo",
        "type": "connector_lock",
        "capabilities": {
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": true,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlock_timeout_time": 10,
          "emulated_temporary_unlockable": true,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": true,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": false,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "3422d957-ab91-4479-a388-be7e8965a3d4",
      "links": {
        "self": "http://api.remotelock.dev/models/3422d957-ab91-4479-a388-be7e8965a3d4"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Grade 2 Lever",
        "number": "PDQ-G2-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "e1a0ca13-665c-4b2f-8f28-4629edbed5c6",
      "links": {
        "self": "http://api.remotelock.dev/models/e1a0ca13-665c-4b2f-8f28-4629edbed5c6"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "RemoteLock KL Series 900j(WST-900J/F)",
        "number": "WST-900J/F",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": false,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "4bb1cd01-a328-41c7-8a30-3d42d6ebec33",
      "links": {
        "self": "http://api.remotelock.dev/models/4bb1cd01-a328-41c7-8a30-3d42d6ebec33"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Exit Device",
        "number": "PDQ-EX-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "8e9f0d14-4cdc-4df2-ba87-bbe56b9b8fc0",
      "links": {
        "self": "http://api.remotelock.dev/models/8e9f0d14-4cdc-4df2-ba87-bbe56b9b8fc0"
      }
    },
    {
      "type": "model",
      "attributes": {
        "name": "TrueSecure Deadbolt",
        "number": "PDQ-DB-CK",
        "type": "connector_lock",
        "capabilities": {
          "access_exception": true,
          "august_mobile_credential": false,
          "connected": true,
          "disable_network_lock_unlock": false,
          "dormakaba_lyazon_mobile_credential": false,
          "emulated_temporary_unlockable": false,
          "guest_deferrable": false,
          "hid_mobile_credential": false,
          "igloo_mobile_credential": false,
          "korelock_wifi_credential": true,
          "mobile_commissionable": true,
          "native_temporary_unlockable": false,
          "phone_credential": false,
          "pin_credential": true,
          "prox_card_credential": true,
          "ready_pin_credential": true,
          "registrable": false,
          "replaceable": false,
          "schlage_engage_mobile_credential": false,
          "schlage_engage_smart_card_credential": false,
          "smart_card_credential": false,
          "ttlock_mobile_credential": false,
          "unikey_credential": false,
          "wavelynx_mobile_credential": false
        }
      },
      "id": "8a68e546-77f9-4ab4-b12d-2d5268036797",
      "links": {
        "self": "http://api.remotelock.dev/models/8a68e546-77f9-4ab4-b12d-2d5268036797"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 28,
    "total_count": 28,
    "total_pages": 1
  }
}

Get a model

Request

Endpoint

GET /models/:id

GET /models/aff19eef-afb9-4627-8a34-aaed31d8b95c

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "model",
    "attributes": {
      "name": "RL-4000",
      "number": "RL-4000",
      "type": "resort_lock",
      "capabilities": {
        "august_mobile_credential": false,
        "connected": false,
        "disable_network_lock_unlock": false,
        "dormakaba_lyazon_mobile_credential": false,
        "emulated_temporary_unlockable": false,
        "guest_deferrable": false,
        "hid_mobile_credential": false,
        "igloo_mobile_credential": false,
        "korelock_wifi_credential": false,
        "mobile_commissionable": true,
        "native_temporary_unlockable": false,
        "phone_credential": false,
        "pin_credential": false,
        "prox_card_credential": false,
        "ready_pin_credential": false,
        "registrable": true,
        "replaceable": false,
        "schlage_engage_mobile_credential": false,
        "schlage_engage_smart_card_credential": false,
        "smart_card_credential": false,
        "ttlock_mobile_credential": false,
        "unikey_credential": false,
        "wavelynx_mobile_credential": false
      }
    },
    "id": "aff19eef-afb9-4627-8a34-aaed31d8b95c",
    "links": {
      "self": "http://api.remotelock.dev/models/aff19eef-afb9-4627-8a34-aaed31d8b95c"
    }
  }
}

Notification Subscribers

Get all notification subscribers

Returns all notification subscriber types (homogeneous).

Request

Endpoint

GET /notification_subscribers

GET /notification_subscribers

Parameters

Name Description
[type] Filter by type(s). Supported types: email_notification_subscriber, text_notification_subscriber, and webhook_notification_subscriber
sort Sortable attributes: created_at and name, default: created_at ascending

Response


200 OK
{
  "data": [
    {
      "type": "text_notification_subscriber",
      "attributes": {
        "name": "Mr. Grant Fisher",
        "phone": "1-359-138-7208",
        "carrier": "virgin",
        "active": true,
        "created_at": "2026-03-03T00:13:12Z",
        "updated_at": "2026-03-03T00:13:12Z"
      },
      "id": "0676b902-34eb-465b-a287-442659492b8d",
      "links": {
        "self": "http://api.remotelock.dev/notification_subscribers/0676b902-34eb-465b-a287-442659492b8d"
      }
    },
    {
      "type": "webhook_notification_subscriber",
      "attributes": {
        "name": "Verline Purdy",
        "url": "https://www.google.com",
        "content_type": "form",
        "secret": "16656a6b5b05796543415eecdd7b39e4",
        "active": true,
        "created_at": "2026-03-03T00:13:12Z",
        "updated_at": "2026-03-03T00:13:12Z"
      },
      "id": "6f5e3c19-557f-428f-b781-102ab215a800",
      "links": {
        "self": "http://api.remotelock.dev/notification_subscribers/6f5e3c19-557f-428f-b781-102ab215a800"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get a notification subscriber

Request

Endpoint

GET /notification_subscribers/:id

GET /notification_subscribers/52212e6e-e1e6-43d0-b5e8-ea2de24e2afd

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "text_notification_subscriber",
    "attributes": {
      "name": "Ivory Conroy",
      "phone": "1-531-614-8243 x09232",
      "carrier": "tmobile",
      "active": true,
      "created_at": "2026-03-03T00:13:13Z",
      "updated_at": "2026-03-03T00:13:13Z"
    },
    "id": "52212e6e-e1e6-43d0-b5e8-ea2de24e2afd",
    "links": {
      "self": "http://api.remotelock.dev/notification_subscribers/52212e6e-e1e6-43d0-b5e8-ea2de24e2afd"
    }
  }
}

Update a notification subscriber

Parameters accepted: all used for create

Request

Endpoint

PUT /notification_subscribers/:id

PUT /notification_subscribers/9e9a068a-8b6d-4e4a-b272-1124f301cb83

Parameters

{
  "attributes": {
    "active": false
  }
}

None.

Response


200 OK
{
  "data": {
    "type": "text_notification_subscriber",
    "attributes": {
      "name": "Alden Fisher PhD",
      "phone": "(683) 916-4436 x20384",
      "carrier": "vodafone",
      "active": false,
      "created_at": "2026-03-03T00:13:14Z",
      "updated_at": "2026-03-03T00:13:14Z"
    },
    "id": "9e9a068a-8b6d-4e4a-b272-1124f301cb83",
    "links": {
      "self": "http://api.remotelock.dev/notification_subscribers/9e9a068a-8b6d-4e4a-b272-1124f301cb83"
    }
  }
}

Delete a notification subscriber

Request

Endpoint

DELETE /notification_subscribers/:id

DELETE /notification_subscribers/d3afceb0-f784-4900-ab1e-ce3b2e14f082

Parameters

None.

Response


204 No Content

Delete the webhook notification subscriber

Request

Endpoint

DELETE /notification_subscribers/:id

DELETE /notification_subscribers/9d65849d-0870-4039-92b0-5d3e091e32d5

Parameters

None.

Response


204 No Content

Delete a notification subscriber

Request

Endpoint

DELETE /notification_subscribers/:id

DELETE /notification_subscribers/49658a31-7041-4e1b-8f7e-d066cba3659b

Parameters

None.

Response


204 No Content

Create an email notification subscriber

Request

Endpoint

POST /notification_subscribers

POST /notification_subscribers

Parameters

{
  "type": "email_notification_subscriber",
  "attributes": {
    "active": true,
    "name": "John Doe",
    "email": "[email protected]"
  }
}
Name Description
type required email_notification_subscriber
attributes[active] Whether the subscriber is active or not. The subscriber will not receive notifications if set to false. Default: true
attributes[name] required Name
attributes[email] required Email

Response


201 Created
{
  "data": {
    "type": "email_notification_subscriber",
    "attributes": {
      "name": "John Doe",
      "email": "[email protected]",
      "active": true,
      "created_at": "2026-03-03T00:13:17Z",
      "updated_at": "2026-03-03T00:13:17Z"
    },
    "id": "3b9aab0b-f17d-4803-a7da-a4a5d83e2e2b",
    "links": {
      "self": "http://api.remotelock.dev/notification_subscribers/3b9aab0b-f17d-4803-a7da-a4a5d83e2e2b"
    }
  }
}

Create a text notification subscriber

Request

Endpoint

POST /notification_subscribers

POST /notification_subscribers

Parameters

{
  "type": "text_notification_subscriber",
  "attributes": {
    "active": true,
    "name": "John Doe",
    "phone": "303-317-3422",
    "carrier": "att"
  }
}
Name Description
type required text_notification_subscriber
attributes[active] Whether the subscriber is active or not. The subscriber will not receive notifications if set to false. Default: true
attributes[name] required Name
attributes[phone] required Phone Number
attributes[carrier] required Carrier

Response


201 Created
{
  "data": {
    "type": "text_notification_subscriber",
    "attributes": {
      "name": "John Doe",
      "phone": "303-317-3422",
      "carrier": "att",
      "active": true,
      "created_at": "2026-03-03T00:13:18Z",
      "updated_at": "2026-03-03T00:13:18Z"
    },
    "id": "7bd2d2a2-f788-47c3-b127-cca257e1d7f4",
    "links": {
      "self": "http://api.remotelock.dev/notification_subscribers/7bd2d2a2-f788-47c3-b127-cca257e1d7f4"
    }
  }
}

Create a webhook notification subscriber

Webhooks are HTTP callbacks that you can create to receive events as they happen.

Webhook endpoint requirements

  1. Must be secured with HTTPS
  2. Validate request from us using the X-Secret header provided when webhook was created
  3. Process the request within 3 seconds, otherwise the request will timeout and our server will schedule it for retry. To avoid exceeding this deadline, we recommend processing webhook requests outside of the request/response lifecycle
  4. Always respond with 200 range status code, otherwise our server will schedule the request for retry

Retry logic

Whenever your webhook endpoint responds with a non-200 range status code or exceeds the deadline, our server will timeout the request and schedule for retry.

Our server will retry failed requests according to the mapping below:

Most of the time, this is enough to fix an issue on the webhook target server.

Webhook deactivation

If any message cannot be acknowledged by the webhook endpoint after the retries, our server will automatically deactivate the webhook. When this happens, we send an email notifying about the deactivated webhook.

Request

Endpoint

POST /notification_subscribers

POST /notification_subscribers

Parameters

{
  "type": "webhook_notification_subscriber",
  "attributes": {
    "active": true,
    "name": "John's webhook",
    "url": "https://google.com",
    "content_type": "form",
    "secret": "5f7c5b9ccedea8832a46cfca516da134"
  }
}
Name Description
type required webhook_notification_subscriber
attributes[active] Whether the subscriber is active or not. The subscriber will not receive notifications if set to false. Default: true
attributes[name] required Name
attributes[url] required Secure (HTTPS) URL
attributes[content_type] required Content-Type ("form" or "json"). Default is "form".
attributes[secret] "X-Secret" request header to verify it came from us

Response


201 Created
{
  "data": {
    "type": "webhook_notification_subscriber",
    "attributes": {
      "name": "John's webhook",
      "url": "https://google.com",
      "content_type": "form",
      "secret": "5f7c5b9ccedea8832a46cfca516da134",
      "active": true,
      "created_at": "2026-03-03T00:13:19Z",
      "updated_at": "2026-03-03T00:13:19Z"
    },
    "id": "10f70282-785a-4b75-8f4e-74b7f6c57bbd",
    "links": {
      "self": "http://api.remotelock.dev/notification_subscribers/10f70282-785a-4b75-8f4e-74b7f6c57bbd"
    }
  }
}

Notification Subscriptions

Get all notification subscriptions

Request

Endpoint

GET /notification_subscriptions

GET /notification_subscriptions

Parameters

Name Description
sort Sortable attributes: created_at, default: created_at ascending

Response


200 OK
{
  "data": [
    {
      "type": "notification_subscription",
      "attributes": {
        "events": [
          {
            "event_type": "access_person_used"
          }
        ],
        "created_at": "2026-03-03T00:13:11Z",
        "updated_at": "2026-03-03T00:13:11Z",
        "subscriber_id": "f87da380-8ace-4632-9cc8-af5ea716eff0",
        "subscriber_type": "text_notification_subscriber",
        "publisher_id": "bcae9afb-300a-40b4-8065-c20aa14d378e",
        "publisher_type": "account"
      },
      "id": "e700d524-029d-43ab-ac2a-8428ca2a193c",
      "links": {
        "self": "http://api.remotelock.dev/notification_subscriptions/e700d524-029d-43ab-ac2a-8428ca2a193c",
        "subscriber": "http://api.remotelock.dev/notification_subscribers/f87da380-8ace-4632-9cc8-af5ea716eff0",
        "publisher": "http://api.remotelock.dev/accounts/bcae9afb-300a-40b4-8065-c20aa14d378e"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 1,
    "total_pages": 1
  }
}

Get a notification subscription

Request

Endpoint

GET /notification_subscriptions/:id

GET /notification_subscriptions/434a80df-f1e4-48a6-9b19-142fe95f43ee

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "notification_subscription",
    "attributes": {
      "events": [
        {
          "event_type": "access_person_used"
        }
      ],
      "created_at": "2026-03-03T00:13:11Z",
      "updated_at": "2026-03-03T00:13:11Z",
      "subscriber_id": "8ce8fccc-b4b0-45ea-97d0-09e43c0bb5a8",
      "subscriber_type": "text_notification_subscriber",
      "publisher_id": "fd86c2f0-e1b7-4e46-94d6-3e254ee6ce36",
      "publisher_type": "account"
    },
    "id": "434a80df-f1e4-48a6-9b19-142fe95f43ee",
    "links": {
      "self": "http://api.remotelock.dev/notification_subscriptions/434a80df-f1e4-48a6-9b19-142fe95f43ee",
      "subscriber": "http://api.remotelock.dev/notification_subscribers/8ce8fccc-b4b0-45ea-97d0-09e43c0bb5a8",
      "publisher": "http://api.remotelock.dev/accounts/fd86c2f0-e1b7-4e46-94d6-3e254ee6ce36"
    }
  }
}

Create a notification subscription

Notification Subscription is the combination of a Publisher, a Subscriber and the events to listen.

The event types contained in events must be compatible with the publisher type. Accounts and Locations can be combined with any event_type, but the others only work with their compatible event JSON Schemas:

{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "access_person_used"
      ]
    },
    "first_access": {
      "type": "boolean"
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "access_person_created",
        "access_person_updated",
        "access_person_deleted"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "acs_door_opened",
        "acs_door_closed",
        "acs_door_held_open",
        "lock_requested",
        "unlock_requested",
        "temporary_unlock_requested",
        "temporary_unlock_timeout",
        "access_person_synced",
        "access_person_sync_failed",
        "access_guest_late_sync",
        "reset",
        "ready_pin_sync_failed",
        "unlocked",
        "locked",
        "access_denied",
        "jammed"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity",
        "power_level_low",
        "battery_replaced",
        "lock_requested",
        "unlock_requested",
        "temporary_unlock_requested",
        "temporary_unlock_timeout",
        "access_person_synced",
        "access_person_sync_failed",
        "access_guest_late_sync",
        "reset",
        "ready_pin_sync_failed",
        "unlocked",
        "locked",
        "access_denied",
        "jammed"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity",
        "power_level_low",
        "temperature_changed",
        "humidity_changed",
        "outdoor_temperature_changed",
        "outdoor_humidity_changed"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity",
        "relay_enabled",
        "relay_disabled"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity",
        "power_level_low",
        "door_action_held_open",
        "door_action_forced_open",
        "door_action_tamper_detected",
        "door_action_tamper_cleared",
        "ble_mapp_connected",
        "lock_requested",
        "unlock_requested",
        "temporary_unlock_requested",
        "temporary_unlock_timeout",
        "access_person_synced",
        "access_person_sync_failed",
        "access_guest_late_sync",
        "reset",
        "ready_pin_sync_failed",
        "unlocked",
        "locked",
        "access_denied",
        "jammed"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity",
        "power_level_low",
        "power_level_restored",
        "power_level_critical",
        "power_level_critical_restored",
        "temperature_changed",
        "humidity_changed",
        "outdoor_temperature_changed",
        "outdoor_humidity_changed"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity",
        "power_level_low",
        "lock_requested",
        "unlock_requested",
        "temporary_unlock_requested",
        "temporary_unlock_timeout",
        "access_person_synced",
        "access_person_sync_failed",
        "access_guest_late_sync",
        "reset",
        "ready_pin_sync_failed",
        "unlocked",
        "locked",
        "access_denied",
        "jammed"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity",
        "power_level_low",
        "lock_requested",
        "unlock_requested",
        "temporary_unlock_requested",
        "temporary_unlock_timeout",
        "access_person_synced",
        "access_person_sync_failed",
        "access_guest_late_sync",
        "reset",
        "ready_pin_sync_failed",
        "unlocked",
        "locked",
        "access_denied",
        "jammed"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity",
        "power_level_low",
        "power_level_restored",
        "power_level_critical",
        "power_level_critical_restored",
        "alarm_triggered",
        "alarm_resolved"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "connectivity"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "kore_ready_pin_used"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "lock_requested",
        "unlock_requested",
        "temporary_unlock_requested",
        "temporary_unlock_timeout",
        "unlocked",
        "locked",
        "access_denied",
        "jammed"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}
{
  "type": "object",
  "properties": {
    "event_type": {
      "enum": [
        "lock_requested",
        "unlock_requested",
        "temporary_unlock_requested",
        "temporary_unlock_timeout",
        "access_person_synced",
        "access_person_sync_failed",
        "access_guest_late_sync",
        "reset",
        "ready_pin_sync_failed",
        "unlockedlocked"
      ]
    }
  },
  "required": [
    "event_type"
  ],
  "additionalProperties": false
}

Request

Endpoint

POST /notification_subscriptions

POST /notification_subscriptions

Parameters

{
  "attributes": {
    "events": [
      {
        "event_type": "access_person_used"
      },
      {
        "event_type": "access_person_created"
      },
      {
        "event_type": "access_person_updated"
      },
      {
        "event_type": "access_person_deleted"
      },
      {
        "event_type": "acs_door_opened"
      },
      {
        "event_type": "acs_door_closed"
      },
      {
        "event_type": "acs_door_held_open"
      },
      {
        "event_type": "lock_requested"
      },
      {
        "event_type": "unlock_requested"
      },
      {
        "event_type": "temporary_unlock_requested"
      },
      {
        "event_type": "temporary_unlock_timeout"
      },
      {
        "event_type": "access_person_synced"
      },
      {
        "event_type": "access_person_sync_failed"
      },
      {
        "event_type": "access_guest_late_sync"
      },
      {
        "event_type": "reset"
      },
      {
        "event_type": "ready_pin_sync_failed"
      },
      {
        "event_type": "unlocked"
      },
      {
        "event_type": "locked"
      },
      {
        "event_type": "access_denied"
      },
      {
        "event_type": "jammed"
      },
      {
        "event_type": "connectivity"
      },
      {
        "event_type": "power_level_low"
      },
      {
        "event_type": "battery_replaced"
      },
      {
        "event_type": "temperature_changed"
      },
      {
        "event_type": "humidity_changed"
      },
      {
        "event_type": "outdoor_temperature_changed"
      },
      {
        "event_type": "outdoor_humidity_changed"
      },
      {
        "event_type": "relay_enabled"
      },
      {
        "event_type": "relay_disabled"
      },
      {
        "event_type": "door_action_held_open"
      },
      {
        "event_type": "door_action_forced_open"
      },
      {
        "event_type": "door_action_tamper_detected"
      },
      {
        "event_type": "door_action_tamper_cleared"
      },
      {
        "event_type": "ble_mapp_connected"
      },
      {
        "event_type": "power_level_restored"
      },
      {
        "event_type": "power_level_critical"
      },
      {
        "event_type": "power_level_critical_restored"
      },
      {
        "event_type": "alarm_triggered"
      },
      {
        "event_type": "alarm_resolved"
      },
      {
        "event_type": "kore_ready_pin_used"
      },
      {
        "event_type": "unlockedlocked"
      }
    ],
    "publisher_type": "account",
    "publisher_id": "c3a0d7e0-7071-4d6c-88a4-df4c7b87eaee",
    "subscriber_type": "text_notification_subscriber",
    "subscriber_id": "1566d8ff-1be0-4570-9c49-44f1e47e6bd7"
  }
}
Name Description
attributes[events] required [{ "event_type": "a supported event type" }, ...]
attributes[publisher_type] required Publisher type: account, location, access_user, access_guest, kore_ready_pin, lock, thermostat, power_plug, acs_door, acs_controller, acs_elevator, acs_elevator_floor, connector_lock, zwave_lock, schlage_home_lock, igloo_lock, connector_thermostat or connector_sensor
attributes[publisher_id] required Publisher id
attributes[subscriber_type] required Subscriber type: text_notification_subscriber, email_notification_subscriber or webhook_notification_subscriber
attributes[subscriber_id] required Subscriber id

Response


201 Created
{
  "data": {
    "type": "notification_subscription",
    "attributes": {
      "events": [
        {
          "event_type": "access_person_used"
        },
        {
          "event_type": "access_person_created"
        },
        {
          "event_type": "access_person_updated"
        },
        {
          "event_type": "access_person_deleted"
        },
        {
          "event_type": "acs_door_opened"
        },
        {
          "event_type": "acs_door_closed"
        },
        {
          "event_type": "acs_door_held_open"
        },
        {
          "event_type": "lock_requested"
        },
        {
          "event_type": "unlock_requested"
        },
        {
          "event_type": "temporary_unlock_requested"
        },
        {
          "event_type": "temporary_unlock_timeout"
        },
        {
          "event_type": "access_person_synced"
        },
        {
          "event_type": "access_person_sync_failed"
        },
        {
          "event_type": "access_guest_late_sync"
        },
        {
          "event_type": "reset"
        },
        {
          "event_type": "ready_pin_sync_failed"
        },
        {
          "event_type": "unlocked"
        },
        {
          "event_type": "locked"
        },
        {
          "event_type": "access_denied"
        },
        {
          "event_type": "jammed"
        },
        {
          "event_type": "connectivity"
        },
        {
          "event_type": "power_level_low"
        },
        {
          "event_type": "battery_replaced"
        },
        {
          "event_type": "temperature_changed"
        },
        {
          "event_type": "humidity_changed"
        },
        {
          "event_type": "outdoor_temperature_changed"
        },
        {
          "event_type": "outdoor_humidity_changed"
        },
        {
          "event_type": "relay_enabled"
        },
        {
          "event_type": "relay_disabled"
        },
        {
          "event_type": "door_action_held_open"
        },
        {
          "event_type": "door_action_forced_open"
        },
        {
          "event_type": "door_action_tamper_detected"
        },
        {
          "event_type": "door_action_tamper_cleared"
        },
        {
          "event_type": "ble_mapp_connected"
        },
        {
          "event_type": "power_level_restored"
        },
        {
          "event_type": "power_level_critical"
        },
        {
          "event_type": "power_level_critical_restored"
        },
        {
          "event_type": "alarm_triggered"
        },
        {
          "event_type": "alarm_resolved"
        },
        {
          "event_type": "kore_ready_pin_used"
        },
        {
          "event_type": "unlockedlocked"
        }
      ],
      "created_at": "2026-03-03T00:13:12Z",
      "updated_at": "2026-03-03T00:13:12Z",
      "subscriber_id": "1566d8ff-1be0-4570-9c49-44f1e47e6bd7",
      "subscriber_type": "text_notification_subscriber",
      "publisher_id": "c3a0d7e0-7071-4d6c-88a4-df4c7b87eaee",
      "publisher_type": "account"
    },
    "id": "7b28e3e2-dc71-4b39-8043-f3766c3bf73b",
    "links": {
      "self": "http://api.remotelock.dev/notification_subscriptions/7b28e3e2-dc71-4b39-8043-f3766c3bf73b",
      "subscriber": "http://api.remotelock.dev/notification_subscribers/1566d8ff-1be0-4570-9c49-44f1e47e6bd7",
      "publisher": "http://api.remotelock.dev/account"
    }
  }
}

Update a notification subscription

Request

Endpoint

PUT /notification_subscriptions/:id

PUT /notification_subscriptions/a73785de-6482-4243-af9f-719268666499

Parameters

{
  "attributes": {
    "events": [
      {
        "event_type": "access_person_used"
      },
      {
        "event_type": "acs_door_held_open"
      }
    ]
  }
}
Name Description
attributes[events] [{ "event_type": "a supported event type" }, ...]
attributes[publisher_type] Publisher type: account, location, access_user, access_guest, kore_ready_pin, lock, thermostat, power_plug, acs_door, acs_controller, acs_elevator, acs_elevator_floor, connector_lock, zwave_lock, schlage_home_lock, igloo_lock, connector_thermostat or connector_sensor
attributes[publisher_id] Publisher id
attributes[subscriber_type] Subscriber type: text_notification_subscriber, email_notification_subscriber or webhook_notification_subscriber
attributes[subscriber_id] Subscriber id

Response


200 OK
{
  "data": {
    "type": "notification_subscription",
    "attributes": {
      "events": [
        {
          "event_type": "access_person_used"
        },
        {
          "event_type": "acs_door_held_open"
        }
      ],
      "created_at": "2026-03-03T00:13:13Z",
      "updated_at": "2026-03-03T00:13:13Z",
      "subscriber_id": "713caa01-3ddb-4de1-9a60-d8c18b28e5f2",
      "subscriber_type": "text_notification_subscriber",
      "publisher_id": "a1dcccd3-fdfa-41ea-af28-59cf05ee672c",
      "publisher_type": "account"
    },
    "id": "a73785de-6482-4243-af9f-719268666499",
    "links": {
      "self": "http://api.remotelock.dev/notification_subscriptions/a73785de-6482-4243-af9f-719268666499",
      "subscriber": "http://api.remotelock.dev/notification_subscribers/713caa01-3ddb-4de1-9a60-d8c18b28e5f2",
      "publisher": "http://api.remotelock.dev/accounts/a1dcccd3-fdfa-41ea-af28-59cf05ee672c"
    }
  }
}

Delete a notification subscription

Request

Endpoint

DELETE /notification_subscriptions/:id

DELETE /notification_subscriptions/1de0be3c-da08-4a1e-aae1-4bcad0bb0b49

Parameters

None.

Response


204 No Content

Notifications

Get all notifications

Request

Endpoint

GET /notifications

GET /notifications

Parameters

None.

Response


200 OK
{
  "data": [
    {
      "type": "notification",
      "attributes": {
        "created_at": "2026-03-03T00:13:59Z",
        "updated_at": "2026-03-03T00:13:59Z",
        "subscriber_id": "2d257d88-ef5c-4777-b6c6-6a956141b2f7",
        "subscriber_type": "text_notification_subscriber",
        "publisher_id": "2ec18ae3-4e31-4dee-8066-399fcf5ef433",
        "publisher_type": "lock",
        "event_id": "4f888463-6c50-4c40-9b53-d3dbf28f7f5f",
        "event_type": "unlocked_event"
      },
      "id": "2142d8da-7352-44f9-8517-abd07d52b3e7",
      "links": {
        "self": "http://api.remotelock.dev/notifications/2142d8da-7352-44f9-8517-abd07d52b3e7",
        "subscriber": "http://api.remotelock.dev/notification_subscribers/2d257d88-ef5c-4777-b6c6-6a956141b2f7",
        "publisher": "http://api.remotelock.dev/devices/2ec18ae3-4e31-4dee-8066-399fcf5ef433",
        "event": "http://api.remotelock.dev/events/4f888463-6c50-4c40-9b53-d3dbf28f7f5f"
      }
    },
    {
      "type": "notification",
      "attributes": {
        "created_at": "2026-03-03T00:13:59Z",
        "updated_at": "2026-03-03T00:13:59Z",
        "subscriber_id": "91422285-e4d0-4107-b584-605c1f8a4818",
        "subscriber_type": "email_notification_subscriber",
        "publisher_id": "2ec18ae3-4e31-4dee-8066-399fcf5ef433",
        "publisher_type": "lock",
        "event_id": "4f888463-6c50-4c40-9b53-d3dbf28f7f5f",
        "event_type": "unlocked_event"
      },
      "id": "965bb808-ea43-4e1e-b676-fd881db0a0ed",
      "links": {
        "self": "http://api.remotelock.dev/notifications/965bb808-ea43-4e1e-b676-fd881db0a0ed",
        "subscriber": "http://api.remotelock.dev/notification_subscribers/91422285-e4d0-4107-b584-605c1f8a4818",
        "publisher": "http://api.remotelock.dev/devices/2ec18ae3-4e31-4dee-8066-399fcf5ef433",
        "event": "http://api.remotelock.dev/events/4f888463-6c50-4c40-9b53-d3dbf28f7f5f"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Ready PIN Models

Get all ready pin models

Request

Endpoint

GET /ready_pin_models

GET /ready_pin_models

Parameters

None.

Response


200 OK
{
  "data": [
    {
      "type": "ready_pin_model",
      "attributes": {
        "has_long_mode": true,
        "long_mode_hint": null,
        "long_mode_interval": 32,
        "max_duration": 365,
        "has_hourly_granularity": true,
        "name": "KeyInCode / Remotelock",
        "long_mode_start_hour": 8,
        "long_mode_end_hour": 20,
        "created_at": "2026-03-03T00:15:01Z",
        "updated_at": "2026-03-03T00:15:01Z"
      },
      "id": "4e5d2049-16f4-402f-8070-cd1e8eeb8b5c",
      "links": {
        "self": "http://api.remotelock.dev/ready_pin_models/4e5d2049-16f4-402f-8070-cd1e8eeb8b5c"
      }
    },
    {
      "type": "ready_pin_model",
      "attributes": {
        "has_long_mode": true,
        "long_mode_hint": null,
        "long_mode_interval": 28,
        "max_duration": 367,
        "has_hourly_granularity": true,
        "name": "Igloolock",
        "long_mode_start_hour": 8,
        "long_mode_end_hour": 8,
        "created_at": "2026-03-03T00:15:01Z",
        "updated_at": "2026-03-03T00:15:01Z"
      },
      "id": "618339b3-b8bd-46df-93c1-cdf233bb0c23",
      "links": {
        "self": "http://api.remotelock.dev/ready_pin_models/618339b3-b8bd-46df-93c1-cdf233bb0c23"
      }
    },
    {
      "type": "ready_pin_model",
      "attributes": {
        "has_long_mode": true,
        "long_mode_hint": null,
        "long_mode_interval": 365,
        "max_duration": 3650,
        "has_hourly_granularity": true,
        "name": "TTLock",
        "long_mode_start_hour": 0,
        "long_mode_end_hour": 0,
        "created_at": "2026-03-03T00:15:01Z",
        "updated_at": "2026-03-03T00:15:01Z"
      },
      "id": "43165a6b-6873-4604-8fb4-de2b7b1d1cac",
      "links": {
        "self": "http://api.remotelock.dev/ready_pin_models/43165a6b-6873-4604-8fb4-de2b7b1d1cac"
      }
    },
    {
      "type": "ready_pin_model",
      "attributes": {
        "has_long_mode": false,
        "long_mode_hint": null,
        "long_mode_interval": null,
        "max_duration": 365,
        "has_hourly_granularity": true,
        "name": "Test Model (Short Mode)",
        "long_mode_start_hour": null,
        "long_mode_end_hour": null,
        "created_at": "2026-03-03T00:15:01Z",
        "updated_at": "2026-03-03T00:15:01Z"
      },
      "id": "35da212e-4d6a-4e10-a615-3abc8795defc",
      "links": {
        "self": "http://api.remotelock.dev/ready_pin_models/35da212e-4d6a-4e10-a615-3abc8795defc"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 4,
    "total_pages": 1
  }
}

Resort Lock Guests

Get all resort lock guests

Request

Endpoint

GET /resort_lock_guests

GET /resort_lock_guests

Parameters

Name Description
sort Sortable attributes: created_at, name, starts_at, and ends_at, default: created_at ascending

Response


200 OK
{
  "data": [
    {
      "type": "resort_lock_guest",
      "attributes": {
        "name": "Aurel Chiper",
        "email": "[email protected]",
        "starts_at": "2026-03-13T00:00:00",
        "ends_at": "2026-03-17T00:00:00",
        "one_time_access": false,
        "status": "upcoming",
        "source": null,
        "guest_source": null,
        "created_at": "2026-03-03T00:13:32Z",
        "updated_at": "2026-03-03T00:13:32Z",
        "pin": "1234567890",
        "resort_lock_id": "ca344137-9b6d-4293-b966-a532c4da8f44"
      },
      "id": "c2b04db8-21e5-48f8-9a97-0a36e26b737a",
      "links": {
        "self": "http://api.remotelock.dev/resort_lock_guests/c2b04db8-21e5-48f8-9a97-0a36e26b737a",
        "resort_lock": "http://api.remotelock.dev/devices/ca344137-9b6d-4293-b966-a532c4da8f44"
      }
    },
    {
      "type": "resort_lock_guest",
      "attributes": {
        "name": "Sen. Keri Kilback",
        "email": "[email protected]",
        "starts_at": "2026-03-03T00:00:00",
        "ends_at": "2026-03-05T00:00:00",
        "one_time_access": false,
        "status": "current",
        "source": null,
        "guest_source": null,
        "created_at": "2026-03-03T00:13:32Z",
        "updated_at": "2026-03-03T00:13:32Z",
        "pin": "1444981035",
        "resort_lock_id": "ca344137-9b6d-4293-b966-a532c4da8f44"
      },
      "id": "c7197eeb-72b3-4a1a-ac4e-52f0dd91834d",
      "links": {
        "self": "http://api.remotelock.dev/resort_lock_guests/c7197eeb-72b3-4a1a-ac4e-52f0dd91834d",
        "resort_lock": "http://api.remotelock.dev/devices/ca344137-9b6d-4293-b966-a532c4da8f44"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get a resort lock guest

Request

Endpoint

GET /resort_lock_guests/:id

GET /resort_lock_guests/27759652-5ac6-4fee-bc65-908fe551ad2a

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "resort_lock_guest",
    "attributes": {
      "name": "Aurel Chiper",
      "email": "[email protected]",
      "starts_at": "2026-03-13T00:00:00",
      "ends_at": "2026-03-17T00:00:00",
      "one_time_access": false,
      "status": "upcoming",
      "source": null,
      "guest_source": null,
      "created_at": "2026-03-03T00:13:33Z",
      "updated_at": "2026-03-03T00:13:33Z",
      "pin": "1234567890",
      "resort_lock_id": "63977c4a-d798-4e16-b9bc-dbb772bb9d38"
    },
    "id": "27759652-5ac6-4fee-bc65-908fe551ad2a",
    "links": {
      "self": "http://api.remotelock.dev/resort_lock_guests/27759652-5ac6-4fee-bc65-908fe551ad2a",
      "resort_lock": "http://api.remotelock.dev/devices/63977c4a-d798-4e16-b9bc-dbb772bb9d38"
    }
  }
}

Create a resort lock guest

'Resort lock guest' has temporary location access limited by 'starts_at' and 'ends_at' parameters.

Request

Endpoint

POST /resort_lock_guests

POST /resort_lock_guests

Parameters

{
  "attributes": {
    "resort_lock_id": "38928487-87db-4aad-b5b1-35644a15c028",
    "name": "Ann Smith",
    "starts_at": "2020-01-02T13:00:00",
    "ends_at": "2021-01-02T16:00:00",
    "email": "[email protected]"
  }
}
Name Description
attributes[resort_lock_id] required Resort Lock
attributes[name] required Name
attributes[starts_at] required Starts at ISO 8601 timestamp without time zone. Only hours are supported (minutes and seconds will be converted to zeros).
attributes[ends_at] required Ends at ISO 8601 timestamp without time zone. Only hours are supported (minutes and seconds will be converted to zeros).
attributes[email] Email
attributes[one_time_access] This PIN is only valid for a single entry between starts_at and ends_at. Default is false.

Response


201 Created
{
  "data": {
    "type": "resort_lock_guest",
    "attributes": {
      "name": "Ann Smith",
      "email": "[email protected]",
      "starts_at": "2020-01-02T13:00:00",
      "ends_at": "2021-01-02T16:00:00",
      "one_time_access": false,
      "status": "expired",
      "source": null,
      "guest_source": null,
      "created_at": "2026-03-03T00:13:33Z",
      "updated_at": "2026-03-03T00:13:33Z",
      "pin": "306288627658",
      "resort_lock_id": "38928487-87db-4aad-b5b1-35644a15c028"
    },
    "id": "0a89e017-cbfa-47b4-9797-ffc57db6b602",
    "links": {
      "self": "http://api.remotelock.dev/resort_lock_guests/0a89e017-cbfa-47b4-9797-ffc57db6b602",
      "resort_lock": "http://api.remotelock.dev/devices/38928487-87db-4aad-b5b1-35644a15c028"
    }
  }
}

Update a resort lock guest

Request

Endpoint

PUT /resort_lock_guests/:id

PUT /resort_lock_guests/2c4f51bb-03cd-4580-aef0-b077773c3bb3

Parameters

{
  "attributes": {
    "name": "Jonatan Doery"
  }
}
Name Description
attributes[name] Name
attributes[email] Email

Response


200 OK
{
  "data": {
    "type": "resort_lock_guest",
    "attributes": {
      "name": "Jonatan Doery",
      "email": "[email protected]",
      "starts_at": "2026-03-13T00:00:00",
      "ends_at": "2026-03-17T00:00:00",
      "one_time_access": false,
      "status": "upcoming",
      "source": null,
      "guest_source": null,
      "created_at": "2026-03-03T00:13:35Z",
      "updated_at": "2026-03-03T00:13:35Z",
      "pin": "1234567890",
      "resort_lock_id": "3ad41032-f24b-420f-b4cb-e78359d10251"
    },
    "id": "2c4f51bb-03cd-4580-aef0-b077773c3bb3",
    "links": {
      "self": "http://api.remotelock.dev/resort_lock_guests/2c4f51bb-03cd-4580-aef0-b077773c3bb3",
      "resort_lock": "http://api.remotelock.dev/devices/3ad41032-f24b-420f-b4cb-e78359d10251"
    }
  }
}

Delete a resort lock guest

Request

Endpoint

DELETE /resort_lock_guests/:id

DELETE /resort_lock_guests/6d2450c6-7974-4b59-8c23-7b9a1a3dd869

Parameters

None.

Response


204 No Content

Send access instructions email to resort lock guest

Request

Endpoint

POST /resort_lock_guests/:id/email/notify

POST /resort_lock_guests/3d2bcebf-196b-4651-bf0f-dcb52bb84f62/email/notify

Parameters

None.

Response


200 OK

Preview resort lock guest access instructions email

Request

Endpoint

GET /resort_lock_guests/:id/email/preview

GET /resort_lock_guests/6409f85b-72e7-4b8d-8727-55c131396433/email/preview

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "access_instruction_guest_email_template",
    "attributes": {
      "subject": "Access instructions",
      "body": "<p>Dear Aurel Chiper,</p>\n\n<p>Here is your access code for your upcoming stay with us. Our property is equipped with a keyless entry door lock for your convenience.</p>\n\n<p>Access Code: 123-456-7890</p>\n\n<style>\n  .app-links {\n      margin-top: 16px;\n      margin-bottom: 16px;\n      margin-left: 16px;\n  }\n\n  .app-links img {\n      height: 48px;\n      margin-right: 20px;\n  }\n\n  .app-links a {\n      text-decoration: none;\n  }\n</style>\n\n<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" id=\"access-instructions\" style=\"margin: 2em 0; width: fit-content\">\n  \n    <tr>\n      <td colspan=\"3\" width=\"100%\" align=\"left\" valign=\"top\">\n        <p>\n          Fully-configurable heuristic leverage\n          (851 Tony Heights)\n        </p>\n      </td>\n    </tr>\n\n    \n      <tr>\n        <td width=\"3%\" align=\"left\" valign=\"top\"></td>\n        <td colspan=\"2\" width=\"97%\" align=\"left\" valign=\"top\">\n          <b>RL-4000 - 0DVMMNV10B4FBE01</b>\n          \n        </td>\n      </tr>\n      <tr>\n        <td width=\"3%\" align=\"left\" valign=\"top\"></td>\n        <td width=\"3%\" align=\"left\" valign=\"top\"></td>\n        <td width=\"94%\" align=\"left\" valign=\"top\">\n          \n            \n            <br/>\n            Access times:\n            March 13, 2026 12:00 AM to March 17, 2026 12:00 AM\n            <br/>\n          \n          <p>\n            Access instruction:\n          </p>\n          <p><strong>Lock Instructions:</strong><br>\nThere are two methods to opening the lock on your vacation rental. One is to simply enter the 10 (or 12 if provided) digit Access Code above, followed by the &#39;#&#39; key. The other is to create your own shorter code for use during your stay.</p>\n\n<p>Method 1: Use Default Access Code Enter the following on the lock’s keypad: Access Code, # (Door will unlock)</p>\n\n<p>Method 2: Create Your Own Code (Can be 3 – 5 Digits)<br>\nStep 1: Hold the * key until green light is solid (About 2 seconds), then release.<br>\nStep 2: While green light is lit, enter Access Code, #, Your Own Code, #<br>\nNow you have programmed your own code into the lock. Next step is to unlock the door using the code you just created.<br>\nStep 3: Enter Your Code, # (Door will unlock)</p>\n\n        </td>\n      </tr>\n    \n  \n\n  \n</table>\n\n<p>If you have any questions, please feel free to call us at (Phone not provided) or email at <a href=\"mailto:[email protected]\">[email protected]</a>.</p>\n\n<p>Regards,</p>\n\n<p>Shayne Leuschke</p>\n",
      "from_name": "Shayne Leuschke",
      "reply_to": "[email protected]",
      "cc": null,
      "bcc": null
    },
    "links": {
      "self": "http://api.remotelock.dev/access_instruction_guest_email_template/preview"
    }
  }
}

Schedules

Get all schedule types (homogeneous)

Request

Endpoint

GET /schedules

GET /schedules

Parameters

Name Description
[type] Filter by type(s). Supported types: auto_lock_schedule, lock_action_schedule, access_schedule, power_plug_schedule, and thermostat_schedule
sort Sortable attributes: created_at and name, default: created_at ascending

Response


200 OK
{
  "data": [
    {
      "type": "access_schedule",
      "attributes": {
        "name": "Dolorum at rerum nostrum.",
        "mon": [
          {
            "start_time": "09:00",
            "end_time": "17:00"
          }
        ],
        "tue": [
          {
            "start_time": "09:00",
            "end_time": "17:00"
          }
        ],
        "wed": [
          {
            "start_time": "09:00",
            "end_time": "17:00"
          }
        ],
        "thu": [
          {
            "start_time": "09:00",
            "end_time": "17:00"
          }
        ],
        "fri": [
          {
            "start_time": "09:00",
            "end_time": "15:00"
          }
        ],
        "sat": [
          {
            "start_time": "09:00",
            "end_time": "15:00"
          }
        ],
        "sun": [
          {
            "start_time": "09:00",
            "end_time": "15:00"
          }
        ],
        "created_at": "2026-03-03T00:14:25Z",
        "updated_at": "2026-03-03T00:14:25Z"
      },
      "id": "6c1fea3a-edf1-489e-b4c8-285755b31a8f",
      "links": {
        "self": "http://api.remotelock.dev/schedules/6c1fea3a-edf1-489e-b4c8-285755b31a8f"
      }
    },
    {
      "type": "auto_lock_schedule",
      "attributes": {
        "name": "Officia id quia quo.",
        "mon": [
          {
            "time": "09:00",
            "enable": false
          },
          {
            "time": "17:00",
            "enable": true
          }
        ],
        "tue": [
          {
            "time": "09:00",
            "enable": false
          },
          {
            "time": "17:00",
            "enable": true
          }
        ],
        "wed": [
          {
            "time": "09:00",
            "enable": false
          },
          {
            "time": "17:00",
            "enable": true
          }
        ],
        "thu": [
          {
            "time": "09:00",
            "enable": false
          },
          {
            "time": "17:00",
            "enable": true
          }
        ],
        "fri": [
          {
            "time": "09:00",
            "enable": false
          },
          {
            "time": "15:00",
            "enable": true
          }
        ],
        "sat": [
          {
            "time": "09:00",
            "enable": false
          },
          {
            "time": "15:00",
            "enable": true
          }
        ],
        "sun": [
          {
            "time": "09:00",
            "enable": false
          },
          {
            "time": "15:00",
            "enable": true
          }
        ],
        "created_at": "2026-03-03T00:14:25Z",
        "updated_at": "2026-03-03T00:14:25Z"
      },
      "id": "0c4d2720-05ed-4774-8c65-70e467e27cef",
      "links": {
        "self": "http://api.remotelock.dev/schedules/0c4d2720-05ed-4774-8c65-70e467e27cef"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 25,
    "total_count": 2,
    "total_pages": 1
  }
}

Get a schedule

Request

Endpoint

GET /schedules/:id

GET /schedules/ff460e85-5dff-4157-af22-38d96ae980e0

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "access_schedule",
    "attributes": {
      "name": "Et aut ut sed.",
      "mon": [
        {
          "start_time": "09:00",
          "end_time": "17:00"
        }
      ],
      "tue": [
        {
          "start_time": "09:00",
          "end_time": "17:00"
        }
      ],
      "wed": [
        {
          "start_time": "09:00",
          "end_time": "17:00"
        }
      ],
      "thu": [
        {
          "start_time": "09:00",
          "end_time": "17:00"
        }
      ],
      "fri": [
        {
          "start_time": "09:00",
          "end_time": "15:00"
        }
      ],
      "sat": [
        {
          "start_time": "09:00",
          "end_time": "15:00"
        }
      ],
      "sun": [
        {
          "start_time": "09:00",
          "end_time": "15:00"
        }
      ],
      "created_at": "2026-03-03T00:14:25Z",
      "updated_at": "2026-03-03T00:14:25Z"
    },
    "id": "ff460e85-5dff-4157-af22-38d96ae980e0",
    "links": {
      "self": "http://api.remotelock.dev/schedules/ff460e85-5dff-4157-af22-38d96ae980e0"
    }
  }
}

Update a schedule

Parameters accepted: all used for create

Request

Endpoint

PUT /schedules/:id

PUT /schedules/dec50510-d0ad-4052-a2fc-45a0a1ce7491

Parameters

{
  "attributes": {
    "name": "New schedule name"
  }
}

None.

Response


200 OK
{
  "data": {
    "type": "access_schedule",
    "attributes": {
      "name": "New schedule name",
      "mon": [
        {
          "start_time": "09:00",
          "end_time": "17:00"
        }
      ],
      "tue": [
        {
          "start_time": "09:00",
          "end_time": "17:00"
        }
      ],
      "wed": [
        {
          "start_time": "09:00",
          "end_time": "17:00"
        }
      ],
      "thu": [
        {
          "start_time": "09:00",
          "end_time": "17:00"
        }
      ],
      "fri": [
        {
          "start_time": "09:00",
          "end_time": "15:00"
        }
      ],
      "sat": [
        {
          "start_time": "09:00",
          "end_time": "15:00"
        }
      ],
      "sun": [
        {
          "start_time": "09:00",
          "end_time": "15:00"
        }
      ],
      "created_at": "2026-03-03T00:14:25Z",
      "updated_at": "2026-03-03T00:14:25Z"
    },
    "id": "dec50510-d0ad-4052-a2fc-45a0a1ce7491",
    "links": {
      "self": "http://api.remotelock.dev/schedules/dec50510-d0ad-4052-a2fc-45a0a1ce7491"
    }
  }
}

Delete a schedule

Request

Endpoint

DELETE /schedules/:id

DELETE /schedules/ce57e1e4-8d6c-429f-9c2c-9e512d750c61

Parameters

None.

Response


204 No Content

Create an access schedule

Request

Endpoint

POST /schedules

POST /schedules

Parameters

{
  "type": "access_schedule",
  "attributes": {
    "name": "Work access schedule",
    "mon": [
      {
        "start_time": "08:00",
        "end_time": "12:00"
      },
      {
        "start_time": "13:00",
        "end_time": "18:00"
      }
    ],
    "wed": [
      {
        "start_time": "08:00",
        "end_time": "12:00"
      },
      {
        "start_time": "13:00",
        "end_time": "18:00"
      }
    ],
    "fri": [
      {
        "start_time": "08:00",
        "end_time": "12:00"
      },
      {
        "start_time": "13:00",
        "end_time": "18:00"
      }
    ],
    "access_exception_id": "ac80cb15-cab9-4131-89e3-675d9372b6f2"
  }
}
Name Description
type required access_schedule
attributes[name] required Schedule name
attributes[mon] [{ "start_time": "08:00", "end_time": "12:00" }, ...] or []
attributes[tue] [{ "start_time": "08:00", "end_time": "12:00" }, ...] or []
attributes[wed] [{ "start_time": "08:00", "end_time": "12:00" }, ...] or []
attributes[thu] [{ "start_time": "08:00", "end_time": "12:00" }, ...] or []
attributes[fri] [{ "start_time": "08:00", "end_time": "12:00" }, ...] or []
attributes[sat] [{ "start_time": "08:00", "end_time": "12:00" }, ...] or []
attributes[sun] [{ "start_time": "08:00", "end_time": "12:00" }, ...] or []
attributes[access_exception_id] Access Exception

Response


201 Created
{
  "data": {
    "type": "access_schedule",
    "attributes": {
      "name": "Work access schedule",
      "mon": [
        {
          "start_time": "08:00",
          "end_time": "12:00"
        },
        {
          "start_time": "13:00",
          "end_time": "18:00"
        }
      ],
      "tue": [

      ],
      "wed": [
        {
          "start_time": "08:00",
          "end_time": "12:00"
        },
        {
          "start_time": "13:00",
          "end_time": "18:00"
        }
      ],
      "thu": [

      ],
      "fri": [
        {
          "start_time": "08:00",
          "end_time": "12:00"
        },
        {
          "start_time": "13:00",
          "end_time": "18:00"
        }
      ],
      "sat": [

      ],
      "sun": [

      ],
      "created_at": "2026-03-03T00:14:26Z",
      "updated_at": "2026-03-03T00:14:26Z",
      "access_exception_id": "ac80cb15-cab9-4131-89e3-675d9372b6f2"
    },
    "id": "8fb4e895-d2d1-491a-a419-56150f61ac07",
    "links": {
      "self": "http://api.remotelock.dev/schedules/8fb4e895-d2d1-491a-a419-56150f61ac07",
      "access_exception": "http://api.remotelock.dev/access_exceptions/ac80cb15-cab9-4131-89e3-675d9372b6f2"
    }
  }
}

Create an auto lock schedule

Request

Endpoint

POST /schedules

POST /schedules

Parameters

{
  "type": "auto_lock_schedule",
  "attributes": {
    "name": "Switch auto-lock mode in working period",
    "mon": [
      {
        "time": "08:00",
        "enable": false
      },
      {
        "time": "18:00",
        "enable": true
      }
    ],
    "wed": [
      {
        "time": "08:00",
        "enable": false
      },
      {
        "time": "18:00",
        "enable": true
      }
    ],
    "fri": [
      {
        "time": "08:00",
        "enable": false
      },
      {
        "time": "18:00",
        "enable": true
      }
    ]
  }
}
Name Description
type required auto_lock_schedule
attributes[name] required Schedule name
attributes[mon] [{ "time": "08:00", enable: false }, { "time": "18:00", enable: true }, ...] or []
attributes[tue] [{ "time": "08:00", enable: false }, { "time": "18:00", enable: true }, ...] or []
attributes[wed] [{ "time": "08:00", enable: false }, { "time": "18:00", enable: true }, ...] or []
attributes[thu] [{ "time": "08:00", enable: false }, { "time": "18:00", enable: true }, ...] or []
attributes[fri] [{ "time": "08:00", enable: false }, { "time": "18:00", enable: true }, ...] or []
attributes[sat] [{ "time": "08:00", enable: false }, { "time": "18:00", enable: true }, ...] or []
attributes[sun] [{ "time": "08:00", enable: false }, { "time": "18:00", enable: true }, ...] or []

Response


201 Created
{
  "data": {
    "type": "auto_lock_schedule",
    "attributes": {
      "name": "Switch auto-lock mode in working period",
      "mon": [
        {
          "time": "08:00",
          "enable": false
        },
        {
          "time": "18:00",
          "enable": true
        }
      ],
      "tue": [

      ],
      "wed": [
        {
          "time": "08:00",
          "enable": false
        },
        {
          "time": "18:00",
          "enable": true
        }
      ],
      "thu": [

      ],
      "fri": [
        {
          "time": "08:00",
          "enable": false
        },
        {
          "time": "18:00",
          "enable": true
        }
      ],
      "sat": [

      ],
      "sun": [

      ],
      "created_at": "2026-03-03T00:14:26Z",
      "updated_at": "2026-03-03T00:14:26Z"
    },
    "id": "3e970209-7751-4f2f-8537-c69a4d4e559c",
    "links": {
      "self": "http://api.remotelock.dev/schedules/3e970209-7751-4f2f-8537-c69a4d4e559c"
    }
  }
}

Create a lock action schedule

Request

Endpoint

POST /schedules

POST /schedules

Parameters

{
  "type": "lock_action_schedule",
  "attributes": {
    "name": "Automatically unlock and lock",
    "mon": [
      {
        "time": "08:00",
        "action": "unlock"
      },
      {
        "time": "18:00",
        "action": "lock"
      }
    ],
    "wed": [
      {
        "time": "08:00",
        "action": "unlock"
      },
      {
        "time": "18:00",
        "action": "lock"
      }
    ],
    "fri": [
      {
        "time": "08:00",
        "action": "unlock"
      },
      {
        "time": "18:00",
        "action": "lock"
      }
    ]
  }
}
Name Description
type required lock_action_schedule
attributes[name] required Schedule name
attributes[mon] [{ "time": "08:00", action: "unlock" }, { "time": "18:00", action: "lock" }, ...] or []
attributes[tue] [{ "time": "08:00", action: "unlock" }, { "time": "18:00", action: "lock" }, ...] or []
attributes[wed] [{ "time": "08:00", action: "unlock" }, { "time": "18:00", action: "lock" }, ...] or []
attributes[thu] [{ "time": "08:00", action: "unlock" }, { "time": "18:00", action: "lock" }, ...] or []
attributes[fri] [{ "time": "08:00", action: "unlock" }, { "time": "18:00", action: "lock" }, ...] or []
attributes[sat] [{ "time": "08:00", action: "unlock" }, { "time": "18:00", action: "lock" }, ...] or []
attributes[sun] [{ "time": "08:00", action: "unlock" }, { "time": "18:00", action: "lock" }, ...] or []

Response


201 Created
{
  "data": {
    "type": "lock_action_schedule",
    "attributes": {
      "name": "Automatically unlock and lock",
      "mon": [
        {
          "time": "08:00",
          "action": "unlock"
        },
        {
          "time": "18:00",
          "action": "lock"
        }
      ],
      "tue": [

      ],
      "wed": [
        {
          "time": "08:00",
          "action": "unlock"
        },
        {
          "time": "18:00",
          "action": "lock"
        }
      ],
      "thu": [

      ],
      "fri": [
        {
          "time": "08:00",
          "action": "unlock"
        },
        {
          "time": "18:00",
          "action": "lock"
        }
      ],
      "sat": [

      ],
      "sun": [

      ],
      "created_at": "2026-03-03T00:14:27Z",
      "updated_at": "2026-03-03T00:14:27Z"
    },
    "id": "f9bc0c66-e7c7-4016-b6e5-c81207eace31",
    "links": {
      "self": "http://api.remotelock.dev/schedules/f9bc0c66-e7c7-4016-b6e5-c81207eace31"
    }
  }
}

Create a power plug schedule

Request

Endpoint

POST /schedules

POST /schedules

Parameters

{
  "type": "power_plug_schedule",
  "attributes": {
    "name": "Automatically turn on and off",
    "mon": [
      {
        "time": "08:00",
        "action": "on"
      },
      {
        "time": "18:00",
        "action": "off"
      }
    ],
    "wed": [
      {
        "time": "08:00",
        "action": "on"
      },
      {
        "time": "18:00",
        "action": "off"
      }
    ],
    "fri": [
      {
        "time": "08:00",
        "action": "on"
      },
      {
        "time": "18:00",
        "action": "off"
      }
    ]
  }
}
Name Description
type required power_plug_schedule
attributes[name] required Schedule name
attributes[mon] [{ "time": "08:00", action: "on" }, { "time": "18:00", action: "off" }, ...] or []
attributes[tue] [{ "time": "08:00", action: "on" }, { "time": "18:00", action: "off" }, ...] or []
attributes[wed] [{ "time": "08:00", action: "on" }, { "time": "18:00", action: "off" }, ...] or []
attributes[thu] [{ "time": "08:00", action: "on" }, { "time": "18:00", action: "off" }, ...] or []
attributes[fri] [{ "time": "08:00", action: "on" }, { "time": "18:00", action: "off" }, ...] or []
attributes[sat] [{ "time": "08:00", action: "on" }, { "time": "18:00", action: "off" }, ...] or []
attributes[sun] [{ "time": "08:00", action: "on" }, { "time": "18:00", action: "off" }, ...] or []

Response


201 Created
{
  "data": {
    "type": "power_plug_schedule",
    "attributes": {
      "name": "Automatically turn on and off",
      "mon": [
        {
          "time": "08:00",
          "action": "on"
        },
        {
          "time": "18:00",
          "action": "off"
        }
      ],
      "tue": [

      ],
      "wed": [
        {
          "time": "08:00",
          "action": "on"
        },
        {
          "time": "18:00",
          "action": "off"
        }
      ],
      "thu": [

      ],
      "fri": [
        {
          "time": "08:00",
          "action": "on"
        },
        {
          "time": "18:00",
          "action": "off"
        }
      ],
      "sat": [

      ],
      "sun": [

      ],
      "created_at": "2026-03-03T00:14:27Z",
      "updated_at": "2026-03-03T00:14:27Z"
    },
    "id": "9378b963-c5ff-437d-aa9f-f7e48d5af617",
    "links": {
      "self": "http://api.remotelock.dev/schedules/9378b963-c5ff-437d-aa9f-f7e48d5af617"
    }
  }
}

Create a thermostat schedule

Request

Endpoint

POST /schedules

POST /schedules

Parameters

{
  "type": "thermostat_schedule",
  "attributes": {
    "name": "Changes thermostat cool/heat temperatures",
    "mon": [
      {
        "time": "08:00",
        "cool": 60,
        "heat": 70
      },
      {
        "time": "18:00",
        "cool": 40,
        "heat": 80
      }
    ],
    "tue": [
      {
        "time": "08:00",
        "cool": 60,
        "heat": 70
      },
      {
        "time": "18:00",
        "cool": 40,
        "heat": 80
      }
    ],
    "wed": [
      {
        "time": "08:00",
        "cool": 60,
        "heat": 70
      },
      {
        "time": "18:00",
        "cool": 40,
        "heat": 80
      }
    ],
    "thu": [
      {
        "time": "08:00",
        "cool": 60,
        "heat": 70
      },
      {
        "time": "18:00",
        "cool": 40,
        "heat": 80
      }
    ],
    "fri": [
      {
        "time": "08:00",
        "cool": 60,
        "heat": 70
      },
      {
        "time": "18:00",
        "cool": 40,
        "heat": 80
      }
    ],
    "sat": [
      {
        "time": "08:00",
        "cool": 60,
        "heat": 70
      },
      {
        "time": "18:00",
        "cool": 40,
        "heat": 80
      }
    ],
    "sun": [
      {
        "time": "08:00",
        "cool": 60,
        "heat": 70
      },
      {
        "time": "18:00",
        "cool": 40,
        "heat": 80
      }
    ]
  }
}
Name Description
type required thermostat_schedule
attributes[name] required Schedule name
attributes[mon] [{ "time": "08:00", "cool": 40, "heat": 80 }, ...]
attributes[tue] [{ "time": "08:00", "cool": 40, "heat": 80 }, ...]
attributes[wed] [{ "time": "08:00", "cool": 40, "heat": 80 }, ...]
attributes[thu] [{ "time": "08:00", "cool": 40, "heat": 80 }, ...]
attributes[fri] [{ "time": "08:00", "cool": 40, "heat": 80 }, ...]
attributes[sat] [{ "time": "08:00", "cool": 40, "heat": 80 }, ...]
attributes[sun] [{ "time": "08:00", "cool": 40, "heat": 80 }, ...]

Response


201 Created
{
  "data": {
    "type": "thermostat_schedule",
    "attributes": {
      "name": "Changes thermostat cool/heat temperatures",
      "mon": [
        {
          "time": "08:00",
          "cool": 60,
          "heat": 70
        },
        {
          "time": "18:00",
          "cool": 40,
          "heat": 80
        }
      ],
      "tue": [
        {
          "time": "08:00",
          "cool": 60,
          "heat": 70
        },
        {
          "time": "18:00",
          "cool": 40,
          "heat": 80
        }
      ],
      "wed": [
        {
          "time": "08:00",
          "cool": 60,
          "heat": 70
        },
        {
          "time": "18:00",
          "cool": 40,
          "heat": 80
        }
      ],
      "thu": [
        {
          "time": "08:00",
          "cool": 60,
          "heat": 70
        },
        {
          "time": "18:00",
          "cool": 40,
          "heat": 80
        }
      ],
      "fri": [
        {
          "time": "08:00",
          "cool": 60,
          "heat": 70
        },
        {
          "time": "18:00",
          "cool": 40,
          "heat": 80
        }
      ],
      "sat": [
        {
          "time": "08:00",
          "cool": 60,
          "heat": 70
        },
        {
          "time": "18:00",
          "cool": 40,
          "heat": 80
        }
      ],
      "sun": [
        {
          "time": "08:00",
          "cool": 60,
          "heat": 70
        },
        {
          "time": "18:00",
          "cool": 40,
          "heat": 80
        }
      ],
      "created_at": "2026-03-03T00:14:28Z",
      "updated_at": "2026-03-03T00:14:28Z"
    },
    "id": "9a6b5ec4-1767-4f7d-8104-27c63c84c22f",
    "links": {
      "self": "http://api.remotelock.dev/schedules/9a6b5ec4-1767-4f7d-8104-27c63c84c22f"
    }
  }
}

Users

Get signed in user

Request

Endpoint

GET /user

GET /user

Parameters

None.

Response


200 OK
{
  "data": {
    "type": "user",
    "attributes": {
      "name": "Antonina Sawayn",
      "email": "[email protected]",
      "handle": "august",
      "created_at": "2026-03-03T00:14:13Z",
      "updated_at": "2026-03-03T00:14:13Z",
      "primary_account_id": "bd5a9370-b29d-4300-b8b4-4a2bb022c904",
      "default_account_id": "bd5a9370-b29d-4300-b8b4-4a2bb022c904"
    },
    "id": "1ab20f80-b81e-4b48-88f8-b174efd213ff",
    "links": {
      "self": "http://api.remotelock.dev/user",
      "primary_account": "http://api.remotelock.dev/account",
      "default_account": "http://api.remotelock.dev/account"
    }
  }
}