Release Notes

Welcome to the Schlage Home - API developer portal. Here we will provide updates for new features released to the Schlage Home API.

    September 4th, 2024
    Schlage Home API Feature: "Version" field added to webhooks
    • All events will now display a new "version" field to indicate which Schlage Home version the webhook comes from. Please review the updated Schlage API documentation for more details.

              {
              "method": "POST",
                "body": {
                  "eventId": "string",
                  "trigger": "string",
                  "deviceId": "string",
                  "time": "timestamp",
                  "eventType": "string",
                  "data": {
                    "lockState": "string",
                    "accessor": {
                      "id": null,
                      "accessType": "string"
                    }
                  },
                  "version": "1.0/2.0"
                }
              }
          

    August 15th, 2024
    Schlage Home API v2 Feature: Added more details to GET Command endpoint
    • Added more details on the GET Command endpoint including: AccessCodeId and friendlyName, Lock state (for Lock and Unlock commands), Error with statusCode, errorCode and message (if exists). For reference:

              {
                {
                  "commandId": "string",
                  "deviceId": "string",
                  "state": "Successful/Pending/Failed",
                  "name": "AddAccessCode/UpdateAccessCode",
                  "data": {
                      "accessCodeId": null (if failed) OR "string",
                      "friendlyName": "string",
                      "error": null (if successful) OR {
                        "statusCode": integer,
                        "errorCode": integer,
                        "errorMessage": "string"
                      }
                  }
              }
            }
          

          {
            {
              "commandId": "string",
              "deviceId": "string",
              "state": "Successful/Pending/Failed",
              "name": "DeleteAccessCode",
              "data": {
                  "accessCodeId": null (if successful or Pending) OR "string",
                  "friendlyName": null (if successful or Pending) OR "string",
                  "error": null (if successful or Pending) OR {
                    "statusCode": integer,
                    "errorCode": integer,
                    "errorMessage": "string"
                  }
              }
            }
          }
        

      {
        {
          "commandId": "string",
          "deviceId": "string",
          "state": "Successful/Pending/Failed",
          "name": "DeleteAllAccessCodes",
          "data": {
              "deviceId": "string",
              "error": null (if successful or Pending) OR {
                "statusCode": integer,
                "errorCode": integer,
                "errorMessage": "string"
              }
          }
        }
      }  
        

            {
              {
                "commandId": "string",
                "deviceId": "string",
                "state": "Successful/Pending/Failed",
                "name": "ChangeLockState",
                "data": {
                    "lockState": "Locked/Unlocked/Unknown",
                    "error": null (if Successful or Pending) OR {
                            "statusCode": "integer", 
                            "errorCode": "integer",
                            "errorMesage": "string"
                          }
                }
            }
          }
        
    Schlage Home API v2 Feature: User's access role added to Get Device List webhook
    • When a user calls the GET Device List endpoint, they can now see which role they have for a device. See more in the API documentation.

                [{
                  "role": "string",
                  "id": "string",
                  "name": "string",
                  "type": "string",
                  "lockState": 0,
                  "batteryState": 0,
                  "modelName": "string",
                  "serialNumber": "string",
                  "percentageBatteryLevel": 0,
                  "connected": true,
                  "lastConnectedToCloud": "string",
                  "lastUpdated": "string",
                  "created": "string",
                  "timezoneOffset": "string",
                  "firmwareVersion": "string",
                  "features": {
                      "vlac": true,
                      "activityAlarm": true
                  }
              }]
            

    July 23rd, 2024
    Schlage Home API v2 Feature: "friendlyName" of accessor added to Webhooks
    • When a user locks or unlocks their device, they can now see the accessor's friendly name in the webhooks for better readability. For reference:

              {
                {
                  "method": "POST",
                  "body": {
                    "eventId": "string",
                    "trigger": "DeviceLockStateChanged",
                    "deviceId": "string",
                    "time": "string",
                    "eventType": "DeviceUpdate",
                    "data": {
                      "lockState": "Locked",
                      "accessor": {
                        "id": "string",
                        "friendlyName": "testName",
                        "accessType": "VirtualKey"
                      }
                    }
                  }
              }
            }
          

    May 8th, 2024
    Schlage Home API v2 Event Schema Update: Lock/unlock accessor
    • When a user subscribes to the event notifications, they can now see which accessor has locked or unlocked the device. These accessors include: "AccessCode", "VirtualKey", "AutoRelock", "Thumbturn", and "1TouchLocking". For more information, check out the Schlage Home API v2 Event Schema

    April 29th, 2024
    Schlage Home API v2 Feature: Webhook Signatures
    • Using RSA keypairs, integration partners can now verify the authenticity of requests. For more information, check out the repo
    April 11th, 2024
    Bugfix: Access Code Deletion Sync
    • When access codes would get out of sync, users would not be able to delete access code either from the device or cloud. By using the Access Code ID, you can now successfully Delete access codes no longer being used. For reference - Schlage Home - API

    March 1st, 2024
    New Webhook Notification for when users unlink via "Sign Out Everywhere
    • For improved visibility, integrations will be able to receive a webhook notification whenever their users toggle the "Sign Out Everywhere" option within their Reset password screen.

    Jan 31st, 2024
    ASCII Character Support and 24 character limit extension for Access Code Names
    • Access Codes originally had a limit of 12 characters, you can now add up to 24 ASCII characters as listed in this ASCII table.
    Jan 29th, 2024
    Exposing Timezone Offsets in the Access Code webhooks
    • The AccessCodeManagement webhook now exposes the timezone offset field. For reference:

                {
                  "id": "string",
                  "subject": "string",
                  "data": {
                    "identifier": null,
                    "deviceId": "string",
                    "deviceName": "string",
                    "clientName": null,
                    "eventTypeId": 0,
                    "eventType": "AccessCodeCreate",
                    "accessCode": {
                      "id": "string",
                      "name": "string",
                      "accessCode": "integer",
                      "scheduleType": "Always",
                      "activeSchedules": []
                    },
                    "timezoneOffset": "-06:00",
                    "time": "20240212T20:00"
                  },
                  "eventType": "AccessCodeManagement",
                  "dataVersion": "1.0",
                  "metadataVersion": "1",
                  "eventTime": "string",
                  "topic": "string"
                }