# Seam integration

> Unified API to control smart locks, access control systems, thermostats, noise sensors and other connected devices.

- Authentication: apiKey

## Tools (202)

- **Activate a Climate Preset**: Activates a specified climate preset for a specified thermostat.
- **Activate the Weekly Program**: Returns a specified thermostat to its weekly program, the schedule that is configured on the device itself, releasing any hold that Seam has set.
- **Add a Connected Account to a Space**: Adds a connected account to a specific space.
- **Add an ACS User to an Access Group (/acs/access_groups/add_user)**: Adds a specified access system user to a specified access group.
- **Add an ACS User to an Access Group (/acs/users/add_to_access_group)**: Adds a specified access system user to a specified access group.
- **Add an ACS User to a User Identity**: 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.
- **Add Devices to a Space**: Adds devices to a specific space.
- **Add Entrances to a Space**: Adds entrances to a specific space.
- **Add Requested Access Methods to Access Grant**: Adds additional requested access methods to an existing Access Grant.
- **Assign a Card Credential to an Access Method**: 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.
- **Assign a Credential to an ACS User**: Assigns a specified credential to a specified access system user.
- **Configure Auto-Lock**: Configures the auto-lock setting for a specified lock.
- **Convert an Unmanaged Access Code**: 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.
- **Create a Client Session**: Creates a new client session.
- **Create a Climate Preset**: Creates a climate preset for a specified thermostat.
- **Create a Connect Webview**: 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`.
- **Create a Credential for an ACS 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.
- **Create an Access Code**: 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.
- **Create an Access Grant**: 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.
- **Create an ACS User**: Creates a new access system user.
- **Create a Noise Threshold**: 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.
- **Create a Sandbox Phone**: Creates a new simulated phone in a sandbox workspace. See also Creating a Simulated Phone for a User Identity.
- **Create a Space**: Creates a new space.
- **Create a Thermostat Daily Program**: 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.
- **Create a Thermostat Schedule**: Creates a new thermostat schedule for a specified thermostat.
- **Create a User Identity**: Creates a new user identity.
- **Create a Webhook**: Creates a new webhook.
- **Create Customer Portal**: Creates a new customer portal magic link with configurable features.
- **Create Multiple Linked Access Codes**: Creates 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).
- **Deactivate a Phone**: Deactivates a phone, which is useful, for example, if a user has lost their phone. For more information, see App User Lost Phone Process.
- **Delete a Client Session**: Deletes a client session.
- **Delete a Climate Preset**: Deletes a specified climate preset for a specified thermostat.
- **Delete a Connected Account**: 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.
- **Delete a Connect Webview**: 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.
- **Delete a Credential**: Deletes a specified credential.
- **Delete an Access Code**: Deletes an access code.
- **Delete an Access Grant**: Delete an Access Grant.
- **Delete an Access Group**: Deletes a specified access group.
- **Delete an Access Method**: Deletes an access method.
- **Delete an ACS User**: Deletes a specified access system user and invalidates the access system user's credentials.
- **Delete an Instant Key**: Deletes a specified Instant Key.
- **Delete a Noise Threshold**: Deletes a noise threshold from a noise sensor.
- **Delete an Unmanaged Access Code**: Deletes an unmanaged access code.
- **Delete a Space**: Deletes a space.
- **Delete a Thermostat Daily Program**: Deletes a thermostat daily program.
- **Delete a Thermostat Schedule**: Deletes a thermostat schedule for a specified thermostat.
- **Delete a User Identity**: Deletes a specified user identity. This deletes the user identity and all associated resources, including any credentials, acs users and client sessions.
- **Delete a Webhook**: Deletes a specified webhook.
- **Delete Customer Data**: 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).
- **Encode a 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`
- **Encode an Access Method**: Encodes an existing access method onto a plastic card placed on the specified encoder.
- **Generate a Code**: Generates a code for an access code, given a device ID.
- **Generate an Instant Key**: Generates a new instant key for a specified user identity.
- **Get a Client Session**: Returns a specified client session.
- **Get a Connected Account**: Returns a specified connected account.
- **Get a Connect Webview**: 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.
- **Get a Credential**: Returns a specified credential.
- **Get a Device**: Returns a specified device. You must specify either `device_id` or `name`.
- **Get an Access Code**: Returns a specified access code. You must specify either `access_code_id` or both `device_id` and `code`.
- **Get an Access Grant**: Get an Access Grant.
- **Get an Access Group**: Returns a specified access group.
- **Get an Access Method**: Gets an access method.
- **Get an ACS System**: Returns a specified access system.
- **Get an ACS User**: Returns a specified access system user.
- **Get an Action Attempt**: Returns a specified action attempt.
- **Get an Encoder**: Returns a specified encoder.
- **Get an Entrance**: Returns a specified access system entrance.
- **Get an Event**: 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.
- **Get an Instant Key**: Gets an instant key.
- **Get a Noise Threshold**: Returns a specified noise threshold for a noise sensor.
- **Get an Unmanaged Access Code**: Returns a specified unmanaged access code. You must specify either `access_code_id` or both `device_id` and `code`.
- **Get an Unmanaged Access Grant**: Get an unmanaged Access Grant (where is_managed = false).
- **Get an Unmanaged Access Method**: Gets an unmanaged access method (where is_managed = false).
- **Get an Unmanaged Device**: 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.
- **Get an Unmanaged User Identity**: Returns a specified unmanaged user identity (where is_managed = false).
- **Get a Phone**: Returns a specified phone.
- **Get a Space**: Gets a space.
- **Get a Thermostat Schedule**: Returns a specified thermostat schedule.
- **Get a User Identity**: Returns a specified user identity.
- **Get a Webhook**: Gets a specified webhook.
- **Get a Workspace**: Returns the workspace associated with the authentication value.
- **Get Media**: Returns a specified piece of media, such as a video clip or thumbnail image captured for a camera event, with a short-lived URL from which you can download it. Camera events list their media in `media_ids`. This endpoint is in beta.
- **Get or Create a Client Session**: Returns a client session with specific characteristics or creates a new client session with these characteristics if it does not yet exist.
- **Get related Access Grant resources**: Gets all related resources for one or more Access Grants.
- **Get related Access Method resources**: Gets all related resources for one or more Access Methods.
- **Get related Space resources**: Gets all related resources for one or more Spaces.
- **Grant Access to a Client Session**: Grants a client session access to one or more resources, such as Connect Webviews, user identities, and so on.
- **Grant an ACS User Access to an Entrance**: Grants a specified access system user access to a specified access system entrance.
- **Grant a User Identity Access to a Device**: Grants a specified user identity access to a specified device.
- **HVAC Mode Adjusted**: Simulates having adjusted the HVAC mode for a thermostat. Only applicable for sandbox devices. See also Testing Your Thermostat App with Simulate Endpoints.
- **List Access Codes**: Returns a list of all access codes. Specify `device_id`, `access_code_ids`, `access_method_id`, `access_grant_id`, or `access_grant_key`.
- **List Access Grants**: Gets an Access Grant.
- **List Access Groups**: Returns a list of all access groups.
- **List Accessible Devices for a User Identity**: 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.
- **List Accessible Entrances**: Returns a list of all entrances to which a credential grants access.
- **List Accessible Entrances for a 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.
- **List Access Methods**: Lists all access methods, usually filtered by Access Grant.
- **List ACS Systems**: 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.
- **List ACS Systems Associated with a User Identity**: Returns a list of all access systems associated with a specified user identity.
- **List ACS User-Accessible Entrances**: Lists the entrances to which a specified access system user has access.
- **List ACS Users**: Returns a list of all access system users.
- **List ACS Users Associated with a User Identity**: Returns a list of all access system users assigned to a specified user identity.
- **List ACS Users in an Access Group**: Returns a list of all access system users in an access group.
- **List Action Attempts**: Returns a list of the action attempts that you specify as an array of `action_attempt_id`s.
- **List Client Sessions**: Returns a list of all client sessions.
- **List Compatible Credential Manager ACS Systems**: 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.
- **List Connected Accounts**: Returns a list of all connected accounts.
- **List Connect Webviews**: Returns a list of all Connect Webviews.
- **List Credentials**: Returns a list of all credentials.
- **List Credentials with Access to an Entrance**: Returns a list of all credentials with access to a specified entrance.
- **List Device Providers**: 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`.
- **List Devices**: Returns a list of all devices.
- **List Encoders**: Returns a list of all encoders.
- **List Entrances**: Returns a list of all access system entrances.
- **List Entrances Accessible to an Access Group**: Returns a list of all accessible entrances for a specified access group.
- **List Events**: 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.
- **List Instant Keys**: Returns a list of all instant keys.
- **List Locks**: Returns a list of all locks.
- **List Noise Sensors**: Returns a list of all noise sensors.
- **List Noise Thresholds**: Returns a list of all noise thresholds for a noise sensor.
- **List Phones**: 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.
- **List Spaces**: Returns a list of all spaces.
- **List Thermostats**: Returns a list of all thermostats.
- **List Thermostat Schedules**: Returns a list of all thermostat schedules for a specified thermostat.
- **List Unmanaged Access Codes**: Returns a list of all unmanaged access codes.
- **List Unmanaged Access Grants**: Gets unmanaged Access Grants (where is_managed = false).
- **List Unmanaged Access Methods**: Lists all unmanaged access methods (where is_managed = false), usually filtered by Access Grant.
- **List Unmanaged Devices**: 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.
- **List Unmanaged User Identities**: Returns a list of all unmanaged user identities (where is_managed = false).
- **List User Identities**: Returns a list of all user identities.
- **List Webhooks**: Returns a list of all webhooks.
- **List Workspaces**: Returns a list of workspaces associated with the authentication value.
- **Lock a Lock**: Locks a lock. See also Locking and Unlocking Smart Locks.
- **Merge User Identities**: Merges one or more user identities into a primary user identity, for when the same person ended up with more than one user identity.
- **Pull a Backup Access Code**: 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.
- **Push Customer Data**: Pushes customer data including resources like spaces, properties, rooms, users, etc.
- **Remove a Connected Account from a Space**: Removes a connected account from a specific space.
- **Remove an ACS User from an Access Group (/acs/access_groups/remove_user)**: Removes a specified access system user from a specified access group.
- **Remove an ACS User from an Access Group (/acs/users/remove_from_access_group)**: Removes a specified access system user from a specified access group.
- **Remove an ACS User from a User Identity**: Removes a specified access system user from a specified user identity.
- **Remove Devices from a Space**: Removes devices from a specific space.
- **Remove Entrances from a Space**: Removes entrances from a specific space.
- **Report Device Access Code Constraints**: 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`.
- **Report Devices**: Reports ACS system device status including encoders and entrances.
- **Report Provider Metadata**: Updates provider-specific metadata for devices.
- **Reset a Sandbox Workspace**: Resets the sandbox workspace associated with the authentication value. Note that this endpoint is only available for sandbox workspaces.
- **Revoke Access to a Device from a User Identity**: Revokes access to a specified device from a specified user identity.
- **Revoke a Client Session**: Revokes a client session. Note that deleting a client session is a separate action.
- **Revoke ACS User Access to All Entrances**: Revokes access to all entrances for a specified access system user.
- **Scan a Credential**: Scans an encoded acs_credential from a plastic card placed on the specified encoder.
- **Scan to Assign a Credential**: 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`.
- **Set a Temperature Threshold**: 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.
- **Set the Fallback Climate Preset**: Sets a specified climate preset as the "fallback" preset for a specified thermostat.
- **Set the Fan Mode Setting**: Sets the fan mode setting for a specified thermostat.
- **Set the HVAC Mode**: Sets the HVAC mode for a specified thermostat.
- **Set to Cool Mode**: Sets a specified thermostat to cool mode.
- **Set to Heat-Cool (Auto) Mode**: Sets a specified thermostat to heat-cool ("auto") mode.
- **Set to Heat Mode**: Sets a specified thermostat to heat mode.
- **Set to Off Mode**: Sets a specified thermostat to "off" mode.
- **Simulate a Keypad Code Entry**: Simulates the entry of a code on a keypad. You can only perform this action for August devices within sandbox workspaces.
- **Simulate a Manual Lock Action Using a Keypad**: Simulates a manual lock action using a keypad. You can only perform this action for August devices within sandbox workspaces.
- **Simulate Connected Account Disconnection**: Simulates a connected account becoming disconnected from Seam. Only applicable for sandbox workspaces.
- **Simulate Creating an Unmanaged Access Code**: Simulates the creation of an unmanaged access code in a sandbox workspace.
- **Simulate Device Connection**: Simulates connecting a device to Seam. Only applicable for sandbox devices. See also Testing Your App Against Device Disconnection and Removal.
- **Simulate Device Disconnection**: Simulates disconnecting a device from Seam. Only applicable for sandbox devices. See also Testing Your App Against Device Disconnection and Removal.
- **Simulate Device Removal**: Simulates removing a device from Seam. Only applicable for sandbox devices. See also Testing Your App Against Device Disconnection and Removal.
- **Simulate Hub Connection**: 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.
- **Simulate Hub Disconnection**: 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.
- **Simulate Paid Subscription**: 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.
- **Simulate that the Next Credential Encoding Will Fail**: 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.
- **Simulate that the Next Credential Encoding Will Succeed**: 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.
- **Simulate that the Next Credential Scan Will Fail**: 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.
- **Simulate that the Next Credential Scan Will Succeed**: 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.
- **Simulate Triggering a Noise Threshold**: Simulates the triggering of a noise threshold for a noise sensor in a sandbox workspace.
- **Suspend an ACS 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.
- **Sync a Connected Account**: Request a connected account sync attempt for the specified `connected_account_id`.
- **Temperature Reached**: Simulates a thermostat reaching a specified temperature. Only applicable for sandbox devices. See also Testing Your Thermostat App with Simulate Endpoints.
- **Unassign a Credential from an ACS User**: Unassigns a specified credential from a specified access system user.
- **Unlock a Door with an Access Method**: 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.
- **Unlock a Lock**: Unlocks a lock. See also Locking and Unlocking Smart Locks.
- **Unlock an Entrance**: Remotely unlocks a specified entrance using a cloud_key credential. Returns an action attempt that tracks the progress of the unlock operation.
- **Unsuspend an ACS User**: 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.
- **Update a Climate Preset**: Updates a specified climate preset for a specified thermostat.
- **Update a Connected Account**: Updates a connected account.
- **Update a Credential**: Updates the code and ends at date and time for a specified credential.
- **Update a 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.
- **Update an Access Code**: Updates a specified active or upcoming access code. See also Modifying Access Codes.
- **Update an Access Grant**: Updates an existing Access Grant's time window.
- **Update an ACS User**: Updates the properties of a specified access system user.
- **Update a Noise Threshold**: Updates a noise threshold for a noise sensor.
- **Update an Unmanaged Access Code**: Updates a specified unmanaged access code.
- **Update an Unmanaged Access Grant**: 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.
- **Update an Unmanaged 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.
- **Update an Unmanaged User Identity**: 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.
- **Update a Space**: Updates an existing space.
- **Update a Thermostat Daily Program**: Updates a specified thermostat daily program. The periods that you specify overwrite any existing periods for the daily program.
- **Update a Thermostat Schedule**: Updates a specified thermostat schedule.
- **Update a User Identity**: Updates a specified user identity.
- **Update a Webhook**: Updates a specified webhook.
- **Update a Workspace**: Updates the workspace associated with the authentication value.
- **Update Multiple Linked 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.
- **Update the Thermostat Weekly Program**: 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.

Connect Seam in General Input: https://www.generalinput.com/apps/seam