Allegion Devices API

ENGAGE hardware discovery and commissioning (Allegion Device Communication SDK)

Operations 5

GET /devices List ENGAGE Devices #
GET /devices/{deviceId} Get Device #
PUT /devices/{deviceId} Update Device #
POST /devices/{deviceId}/lock Lock Device #
POST /devices/{deviceId}/unlock Unlock Device #

Documentation

Specifications

Schemas & Data

Other Resources

🔗
Blog
https://developer.allegion.com/en/products/schlage-home/schlage-home-api-blog.html
🔗
Webhooks
https://developer.allegion.com/en/products/schlage-home/best-practices.html
🔗
ReleaseNotes
https://developer.allegion.com/en/release-notes.html
🔗
SpectralRules
https://raw.githubusercontent.com/api-evangelist/allegion/refs/heads/main/rules/schlage-home-rules.yml
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/allegion/refs/heads/main/examples/schlage-home-list-devices-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/allegion/refs/heads/main/examples/schlage-home-create-access-code-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/allegion/refs/heads/main/examples/schlage-home-webhook-subscription-example.json
🔗
Tutorials
https://developer.allegion.com/en/products/schlage-mobile-credentials/how-to-integrate-schlage-ble-mobile-credentials-with-an-access-control-system.html
🔗
SDKs
https://developer.allegion.com/en/products/schlage-mobile-credentials/mobile-sdk.html
🔗
SDKs
https://developer.allegion.com/en/products/schlage-mobile-credentials/how-to-integrate-schlage-ble-mobile-credentials-with-an-access-control-system.html
🔗
TermsOfService
https://developer.allegion.com/en/products/schlage-mobile-credentials/how-to-integrate-schlage-ble-mobile-credentials-with-an-access-control-system.html
🔗
SpectralRules
https://raw.githubusercontent.com/api-evangelist/allegion/refs/heads/main/rules/engage-credentialing-rules.yml
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/allegion/refs/heads/main/examples/engage-upload-credential-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/allegion/refs/heads/main/examples/engage-list-credentials-example.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/allegion-devices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

allegion-devices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Allegion Devices API
  contact:
    name: Allegion Developer Support
    url: https://developersupport.allegion.com/hc/en-us
  version: '1.0'
  description: 'Operations tagged Devices across 2 of this provider''s published API definitions: engage-credentialing-openapi.yml, schlage-home-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.allegion.com/engage
  description: Production
- url: https://api.allegion.com/schlage-home
  description: Production
- url: https://api.allegion.com/schlage-home/v2
  description: Production (v2 path prefix)
tags:
- name: Devices
  description: ENGAGE hardware discovery and commissioning (Allegion Device Communication SDK)
paths:
  /devices:
    get:
      tags:
      - Devices
      summary: List ENGAGE Devices
      description: List ENGAGE hardware enrolled in the integrator's tenant. Surfaces the inputs the Allegion Device Communication SDK uses for commissioning.
      operationId: listEngageDevices
      responses:
        '200':
          description: Devices returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  devices:
                    type: array
                    items:
                      $ref: '#/components/schemas/EngageDevice'
      security:
      - SubscriptionKey: []
        BasicAuth: []
    servers:
    - url: https://api.allegion.com/engage
      description: Production
  /devices/{deviceId}:
    get:
      tags:
      - Devices
      summary: Get Device
      description: Returns a single device including lock state, battery level, WiFi signal strength, firmware, and connectivity state.
      operationId: getDevice
      parameters:
      - $ref: '#/components/parameters/DeviceId'
      responses:
        '200':
          description: Device returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2: []
    put:
      tags:
      - Devices
      summary: Update Device
      description: Update device configuration (name, default lock timer, vacation mode). Returns 202 ACCEPTED and emits a command that completes asynchronously.
      operationId: updateDevice
      parameters:
      - $ref: '#/components/parameters/DeviceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceUpdate'
      responses:
        '202':
          $ref: '#/components/responses/CommandAccepted'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2: []
    servers:
    - url: https://api.allegion.com/schlage-home
      description: Production
    - url: https://api.allegion.com/schlage-home/v2
      description: Production (v2 path prefix)
  /devices/{deviceId}/lock:
    post:
      tags:
      - Devices
      summary: Lock Device
      description: Issue an asynchronous lock command. Returns 202 ACCEPTED with a command id; final state surfaces via webhook.
      operationId: lockDevice
      parameters:
      - $ref: '#/components/parameters/DeviceId'
      responses:
        '202':
          $ref: '#/components/responses/CommandAccepted'
      security:
      - OAuth2: []
    servers:
    - url: https://api.allegion.com/schlage-home
      description: Production
    - url: https://api.allegion.com/schlage-home/v2
      description: Production (v2 path prefix)
  /devices/{deviceId}/unlock:
    post:
      tags:
      - Devices
      summary: Unlock Device
      description: Issue an asynchronous unlock command. Returns 202 ACCEPTED with a command id; final state surfaces via webhook.
      operationId: unlockDevice
      parameters:
      - $ref: '#/components/parameters/DeviceId'
      responses:
        '202':
          $ref: '#/components/responses/CommandAccepted'
      security:
      - OAuth2: []
    servers:
    - url: https://api.allegion.com/schlage-home
      description: Production
    - url: https://api.allegion.com/schlage-home/v2
      description: Production (v2 path prefix)
components:
  schemas:
    EngageDevice:
      type: object
      properties:
        deviceId:
          type: string
        name:
          type: string
        model:
          type: string
          enum:
          - BE467B
          - FE410B
          - NDEB
          - LEBMS
          - LEBMD
          - MTKB
          - XE360
          - CTE
          - VonDuprinRU
          - VonDuprinRM
        firmwareVersion:
          type: string
        siteId:
          type: string
    Device:
      type: object
      properties:
        deviceId:
          type: string
        name:
          type: string
        model:
          type: string
          enum:
          - BE489WB
          - BE499WB
          - FE789WB
          description: Schlage Encode Deadbolt, Encode Plus, or Encode Lever
        firmwareVersion:
          type: string
        batteryLevel:
          type: integer
          minimum: 0
          maximum: 100
        wifiSignalStrength:
          type: integer
          description: WiFi RSSI in dBm (added March 6, 2025).
        connectivityState:
          type: string
          enum:
          - Online
          - Offline
        lockState:
          type: string
          enum:
          - Locked
          - Unlocked
          - Unknown
        timeZone:
          type: string
    Command:
      type: object
      properties:
        commandId:
          type: string
        deviceId:
          type: string
        type:
          type: string
          enum:
          - Lock
          - Unlock
          - UpdateDevice
          - CreateAccessCode
          - UpdateAccessCode
          - DeleteAccessCode
        status:
          type: string
          enum:
          - Pending
          - InProgress
          - Completed
          - Failed
        errorMessage:
          type: string
          description: Populated when status is Failed (improved March 6, 2025).
        createdAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
    DeviceUpdate:
      type: object
      properties:
        name:
          type: string
        autoLockDelaySeconds:
          type: integer
        vacationMode:
          type: boolean
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: string
  parameters:
    DeviceId:
      in: path
      name: deviceId
      required: true
      schema:
        type: string
      description: Unique identifier for a Schlage Home device.
  responses:
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Access token missing, expired, or insufficient scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    CommandAccepted:
      description: 'Asynchronous command accepted. The response includes a commandId that can

        be polled at GET /devices/{deviceId}/commands/{commandId} or watched for

        via the corresponding command-status webhook event.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Command'
  securitySchemes:
    SubscriptionKey:
      type: apiKey
      in: header
      name: alle-subscription-key
      description: Azure API Management subscription key issued via the Allegion Developer Portal.
    BasicAuth:
      type: http
      scheme: basic
      description: Basic Auth token generated from ENGAGE credentials.
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://account.schlage.com/OAuth2/authorize
          tokenUrl: https://account.schlage.com/OAuth2/token
          scopes:
            devices.read: Read device state, battery, connectivity, and firmware
            devices.write: Issue lock, unlock, and configuration commands
            access_codes.read: Read access codes stored on devices
            access_codes.write: Create, update, and delete access codes
            webhooks.manage: Create, list, and delete webhook subscriptions
x-refined-from:
- engage-credentialing-openapi.yml
- schlage-home-openapi.yml