ReadonlydefaultsReadonlyltsStaticltsCreates new access codes that share a common code across multiple devices.
Users with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.
If you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a common_code_key. That is, common_code_key remains null for these access codes.
If you want to change these access codes that are not linked by a common_code_key, you cannot use /access_codes/update_multiple. However, you can update each of these access codes individually, using /access_codes/update.
See also Creating and Updating Multiple Linked Access Codes.
For granting a person access to a space, Access Grants are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.
Deletes an access code.
Generates a code for an access code, given a device ID.
Returns a specified access code.
You must specify either access_code_id or both device_id and code.
Returns a list of all access codes.
Specify device_id, access_code_ids, access_method_id, access_grant_id, or access_grant_key.
Retrieves a backup access code for an access code. See also Managing Backup Access Codes.
A backup access code pool is a collection of pre-programmed access codes stored on a device, ready for use. These codes are programmed in addition to the regular access codes on Seam, serving as a safety net for any issues with the primary codes. If there's ever a complication with a primary access code—be it due to intermittent connectivity, manual removal from a device, or provider outages—a backup code can be retrieved. Its end time can then be adjusted to align with the original code, facilitating seamless and uninterrupted access.
You can pull a backup access code from the pool at any time. These backup codes are guaranteed to work immediately and automatically programmed to be removed from the device after the access code ends.
You can only pull backup access codes for time-bound access codes.
Before pulling a backup access code, make sure that the device's properties.supports_backup_access_code_pool is true. Then, to activate the backup pool, set use_backup_access_code_pool to true when creating an access code.
Enables you to report access code-related constraints for a device. Currently, supports reporting supported code length constraints for SmartThings devices.
Specify either supported_code_lengths or min_code_length/max_code_length.
Simulates the creation of an unmanaged access code in a sandbox workspace.
Converts an unmanaged access code to an access code managed through Seam.
An unmanaged access code has a limited set of operations that you can perform on it. Once you convert an unmanaged access code to a managed access code, the full set of access code operations and lifecycle events becomes available for it.
Note that not all device providers support converting an unmanaged access code to a managed access code.
Deletes an unmanaged access code.
Returns a specified unmanaged access code.
You must specify either access_code_id or both device_id and code.
Returns a list of all unmanaged access codes.
Updates a specified unmanaged access code.
Updates a specified active or upcoming access code.
See also Modifying Access Codes.
Updates access codes that share a common code across multiple devices.
Specify the common_code_key to identify the set of access codes that you want to update.
See also Update Linked Access Codes.
Creates a new Access Grant. Access Grants are the default and recommended way to grant a user access to any physical space, irrespective of the locking hardware. They work with both standalone smart locks (using device_ids) and access control systems (using acs_entrance_ids or space_ids), and can issue PIN codes, key cards, and mobile keys through a single request.
Delete an Access Grant.
Get an Access Grant.
Gets all related resources for one or more Access Grants.
Gets an Access Grant.
Adds additional requested access methods to an existing Access Grant.
Get an unmanaged Access Grant (where is_managed = false).
Gets unmanaged Access Grants (where is_managed = false).
Updates an unmanaged Access Grant to make it managed.
This endpoint can only be used to convert unmanaged access grants to managed ones by setting is_managed to true. It cannot be used to convert managed access grants back to unmanaged.
When converting an unmanaged access grant to managed, all associated access methods will also be converted to managed.
Updates an existing Access Grant's time window.
Assigns a pre-registered card credential, identified by card_number, to a card-mode access method. Use this endpoint for access systems that use pre-registered cards, where a physical card must be associated with an access method before it can be used for access. Assigning a card credential also triggers issuance of the access method.
Deletes an access method.
Encodes an existing access method onto a plastic card placed on the specified encoder.
Gets an access method.
Gets all related resources for one or more Access Methods.
Lists all access methods, usually filtered by Access Grant.
Remotely unlocks a specified entrance using the cloud key credential associated with an access method. Returns an action attempt that tracks the progress of the unlock operation.
Gets an unmanaged access method (where is_managed = false).
Lists all unmanaged access methods (where is_managed = false), usually filtered by Access Grant.
Adds a specified access system user to a specified access group.
Deletes a specified access group.
Returns a specified access group.
Returns a list of all access groups.
Returns a list of all accessible entrances for a specified access group.
Returns a list of all access system users in an access group.
Removes a specified access system user from a specified access group.
Assigns a specified credential to a specified access system user.
Creates a new credential for a specified ACS user. For granting access, we recommend Access Grants instead: they create and manage the underlying credentials for you, across access systems and standalone smart locks alike. Use this low-level endpoint only when you need direct control over an individual ACS credential.
Deletes a specified credential.
Returns a specified credential.
Returns a list of all credentials.
Returns a list of all entrances to which a credential grants access.
Unassigns a specified credential from a specified access system user.
Updates the code and ends at date and time for a specified credential.
Encodes an existing credential onto a plastic card placed on the specified encoder. Either provide an acs_credential_id or an access_method_id
Returns a specified encoder.
Returns a list of all encoders.
Scans an encoded acs_credential from a plastic card placed on the specified encoder.
Scans a physical card placed on the specified encoder and assigns the scanned credential to an ACS user. Provide either an acs_user_id or a user_identity_id.
Simulates that the next attempt to encode a credential using the specified encoder will fail. You can only perform this action within a sandbox workspace.
Simulates that the next attempt to encode a credential using the specified encoder will succeed. You can only perform this action within a sandbox workspace.
Simulates that the next attempt to scan a credential using the specified encoder will fail. You can only perform this action within a sandbox workspace.
Simulates that the next attempt to scan a credential using the specified encoder will succeed. You can only perform this action within a sandbox workspace.
Returns a specified access system entrance.
Grants a specified access system user access to a specified access system entrance.
Returns a list of all access system entrances.
Returns a list of all credentials with access to a specified entrance.
Remotely unlocks a specified entrance using a cloud_key credential. Returns an action attempt that tracks the progress of the unlock operation.
Returns a specified access system.
Returns a list of all access systems.
To filter the list of returned access systems by a specific connected account ID, include the connected_account_id in the request body. If you omit the connected_account_id parameter, the response includes all access systems connected to your workspace.
Returns a list of all credential manager systems that are compatible with a specified access system.
Specify the access system for which you want to retrieve all compatible credential manager systems by including the corresponding acs_system_id in the request body.
Reports ACS system device status including encoders and entrances.
Adds a specified access system user to a specified access group.
Creates a new access system user.
Deletes a specified access system user and invalidates the access system user's credentials.
Returns a specified access system user.
Returns a list of all access system users.
Lists the entrances to which a specified access system user has access.
Removes a specified access system user from a specified access group.
Revokes access to all entrances for a specified access system user.
Suspends a specified access system user. Suspending an access system user revokes their access temporarily. To restore an access system user's access, you can unsuspend them.
Unsuspends a specified suspended access system user. While suspending an access system user revokes their access temporarily, unsuspending the access system user restores their access.
Updates the properties of a specified access system user.
Returns a specified action attempt.
Returns a list of the action attempts that you specify as an array of action_attempt_ids.
Creates a new client session.
Deletes a client session.
Returns a specified client session.
Returns a client session with specific characteristics or creates a new client session with these characteristics if it does not yet exist.
Grants a client session access to one or more resources, such as Connect Webviews, user identities, and so on.
Returns a list of all client sessions.
Revokes a client session.
Note that deleting a client session is a separate action.
Creates a new Connect Webview.
To enable a user to connect their devices or systems to Seam, they must sign in to their device or system account. To enable a user to sign in, you create a connect_webview. After creating the Connect Webview, you receive a URL that you can use to display the visual component of this Connect Webview for your user. You can open an iframe or new window to display the Connect Webview.
You should make a new connect_webview for each unique login request. Each connect_webview tracks the user that signed in with it. You receive an error if you reuse a Connect Webview for the same user twice or if you use the same Connect Webview for multiple users.
See also: Connect Webview Process.
Deletes a Connect Webview.
You do not need to delete a Connect Webview once a user completes it. Instead, you can simply ignore completed Connect Webviews.
Returns a specified Connect Webview.
Unless you're using a custom_redirect_url, you should poll a newly-created connect_webview to find out if the user has signed in or to get details about what devices they've connected.
Returns a list of all Connect Webviews.
Deletes a specified connected account.
Deleting a connected account triggers a connected_account.deleted event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider.
For example, if you delete a connected account with a device that has an access code, Seam sends a connected_account.deleted event, a device.deleted event, and an access_code.deleted event, but Seam does not remove the access code from the device.
Returns a specified connected account.
Returns a list of all connected accounts.
Simulates a connected account becoming disconnected from Seam. Only applicable for sandbox workspaces.
Request a connected account sync attempt for the specified connected_account_id.
Updates a connected account.
Creates a new customer portal magic link with configurable features.
Deletes customer data including resources like spaces, properties, rooms, users, etc. This will delete the partner resources and any related Seam resources (user identities, access grants, spaces).
Pushes customer data including resources like spaces, properties, rooms, users, etc.
Returns a specified device.
You must specify either device_id or name.
Returns a list of all devices.
Returns a list of all device providers.
The information that this endpoint returns for each provider includes a set of capability flags, such as device_provider.can_remotely_unlock. If at least one supported device from a provider has a specific capability, the corresponding capability flag is true.
When you create a Connect Webview, you can customize the providers—that is, the brands—that it displays. In the /connect_webviews/create request, include the desired set of device provider keys in the accepted_providers parameter. See also Customize the Brands to Display in Your Connect Webviews.
Updates provider-specific metadata for devices.
Simulates connecting a device to Seam. Only applicable for sandbox devices. See also Testing Your App Against Device Disconnection and Removal.
Simulates bringing the Wi‑Fi hub (bridge) back online for a device.
Only applicable for sandbox workspaces and currently
implemented for August and TTLock locks.
This will clear the hub_disconnected error on the device.
Simulates disconnecting a device from Seam. Only applicable for sandbox devices. See also Testing Your App Against Device Disconnection and Removal.
Simulates taking the Wi‑Fi hub (bridge) offline for a device.
Only applicable for sandbox workspaces and currently
implemented for August, TTLock, and IglooHome devices.
This will set the hub_disconnected error on the device, or mark the
IglooHome bridge offline in sandbox.
Toggle the simulated Nuki Smart Hosting subscription for a device (sandbox only).
Send is_expired: true to simulate an expired subscription, or false to simulate an active subscription.
The actual device error is created/cleared by the poller after this state change.
Simulates removing a device from Seam. Only applicable for sandbox devices. See also Testing Your App Against Device Disconnection and Removal.
Returns a specified unmanaged device.
An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any access codes on an unmanaged device are unmanaged. To control an unmanaged device with Seam, convert it to a managed device.
You must specify either device_id or name.
Returns a list of all unmanaged devices.
An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any access codes on an unmanaged device are unmanaged. To control an unmanaged device with Seam, convert it to a managed device.
Updates a specified unmanaged device. To convert an unmanaged device to managed, set is_managed to true.
An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any access codes on an unmanaged device are unmanaged. To control an unmanaged device with Seam, convert it to a managed device.
Updates a specified device.
You can add or change custom metadata for a device, change the device's name, or convert a managed device to unmanaged.
Returns a specified event. This endpoint returns the same event that would be sent to a webhook, but it enables you to retrieve an event that already took place.
Returns a list of all events. This endpoint returns the same events that would be sent to a webhook, but it enables you to filter or see events that already took place.
Deletes a specified Instant Key.
Gets an instant key.
Returns a list of all instant keys.
Configures the auto-lock setting for a specified lock.
Returns a specified lock.
Returns a list of all locks.
Locks a lock. See also Locking and Unlocking Smart Locks.
Simulates the entry of a code on a keypad. You can only perform this action for August devices within sandbox workspaces.
Simulates a manual lock action using a keypad. You can only perform this action for August devices within sandbox workspaces.
Unlocks a lock. See also Locking and Unlocking Smart Locks.
Returns a list of all noise sensors.
Creates a new noise threshold for a noise sensor. Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.
Deletes a noise threshold from a noise sensor.
Returns a specified noise threshold for a noise sensor.
Returns a list of all noise thresholds for a noise sensor.
Updates a noise threshold for a noise sensor.
Simulates the triggering of a noise threshold for a noise sensor in a sandbox workspace.
Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see App User Lost Phone Process.
Returns a specified phone.
Returns a list of all phones. To filter the list of returned phones by a specific owner user identity or credential, include the owner_user_identity_id or acs_credential_id, respectively, in the request body.
Creates a new simulated phone in a sandbox workspace. See also Creating a Simulated Phone for a User Identity.
Adds entrances to a specific space.
Adds a connected account to a specific space.
Adds devices to a specific space.
Creates a new space.
Deletes a space.
Gets a space.
Gets all related resources for one or more Spaces.
Returns a list of all spaces.
Removes entrances from a specific space.
Removes a connected account from a specific space.
Removes devices from a specific space.
Updates an existing space.
Activates a specified climate preset for a specified thermostat.
Sets a specified thermostat to cool mode.
Creates a climate preset for a specified thermostat.
Creates a new thermostat daily program. A daily program consists of a set of periods, where each period includes a start time and the key of a configured climate preset. Once you have defined a daily program, you can assign it to one or more days within a weekly program.
Deletes a thermostat daily program.
Updates a specified thermostat daily program. The periods that you specify overwrite any existing periods for the daily program.
Deletes a specified climate preset for a specified thermostat.
Sets a specified thermostat to heat mode.
Sets a specified thermostat to heat-cool ("auto") mode.
Returns a list of all thermostats.
Sets a specified thermostat to "off" mode.
Creates a new thermostat schedule for a specified thermostat.
Deletes a thermostat schedule for a specified thermostat.
Returns a specified thermostat schedule.
Returns a list of all thermostat schedules for a specified thermostat.
Updates a specified thermostat schedule.
Sets a specified climate preset as the "fallback" preset for a specified thermostat.
Sets the fan mode setting for a specified thermostat.
Sets the HVAC mode for a specified thermostat.
Sets a temperature threshold for a specified thermostat. Seam emits a thermostat.temperature_threshold_exceeded event and adds a warning on a thermostat if it reports a temperature outside the threshold range.
Simulates having adjusted the HVAC mode for a thermostat. Only applicable for sandbox devices. See also Testing Your Thermostat App with Simulate Endpoints.
Simulates a thermostat reaching a specified temperature. Only applicable for sandbox devices. See also Testing Your Thermostat App with Simulate Endpoints.
Updates a specified climate preset for a specified thermostat.
Updates the thermostat weekly program for a thermostat device. To configure a weekly program, specify the ID of the daily program that you want to use for each day of the week. When you update a weekly program, the set of programs that you specify overwrites any previous weekly program for the thermostat.
Adds a specified access system user to a specified user identity.
You must specify either user_identity_id or user_identity_key to identify the user identity.
If user_identity_key is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.
Creates a new user identity.
Deletes a specified user identity. This deletes the user identity and all associated resources, including any credentials, acs users and client sessions.
Generates a new instant key for a specified user identity.
Returns a specified user identity.
Grants a specified user identity access to a specified device.
Returns a list of all user identities.
Returns a list of all devices associated with a specified user identity. This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.
Returns a list of all ACS entrances accessible to a specified user identity. This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.
Returns a list of all access systems associated with a specified user identity.
Returns a list of all access system users assigned to a specified user identity.
Removes a specified access system user from a specified user identity.
Revokes access to a specified device from a specified user identity.
Returns a specified unmanaged user identity (where is_managed = false).
Returns a list of all unmanaged user identities (where is_managed = false).
Updates an unmanaged user identity to make it managed.
This endpoint can only be used to convert unmanaged user identities to managed ones by setting is_managed to true. It cannot be used to convert managed user identities back to unmanaged.
Updates a specified user identity.
Creates a new webhook.
Deletes a specified webhook.
Gets a specified webhook.
Returns a list of all webhooks.
Updates a specified webhook.
Creates a new workspace.
Returns the workspace associated with the authentication value.
Returns a list of workspaces associated with the authentication value.
Resets the sandbox workspace associated with the authentication value. Note that this endpoint is only available for sandbox workspaces.
Updates the workspace associated with the authentication value.
StaticfromStaticfromStaticfromStaticfromStaticfromStaticfrom
Creates a new access code. For granting access, we recommend Access Grants instead: they work across both standalone smart locks and access control systems and manage the underlying codes for you. Use this low-level endpoint only when you need direct control over a code on a single device, such as setting a custom PIN value.