diff --git a/.gitbook.yaml b/.gitbook.yaml
index 4f6789969..7f80379f0 100644
--- a/.gitbook.yaml
+++ b/.gitbook.yaml
@@ -30,52 +30,52 @@ redirects:
capability-guides/access-systems/understanding-acs-differences: capability-guides/access-systems/understanding-access-control-system-differences.md
capability-guides/thermostats/creating-and-managing-climate-schedules: capability-guides/thermostats/creating-and-managing-thermostat-schedules.md
device-guides/get-started-with-schlage-locks: device-and-system-integration-guides/schlage-locks/get-started-with-schlage-locks.md
- api-clients/access-codes/convert-an-unmanaged-access-code: api-clients/access_codes/unmanaged/convert_to_managed.md
- api-clients/access-codes/create-an-access-code: api-clients/access_codes/create.md
- api-clients/access-codes/create-many-access-codes: api-clients/access_codes/create_multiple.md
- api-clients/access-codes/delete-an-access-code: api-clients/access_codes/delete.md
- api-clients/access-codes/delete-an-unmanaged-access-code: api-clients/access_codes/unmanaged/delete.md
- api-clients/access-codes/get-an-access-code: api-clients/access_codes/get.md
- api-clients/access-codes/get-an-unmanaged-access-code: api-clients/access_codes/unmanaged/get.md
- api-clients/access-codes/list-access-codes: api-clients/access_codes/list.md
- api-clients/access-codes/list-unmanaged-access-codes: api-clients/access_codes/unmanaged/list.md
- api-clients/access-codes/pull-backup-access-code: api-clients/access_codes/pull_backup_access_code.md
- api-clients/access-codes/update-an-access-code: api-clients/access_codes/update.md
- api-clients/access-codes: api-clients/access_codes/README.md
- api-clients/access-control-systems/access-groups/add-user-to-access-group: api-clients/acs/access_groups/add_user.md
- api-clients/access-control-systems/access-groups/get-access-group: api-clients/acs/access_groups/get.md
- api-clients/access-control-systems/access-groups/list-access-groups: api-clients/acs/access_groups/list.md
- api-clients/access-control-systems/access-groups/list-users-in-access-group: api-clients/acs/access_groups/list_users.md
- api-clients/access-control-systems/access-groups/remove-user-from-access-group: api-clients/acs/access_groups/remove_user.md
- api-clients/access-control-systems/access-groups: api-clients/acs/access_groups/README.md
- api-clients/access-control-systems/credentials/assign-a-credential-to-a-user: api-clients/acs/credentials/assign.md
- api-clients/access-control-systems/credentials/create-credential-for-user: api-clients/acs/credentials/create.md
- api-clients/access-control-systems/credentials/delete-credential: api-clients/acs/credentials/delete.md
- api-clients/access-control-systems/credentials/get-credential: api-clients/acs/credentials/get.md
- api-clients/access-control-systems/credentials/list-accessible-entrances: api-clients/acs/credentials/list_accessible_entrances.md
- api-clients/access-control-systems/credentials/list-credentials: api-clients/acs/credentials/list.md
- api-clients/access-control-systems/credentials/unassign-a-credential-from-a-user: api-clients/acs/credentials/unassign.md
- api-clients/access-control-systems/credentials/update-a-credential: api-clients/acs/credentials/update.md
- api-clients/access-control-systems/credentials: api-clients/acs/credentials/README.md
- api-clients/access-control-systems/entrances/get-an-entrance: api-clients/acs/entrances/get.md
- api-clients/access-control-systems/entrances/list-credentials-with-access-to-an-entrance: api-clients/acs/entrances/list_credentials_with_access.md
- api-clients/access-control-systems/entrances/list-entrances: api-clients/acs/entrances/list.md
- api-clients/access-control-systems/entrances: api-clients/acs/entrances/README.md
- api-clients/access-control-systems/systems/get-system: api-clients/acs/systems/get.md
- api-clients/access-control-systems/systems/list-compatible-credential-manager-acs-systems: api-clients/acs/systems/list_compatible_credential_manager_acs_systems.md
- api-clients/access-control-systems/systems/list-systems: api-clients/acs/systems/list.md
- api-clients/access-control-systems/systems: api-clients/acs/systems/README.md
- api-clients/access-control-systems/users/add-user-to-access-group: api-clients/acs/users/add_to_access_group.md
- api-clients/access-control-systems/users/create-user: api-clients/acs/users/create.md
- api-clients/access-control-systems/users/delete-user: api-clients/acs/users/delete.md
- api-clients/access-control-systems/users/get-user: api-clients/acs/users/get.md
- api-clients/access-control-systems/users/list-users: api-clients/acs/users/list.md
- api-clients/access-control-systems/users/remove-user-from-access-group: api-clients/acs/users/remove_from_access_group.md
- api-clients/access-control-systems/users/suspend-a-user: api-clients/acs/users/suspend.md
- api-clients/access-control-systems/users/unsuspend-a-user: api-clients/acs/users/unsuspend.md
- api-clients/access-control-systems/users/update-user: api-clients/acs/users/update.md
- api-clients/access-control-systems/users: api-clients/acs/users/README.md
- api-clients/access-control-systems: api-clients/acs/README.md
+ api-clients/access-codes/convert-an-unmanaged-access-code: api/access_codes/unmanaged/convert_to_managed.md
+ api-clients/access-codes/create-an-access-code: api/access_codes/create.md
+ api-clients/access-codes/create-many-access-codes: api/access_codes/create_multiple.md
+ api-clients/access-codes/delete-an-access-code: api/access_codes/delete.md
+ api-clients/access-codes/delete-an-unmanaged-access-code: api/access_codes/unmanaged/delete.md
+ api-clients/access-codes/get-an-access-code: api/access_codes/get.md
+ api-clients/access-codes/get-an-unmanaged-access-code: api/access_codes/unmanaged/get.md
+ api-clients/access-codes/list-access-codes: api/access_codes/list.md
+ api-clients/access-codes/list-unmanaged-access-codes: api/access_codes/unmanaged/list.md
+ api-clients/access-codes/pull-backup-access-code: api/access_codes/pull_backup_access_code.md
+ api-clients/access-codes/update-an-access-code: api/access_codes/update.md
+ api-clients/access-codes: api/access_codes/README.md
+ api-clients/access-control-systems/access-groups/add-user-to-access-group: api/acs/access_groups/add_user.md
+ api-clients/access-control-systems/access-groups/get-access-group: api/acs/access_groups/get.md
+ api-clients/access-control-systems/access-groups/list-access-groups: api/acs/access_groups/list.md
+ api-clients/access-control-systems/access-groups/list-users-in-access-group: api/acs/access_groups/list_users.md
+ api-clients/access-control-systems/access-groups/remove-user-from-access-group: api/acs/access_groups/remove_user.md
+ api-clients/access-control-systems/access-groups: api/acs/access_groups/README.md
+ api-clients/access-control-systems/credentials/assign-a-credential-to-a-user: api/acs/credentials/assign.md
+ api-clients/access-control-systems/credentials/create-credential-for-user: api/acs/credentials/create.md
+ api-clients/access-control-systems/credentials/delete-credential: api/acs/credentials/delete.md
+ api-clients/access-control-systems/credentials/get-credential: api/acs/credentials/get.md
+ api-clients/access-control-systems/credentials/list-accessible-entrances: api/acs/credentials/list_accessible_entrances.md
+ api-clients/access-control-systems/credentials/list-credentials: api/acs/credentials/list.md
+ api-clients/access-control-systems/credentials/unassign-a-credential-from-a-user: api/acs/credentials/unassign.md
+ api-clients/access-control-systems/credentials/update-a-credential: api/acs/credentials/update.md
+ api-clients/access-control-systems/credentials: api/acs/credentials/README.md
+ api-clients/access-control-systems/entrances/get-an-entrance: api/acs/entrances/get.md
+ api-clients/access-control-systems/entrances/list-credentials-with-access-to-an-entrance: api/acs/entrances/list_credentials_with_access.md
+ api-clients/access-control-systems/entrances/list-entrances: api/acs/entrances/list.md
+ api-clients/access-control-systems/entrances: api/acs/entrances/README.md
+ api-clients/access-control-systems/systems/get-system: api/acs/systems/get.md
+ api-clients/access-control-systems/systems/list-compatible-credential-manager-acs-systems: api/acs/systems/list_compatible_credential_manager_acs_systems.md
+ api-clients/access-control-systems/systems/list-systems: api/acs/systems/list.md
+ api-clients/access-control-systems/systems: api/acs/systems/README.md
+ api-clients/access-control-systems/users/add-user-to-access-group: api/acs/users/add_to_access_group.md
+ api-clients/access-control-systems/users/create-user: api/acs/users/create.md
+ api-clients/access-control-systems/users/delete-user: api/acs/users/delete.md
+ api-clients/access-control-systems/users/get-user: api/acs/users/get.md
+ api-clients/access-control-systems/users/list-users: api/acs/users/list.md
+ api-clients/access-control-systems/users/remove-user-from-access-group: api/acs/users/remove_from_access_group.md
+ api-clients/access-control-systems/users/suspend-a-user: api/acs/users/suspend.md
+ api-clients/access-control-systems/users/unsuspend-a-user: api/acs/users/unsuspend.md
+ api-clients/access-control-systems/users/update-user: api/acs/users/update.md
+ api-clients/access-control-systems/users: api/acs/users/README.md
+ api-clients/access-control-systems: api/acs/README.md
api-clients/action-attempt/get-action-attempt: api-clients/action_attempts/get.md
api-clients/action-attempt: api-clients/action_attempts/README.md
api-clients/client-sessions/create-a-client-session: api-clients/client_sessions/create.md
@@ -85,16 +85,16 @@ redirects:
api-clients/client-sessions/grant-access-to-a-client-session: api-clients/client_sessions/grant_access.md
api-clients/client-sessions/list-client-sessions: api-clients/client_sessions/list.md
api-clients/client-sessions: api-clients/client_sessions/README.md
- api-clients/connect-webviews/create-a-connect-webview: api-clients/connect_webviews/create.md
- api-clients/connect-webviews/delete-a-connect-webview: api-clients/connect_webviews/delete.md
- api-clients/connect-webviews/get-a-connect-webview: api-clients/connect_webviews/get.md
- api-clients/connect-webviews/list-connect-webviews: api-clients/connect_webviews/list.md
- api-clients/connect-webviews: api-clients/connect_webviews/README.md
- api-clients/connected-accounts/delete-a-connected-account: api-clients/connected_accounts/delete.md
- api-clients/connected-accounts/get-a-connected-account: api-clients/connected_accounts/get.md
- api-clients/connected-accounts/list-connected-accounts: api-clients/connected_accounts/list.md
- api-clients/connected-accounts/update-a-connected-account: api-clients/connected_accounts/update.md
- api-clients/connected-accounts: api-clients/connected_accounts/README.md
+ api-clients/connect-webviews/create-a-connect-webview: api/connect_webviews/create.md
+ api-clients/connect-webviews/delete-a-connect-webview: api/connect_webviews/delete.md
+ api-clients/connect-webviews/get-a-connect-webview: api/connect_webviews/get.md
+ api-clients/connect-webviews/list-connect-webviews: api/connect_webviews/list.md
+ api-clients/connect-webviews: api/connect_webviews/README.md
+ api-clients/connected-accounts/delete-a-connected-account: api/connected_accounts/delete.md
+ api-clients/connected-accounts/get-a-connected-account: api/connected_accounts/get.md
+ api-clients/connected-accounts/list-connected-accounts: api/connected_accounts/list.md
+ api-clients/connected-accounts/update-a-connected-account: api/connected_accounts/update.md
+ api-clients/connected-accounts: api/connected_accounts/README.md
api-clients/devices/delete-device: api-clients/devices/delete.md
api-clients/devices/get-device-1: api-clients/devices/unmanaged/get.md
api-clients/devices/get-device: api-clients/devices/get.md
@@ -114,36 +114,36 @@ redirects:
api-clients/noise-sensors/list-noise-thresholds: api-clients/noise_sensors/noise_thresholds/list.md
api-clients/noise-sensors/update-noise-threshold: api-clients/noise_sensors/noise_thresholds/update.md
api-clients/noise-sensors: api-clients/noise_sensors/README.md
- api-clients/thermostats/get-thermostat: api-clients/thermostats/get.md
- api-clients/thermostats/list-thermostats: api-clients/thermostats/list.md
- api-clients/thermostats/set-fan-mode: api-clients/thermostats/set_fan_mode.md
- api-clients/thermostats/set-to-cool-mode: api-clients/thermostats/cool.md
- api-clients/thermostats/set-to-heat-cool-auto-mode: api-clients/thermostats/heat_cool.md
- api-clients/thermostats/set-to-heat-mode: api-clients/thermostats/heat.md
- api-clients/thermostats/set-to-off-mode: api-clients/thermostats/off.md
- api-clients/user-identities/add-an-acs-user-to-a-user-identity: api-clients/user_identities/add_acs_user.md
- api-clients/user-identities/create-a-user-identity: api-clients/user_identities/create.md
- api-clients/user-identities/delete-a-user-identity: api-clients/user_identities/delete.md
- api-clients/user-identities/enrollment-automations/delete-an-enrollment-automation: api-clients/user_identities/enrollment_automations/delete.md
- api-clients/user-identities/enrollment-automations/get-an-enrollment-automation: api-clients/user_identities/enrollment_automations/get.md
- api-clients/user-identities/enrollment-automations/launch-an-enrollment-automation: api-clients/user_identities/enrollment_automations/launch.md
- api-clients/user-identities/enrollment-automations/list-enrollment-automations: api-clients/user_identities/enrollment_automations/list.md
- api-clients/user-identities/enrollment-automations: api-clients/user_identities/enrollment_automations/README.md
- api-clients/user-identities/get-a-user-identity: api-clients/user_identities/get.md
- api-clients/user-identities/grant-a-user-identity-access-to-a-device: api-clients/user_identities/grant_access_to_device.md
- api-clients/user-identities/list-accessible-devices-for-a-user-identity: api-clients/user_identities/list_accessible_devices.md
- api-clients/user-identities/list-acs-systems-associated-with-a-user-identity: api-clients/user_identities/list_acs_systems.md
- api-clients/user-identities/list-acs-users-associated-with-a-user-identity: api-clients/user_identities/list_acs_users.md
- api-clients/user-identities/list-user-identities: api-clients/user_identities/list.md
- api-clients/user-identities/remove-an-acs-user-from-a-user-identity: api-clients/user_identities/remove_acs_user.md
- api-clients/user-identities/revoke-access-to-a-device-from-a-user-identity: api-clients/user_identities/revoke_access_to_device.md
- api-clients/user-identities: api-clients/user_identities/README.md
+ api-clients/thermostats/get-thermostat: api/thermostats/get.md
+ api-clients/thermostats/list-thermostats: api/thermostats/list.md
+ api-clients/thermostats/set-fan-mode: api/thermostats/set_fan_mode.md
+ api-clients/thermostats/set-to-cool-mode: api/thermostats/cool.md
+ api-clients/thermostats/set-to-heat-cool-auto-mode: api/thermostats/heat_cool.md
+ api-clients/thermostats/set-to-heat-mode: api/thermostats/heat.md
+ api-clients/thermostats/set-to-off-mode: api/thermostats/off.md
+ api-clients/user-identities/add-an-acs-user-to-a-user-identity: api/user_identities/add_acs_user.md
+ api-clients/user-identities/create-a-user-identity: api/user_identities/create.md
+ api-clients/user-identities/delete-a-user-identity: api/user_identities/delete.md
+ api-clients/user-identities/enrollment-automations/delete-an-enrollment-automation: api/user_identities/enrollment_automations/delete.md
+ api-clients/user-identities/enrollment-automations/get-an-enrollment-automation: api/user_identities/enrollment_automations/get.md
+ api-clients/user-identities/enrollment-automations/launch-an-enrollment-automation: api/user_identities/enrollment_automations/launch.md
+ api-clients/user-identities/enrollment-automations/list-enrollment-automations: api/user_identities/enrollment_automations/list.md
+ api-clients/user-identities/enrollment-automations: api/user_identities/enrollment_automations/README.md
+ api-clients/user-identities/get-a-user-identity: api/user_identities/get.md
+ api-clients/user-identities/grant-a-user-identity-access-to-a-device: api/user_identities/grant_access_to_device.md
+ api-clients/user-identities/list-accessible-devices-for-a-user-identity: api/user_identities/list_accessible_devices.md
+ api-clients/user-identities/list-acs-systems-associated-with-a-user-identity: api/user_identities/list_acs_systems.md
+ api-clients/user-identities/list-acs-users-associated-with-a-user-identity: api/user_identities/list_acs_users.md
+ api-clients/user-identities/list-user-identities: api/user_identities/list.md
+ api-clients/user-identities/remove-an-acs-user-from-a-user-identity: api/user_identities/remove_acs_user.md
+ api-clients/user-identities/revoke-access-to-a-device-from-a-user-identity: api/user_identities/revoke_access_to_device.md
+ api-clients/user-identities: api/user_identities/README.md
api-clients/workspaces/get-workspace: api-clients/workspaces/get.md
api-clients/workspaces/reset-workspace: api-clients/workspaces/reset_sandbox.md
- api/phones/get-a-phone: api-clients/phones/get.md
- api/phones/list-phones: api-clients/phones/list.md
- api/phones/deactivate-a-phone: api-clients/phones/deactivate.md
- api-clients/phones/create-a-sandbox-phone: api-clients/phones/simulate/create_sandbox_phone.md
+ api/phones/get-a-phone: api/phones/get.md
+ api/phones/list-phones: api/phones/list.md
+ api/phones/deactivate-a-phone: api/phones/deactivate.md
+ api-clients/phones/create-a-sandbox-phone: api/phones/simulate/create_sandbox_phone.md
device-and-system-integration-guides/assa-abloy-credential-services-credential-manager-in-development: device-and-system-integration-guides/assa-abloy-credential-services-credential-manager/README.md
device-and-system-integration-guides/assa-abloy-visionline-access-control-system-in-development: device-and-system-integration-guides/assa-abloy-visionline-access-control-system/README.md
device-and-system-integration-guides/assa-abloy-visionline-access-control-system-in-development/visionline-acs-setup-instructions: device-and-system-integration-guides/assa-abloy-visionline-access-control-system/visionline-acs-setup-instructions/README.md
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
index 643c0e9f4..77478852f 100644
--- a/docs/SUMMARY.md
+++ b/docs/SUMMARY.md
@@ -208,11 +208,12 @@
* [List Connect Webviews](api-clients/connect_webviews/list.md)
* [Get a Connect Webview](api-clients/connect_webviews/get.md)
* [Delete a Connect Webview](api-clients/connect_webviews/delete.md)
-* [Connected Accounts](api-clients/connected_accounts/README.md)
- * [Get a Connected Account](api-clients/connected_accounts/get.md)
- * [List Connected Accounts](api-clients/connected_accounts/list.md)
- * [Update a Connected Account](api-clients/connected_accounts/update.md)
- * [Delete a Connected Account](api-clients/connected_accounts/delete.md)
+* [Connected Accounts](api/connected_accounts/README.md)
+ * [Get a Connected Account](api/connected_accounts/get.md)
+ * [List Connected Accounts](api/connected_accounts/list.md)
+ * [Update a Connected Account](api/connected_accounts/update.md)
+ * [Delete a Connected Account](api/connected_accounts/delete.md)
+ * [Sync a Connected Account](api/connected_accounts/sync.md)
* [Devices](api-clients/devices/README.md)
* [List Devices](api-clients/devices/list.md)
* [List Device Providers](api-clients/devices/list_device_providers.md)
diff --git a/docs/api-clients/connected_accounts/README.md b/docs/api-clients/connected_accounts/README.md
deleted file mode 100644
index 2c79abbc4..000000000
--- a/docs/api-clients/connected_accounts/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-description: >-
- An external third-party account that your user has authorized Seam to get
- access to, i.e. an August account with a list of door locks.
----
-
-# Connected Accounts
-
-## `connected_account` Properties
-
-| Attributes | Type | Description |
-| ---------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `connected_account_id` | string | ID of the Connected Account. |
-| `created_at` |
ISO8601
timestamp
| Timestamp of the date when the Connected Account was created. |
-| `user_identifier` | JSON object | The unique identifier for the Connected Account. Could be an email or phone number. |
-| `account_type` | string | Type of manufacturer the Connected Account belongs to.
Options include: august, schlage, yale, salto, smartthings
|
-| `account_type_display_name` | string | A version of `account_type` that can go into a user interface |
-| `custom_metadata` | JSON object | Set of custom_metadata set on the Connect Webview that connected the account. You can also modify or add to this custom_metadata.
Specify up to 50 keys, with key names up to 40 characters long. Accepts string or Boolean values. Strings are limited to 500 characters.
|
-| `automatically_manage_new_devices` | Boolean | Indicates whether Seam should import all new devices for the connected account to make these devices available for use and management by the Seam API.
You initially specify the value for this property when creating the corresponding Connect Webview.
|
-
-## List of Methods
-
-| [Get Connected Account](get.md) | Get a Connected Account. |
-| --------------------------------------------------------- | --------------------------------- |
-| [List Connected Accounts](list.md) | Get a list of Connected Accounts. |
-| [Update Connected Account](update-a-connected-account.md) | Update a Connected Account. |
-| [Delete Connected Accounts](delete.md) | Delete a Connected Account. |
-
-## Connected Account Error Types
-
-Errors are returned in a list:
-
-```
-"errors": [
- {
- "is_connected_account_error": true,
- "error_code": "account_disconnected",
- "message": "Account Disconnected, you may need to reconnect the account with a new webview.",
- "created_at": "2023-06-27T22:50:19.440Z
- }
-]
-```
-
-### Generic Errors
-
-Seam recommends adding error handling logic to you application for each generic error below. Seam may add more generic errors in the future, so your application should include a fallback case if it encounters an unknown generic error code.
-
-| Error Type | Description |
-| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `account_disconnected` | Seam has lost connection to a connected account. This may happen if the third-party provider triggered an access token to be revoked (e.g., after a password change). The account owner needs to reconnect the connected account with a new connect webview. |
-
-## Connected Account Warning Types
-
-Warnings are returned in a list:
-
-```
-"warnings": [
- {
- "warning_code": "devices_connected_to_other_account",
- "message": "Some devices on this account are already connected to another account.",
- "device_ids": [
- '8e9f2768-18d9-4ac2-845a-2£6fb507ea1f',
- '554acc7a-3cc8-4690-9a5e-b5c863295ee1',
- '06bfa00f-50c5-46ba-853-6£855c11632'
- ],
- "created_at": "2023-06-27T22:50:19.440Z
- }
-]
-```
-
-| Warning Type | Description |
-| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `devices_connected_to_other_account` | This warning indicates that there are devices linked to the current account that are already associated with a different account. It is important to note that these devices cannot be concurrently connected to multiple accounts. To resolve this issue, you may need to disassociate the devices from the other account before connecting them to the current account. Please ensure that the device IDs mentioned on `device_ids` are properly managed and linked to the intended account to avoid any connectivity conflicts. |
diff --git a/docs/api-clients/connected_accounts/delete.md b/docs/api-clients/connected_accounts/delete.md
deleted file mode 100644
index 70d5b495b..000000000
--- a/docs/api-clients/connected_accounts/delete.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-description: Delete a Connected Account by ID
----
-
-# Delete a Connected Account
-
-{% hint style="warning" %}
-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.
-{% endhint %}
-
-{% openapi src="https://connect.getseam.com/openapi.json" path="/connected_accounts/delete" method="post" %}
-[https://connect.getseam.com/openapi.json](https://connect.getseam.com/openapi.json)
-{% endopenapi %}
-
-### Code Example
-
-{% tabs %}
-{% tab title="Python" %}
-```python
-seam.connected_accounts.delete("f891acfd-d228-4bb2-8399-c0f7e24e6b16")
-```
-{% endtab %}
-
-{% tab title="cURL (bash)" %}
-```bash
-curl -X 'POST' \
- 'https://connect.getseam.com/connected_accounts/delete' \
- -H 'accept: application/json' \
- -H 'Authorization: Bearer ${API_KEY}' \
- -H 'Content-Type: application/json' \
- -d '{
- "connected_account_id": "f891acfd-d228-4bb2-8399-c0f7e24e6b16"
-}'
-
-# {
-# "ok": true
-# }
-```
-{% endtab %}
-
-{% tab title="JavaScript" %}
-```javascript
-await seam.connectedAccounts.delete({
- connected_account_id: "f891acfd-d228-4bb2-8399-c0f7e24e6b16"
-})
-```
-{% endtab %}
-
-{% tab title="PHP" %}
-```php
-$seam->connected_accounts->delete("f891acfd-d228-4bb2-8399-c0f7e24e6b16");
-```
-{% endtab %}
-
-{% tab title="Java" %}
-```java
-seam.connectedAccounts().delete(ConnectedAccountsDeleteRequest.builder()
- .connectedAccountId("f891acfd-d228-4bb2-8399-c0f7e24e6b16")
- .build());
-```
-{% endtab %}
-{% endtabs %}
-
-### Parameters
-
-| `connected_account_id` | type: string | ID of the Connected Account |
-| ---------------------- | ------------ | --------------------------- |
-
-### Response
-
-This section shows the JSON response returned by the API. Since each language encapsulates this response inside objects specific to that language and/or implementation, the actual type in your language might differ from what’s written here.
-
-#### JSON format
-
-{% tabs %}
-{% tab title="JSON" %}
-```json
-{
- "ok": true
-}
-```
-{% endtab %}
-{% endtabs %}
diff --git a/docs/api-clients/connected_accounts/get.md b/docs/api-clients/connected_accounts/get.md
deleted file mode 100644
index 1c05a0fe5..000000000
--- a/docs/api-clients/connected_accounts/get.md
+++ /dev/null
@@ -1,108 +0,0 @@
----
-description: Get a Connected Account by its ID
----
-
-# Get a Connected Account
-
-{% swagger src="https://connect.getseam.com/openapi.json" path="/connected_accounts/get" method="post" %}
-[https://connect.getseam.com/openapi.json](https://connect.getseam.com/openapi.json)
-{% endswagger %}
-
-### Code Examples
-
-#### Retrieving using "connected\_account\_id"
-
-{% tabs %}
-{% tab title="Javascript" %}
-```javascript
-const connectedAccount = await seam.connectedAccounts.get({
- connected_account_id: "123e4567-e89b-12d3-a456-426614174000"
-})
-
-console.log(connectedAccount)
-```
-{% endtab %}
-
-{% tab title="Python" %}
-```python
-# Get a connected account by its ID
-connected_account = seam.connected_accounts.get("123e4567-e89b-12d3-a456-426614174000")
-
-# Print the details of the connected account
-print(connected_account)
-```
-{% endtab %}
-
-{% tab title="Ruby" %}
-```ruby
-# Use the Seam SDK to get a connected account by its id
-connected_account = seam.connected_accounts.get(
- connected_account_id: "123e4567-e89b-12d3-a456-426614174000"
-)
-
-# Print the details of the connected account
-puts connected_account
-```
-{% endtab %}
-
-{% tab title="PHP" %}
-```php
-// Get a connected account by its ID
-$connected_account = $seam->connected_accounts->get(
- "123e4567-e89b-12d3-a456-426614174000"
-);
-
-echo json_encode($connected_account);
-```
-{% endtab %}
-{% endtabs %}
-
-#### Retrieving using "email"
-
-{% tabs %}
-{% tab title="Ruby" %}
-```ruby
-connect_account = seam.connected_accounts.get(
- email: "jane@example.com"
-)
-
-puts connect_account
-#
-```
-{% endtab %}
-{% endtabs %}
-
-### Parameters
-
-| `connected_account_id` | type: string
Optional
|
ID of the Connected Account
|
-| ---------------------- | ------------------------------- | -------------------------------------- |
-| `email` | type: string
Optional
| Email associated with the account |
-
-### Response
-
-This section shows the JSON response returned by the API. Since each language encapsulates this response inside objects specific to that language and/or implementation, the actual type in your language might differ from what’s written here.
-
-#### JSON format
-
-{% tabs %}
-{% tab title="JSON" %}
-```json
-{
- "connected_account": {
- "connected_account_id": "9dcedcb3-5ede-4b66-9e07-f9ef97b3c29b",
- "created_at": "2022-08-24T10:38:05.128Z",
- "user_identifier": {
- "email": "jane@example.com"
- },
- "account_type": "schlage",
- "errors": []
- },
- "ok": true
-}
-```
-{% endtab %}
-{% endtabs %}
diff --git a/docs/api-clients/connected_accounts/list.md b/docs/api-clients/connected_accounts/list.md
deleted file mode 100644
index 265c165ec..000000000
--- a/docs/api-clients/connected_accounts/list.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-description: Get all Connected accounts
----
-
-# List Connected Accounts
-
-Returns a list of all [connected accounts](./).
-
-{% openapi src="https://connect.getseam.com/openapi.json" path="/connected_accounts/list" method="post" %}
-[https://connect.getseam.com/openapi.json](https://connect.getseam.com/openapi.json)
-{% endopenapi %}
-
-## Request
-
-To filter the list of returned connected accounts by a specific set of [custom metadata](../../core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview.md) or a user identifier key, include `custom_metadata_has` or [`user_identifier_key`](../client_sessions/#client_session-properties) in the request body. If you include `custom_metadata_has`, specify the desired metadata filters as a JSON object containing key:value pairs.
-
-### Request Body Parameters
-
-| Parameter | Type | Description |
|---|
user_identifier_key | String Optional | The internal user ID (your own internal ID for a user) by which you want to filter connected accounts. |
custom_metadata_has | JSON object Optional | Set of key:value custom metadata pairs by which you want to filter connected accounts. For more information, see Adding Custom Metadata to Connected Accounts. |
-
-### Sample Request
-
-{% tabs %}
-{% tab title="Python" %}
-```python
-connected_accounts = seam.connected_accounts.list()
-```
-{% endtab %}
-
-{% tab title="cURL (bash)" %}
-```bash
-# Use GET or POST.
-curl -X 'GET' \
- 'https://connect.getseam.com/connected_accounts/list' \
- -H 'accept: application/json' \
- -H 'Authorization: Bearer ${API_KEY}' \
- -H 'Content-Type: application/json' \
- -d '{}'
-```
-{% endtab %}
-
-{% tab title="Javascript" %}
-```javascript
-await seam.connectedAccounts.list();
-```
-{% endtab %}
-
-{% tab title="Ruby" %}
-```ruby
-seam.connected_accounts.list()
-```
-{% endtab %}
-
-{% tab title="PHP" %}
-```php
-$connected_accounts = $seam->connected_accounts->list();
-echo json_encode($connected_accounts);
-```
-{% endtab %}
-{% endtabs %}
-
-## Response
-
-Returns a `connected_accounts` array, in which each returned `connected_account` contains the following properties:
-
-| Property | Description |
-| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `connected_account_id` | ID of the connected account |
-| `created_at` | Date and time at which the connected account was created |
-| `user_identifier` | Unique identifier for the connected account, such as an email address or phone number |
-| `account_type` | Type of manufacturer to which the connected account belongs, such as `august`, `schlage`, `yale`, `salto`, `smartthings`, and so on |
-| `account_type_display_name` | Version of `account_type` that can be displayed in a user interface |
-| `custom_metadata` | Set of `custom_metadata` set on the [Connect Webview](../../core-concepts/connect-webviews/) that connected the account. You can also modify or add to this `custom_metadata`. |
-| `automatically_manage_new_devices` | Indicates whether Seam should import all new devices for the connected account to make these devices available for use and management by the Seam API.
You initially specify the value for this property when creating the corresponding Connect Webview.
|
-
-### Sample Response
-
-{% tabs %}
-{% tab title="JSON" %}
-```json
-{
- "connected_accounts": [
- {
- "connected_account_id": "c993818b-bf3c-4836-bef4-9a76d89bf1d3",
- "created_at": "2024-01-05T07:20:07.692Z",
- "user_identifier": {
- "username": "jane"
- },
- "account_type": "visionline",
- "account_type_display_name": "Visionline",
- "errors": [],
- "warnings": [],
- "custom_metadata": {
- "internal_account_id": "user-1"
- },
- "automatically_manage_new_devices": true
- },
- ...
- ],
- "ok": true
-}
-```
-{% endtab %}
-{% endtabs %}
diff --git a/docs/api-clients/connected_accounts/update.md b/docs/api-clients/connected_accounts/update.md
deleted file mode 100644
index 0af332eb7..000000000
--- a/docs/api-clients/connected_accounts/update.md
+++ /dev/null
@@ -1,125 +0,0 @@
----
-description: Update the properties of a specified connected account.
----
-
-# Update a Connected Account
-
-Updates any of the following properties of a specified [connected account](./):
-
-* `automatically_manage_new_devices`
-* `custom_metadata`
-
-{% openapi src="https://connect.getseam.com/openapi.json" path="/connected_accounts/update" method="post" %}
-[https://connect.getseam.com/openapi.json](https://connect.getseam.com/openapi.json)
-{% endopenapi %}
-
-## Request
-
-Specify the desired connected account by including the corresponding `connected_account_id` in the request body. In addition, in the request body, include the properties that you want to update, along with the desired replacement values.
-
-### Request Body Parameters
-
-| Parameter | Type | Description |
|---|
connected_account_id | String Required | ID of the desired connected account |
automatically_manage_new_devices | Boolean Optional | Indicates whether Seam should import all new devices for the connected account to make these devices available for use and management by the Seam API. You initially specify the value for this property when creating the corresponding Connect Webview. |
custom_metadata | JSON object Optional | Specify up to 50 keys, with key names up to 40 characters long. Accepts string or Boolean values. Strings are limited to 500 characters. For more information, see Adding Custom Metadata to Connected Accounts. |
-
-### Sample Request
-
-{% tabs %}
-{% tab title="Python" %}
-```python
-connected_account_update = seam.connected_accounts.update(
- connected_account_id = "6e1cad57-b244-40ca-b4f3-30a46c8000d4",
- automatically_manage_new_devices = True,
- custom_metadata = {
- "internal_account_id": "user-1"
- }
-)
-
-pprint(connected_account_update)
-```
-{% endtab %}
-
-{% tab title="cURL (bash)" %}
-```bash
-curl -X 'POST' \
- 'https://connect.getseam.com/connected_accounts/update' \
- -H 'accept: application/json' \
- -H 'Authorization: Bearer ${API_KEY}' \
- -H 'Content-Type: application/json' \
- -d '{
- "connected_account_id": "6e1cad57-b244-40ca-b4f3-30a46c8000d4",
- "automatically_manage_new_devices": true,
- "custom_metadata": {
- "internal_account_id": "user-1"
- }
-}'
-```
-{% endtab %}
-
-{% tab title="JavaScript" %}
-```javascript
-const connectedAccountUpdate = await seam.connectedAccounts.update({
- connected_account_id: "6e1cad57-b244-40ca-b4f3-30a46c8000d4",
- automatically_manage_new_devices: true,
- custom_metadata: {
- "internal_account_id": "user-1"
- }
-})
-
-console.log(connectedAccountUpdate)
-```
-{% endtab %}
-
-{% tab title="Ruby" %}
-```ruby
-connected_account_update = client.connected_accounts.update(
- connected_account_id: "6e1cad57-b244-40ca-b4f3-30a46c8000d4",
- automatically_manage_new_devices: true,
- custom_metadata: {
- "internal_account_id": "user-1"
- }
-)
-
-puts connected_account_update.inspect
-```
-{% endtab %}
-
-{% tab title="PHP" %}
-```php
-$connected_account_update = $seam->connected_accounts->update(
- connected_account_id: "6e1cad57-b244-40ca-b4f3-30a46c8000d4",
- automatically_manage_new_devices: true,
- custom_metadata: array('internal_account_id' => 'user-1')
-)
-echo json_encode($connected_account_update, JSON_PRETTY_PRINT);
-```
-{% endtab %}
-
-{% tab title="Java" %}
-```java
-Map customMetadata =
- Map.of("internal_account_id", CustomMetadataValue.of(Optional.of("user-1")));
-
-seam.connectedAccounts().update(ConnectedAccountsUpdateRequest.builder()
- .connectedAccountId("6e1cad57-b244-40ca-b4f3-30a46c8000d4")
- .automaticallyManageNewDevices(true)
- .custom_metadata(customMetadata)
- .build());
-```
-{% endtab %}
-{% endtabs %}
-
-## Response
-
-Returns a Boolean `ok` status indicator.
-
-### Sample Response
-
-{% tabs %}
-{% tab title="JSON" %}
-```json
-{
- "ok": true
-}
-```
-{% endtab %}
-{% endtabs %}
diff --git a/docs/api-overview/overview.md b/docs/api-overview/overview.md
index 9349f074f..ad0511cf1 100644
--- a/docs/api-overview/overview.md
+++ b/docs/api-overview/overview.md
@@ -31,4 +31,4 @@ See the following reference topics:
* [Events](../api-clients/events/)
* [Action Attempts](../api-clients/action_attempts/)
-* [Connected Accounts](../api-clients/connected_accounts/)
+* [Connected Accounts](../api/connected_accounts/)
diff --git a/docs/api/_blueprint.json b/docs/api/_blueprint.json
index 1218b2036..ddb4591ab 100644
--- a/docs/api/_blueprint.json
+++ b/docs/api/_blueprint.json
@@ -11306,7 +11306,86 @@
"personal_access_token"
],
"workspaceScope": "required",
- "codeSamples": []
+ "codeSamples": [
+ {
+ "title": "Delete a connected account",
+ "description": "Specify the `connected_account_id` of the connected account that you want to delete.",
+ "request": {
+ "path": "/connected_accounts/delete",
+ "parameters": {
+ "connected_account_id": "23e4eb21-6e93-48c4-a077-bf503246d47c"
+ }
+ },
+ "response": {
+ "body": null
+ },
+ "code": {
+ "javascript": {
+ "title": "JavaScript",
+ "request": "await seam.connectedAccounts.delete({\n connected_account_id: \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n});",
+ "response": "// void",
+ "request_syntax": "javascript",
+ "response_syntax": "javascript"
+ },
+ "python": {
+ "title": "Python",
+ "request": "seam.connected_accounts.delete(\n connected_account_id=\"23e4eb21-6e93-48c4-a077-bf503246d47c\"\n)",
+ "response": "None",
+ "request_syntax": "python",
+ "response_syntax": "python"
+ },
+ "ruby": {
+ "title": "Ruby",
+ "request": "seam.connected_accounts.delete(connected_account_id: \"23e4eb21-6e93-48c4-a077-bf503246d47c\")",
+ "response": "nil",
+ "request_syntax": "ruby",
+ "response_syntax": "ruby"
+ },
+ "php": {
+ "title": "PHP",
+ "request": "connected_accounts->delete(\n connected_account_id: \"23e4eb21-6e93-48c4-a077-bf503246d47c\"\n);",
+ "response": "null",
+ "request_syntax": "php",
+ "response_syntax": "php"
+ },
+ "seam_cli": {
+ "title": "Seam CLI",
+ "request": "seam connected-accounts delete --connected_account_id \"23e4eb21-6e93-48c4-a077-bf503246d47c\"",
+ "response": "{}",
+ "request_syntax": "bash",
+ "response_syntax": "json"
+ },
+ "go": {
+ "title": "Go",
+ "request": "package main\n\nimport api \"github.com/seamapi/go\"\n\nfunc main() {\n\tclient.ConnectedAccounts.Delete(\n\t\tcontext.Background(),\n\t\tapi.ConnectedAccountsDeleteRequest{\n\t\t\tConnectedAccountId: api.String(\"23e4eb21-6e93-48c4-a077-bf503246d47c\"),\n\t\t},\n\t)\n}",
+ "response": "nil",
+ "request_syntax": "go",
+ "response_syntax": "go"
+ },
+ "java": {
+ "title": "Java",
+ "request": "seam.connectedAccounts().delete(ConnectedAccountsDeleteRequest.builder().connectedAccountId(\"23e4eb21-6e93-48c4-a077-bf503246d47c\").build());",
+ "response": "{}",
+ "request_syntax": "java",
+ "response_syntax": "json"
+ },
+ "csharp": {
+ "title": "C#",
+ "request": "seam.ConnectedAccounts.Delete(connectedAccountId: \"23e4eb21-6e93-48c4-a077-bf503246d47c\")",
+ "response": "{}",
+ "request_syntax": "csharp",
+ "response_syntax": "json"
+ },
+ "curl": {
+ "title": "cURL",
+ "request": "curl --include --request POST \"https://connect.getseam.com/connected_accounts/delete\" \\\n --header \"Authorization: Bearer $SEAM_API_KEY\" \\\n --json @- < \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\" => \"2022-08-24T10:38:05.128Z\",\n \"account_type\" => \"schlage\",\n },\n]",
+ "request_syntax": "ruby",
+ "response_syntax": "ruby"
+ },
+ "php": {
+ "title": "PHP",
+ "request": "connected_accounts->get(\n connected_account_id: \"23e4eb21-6e93-48c4-a077-bf503246d47c\"\n);",
+ "response": " \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\" => \"2022-08-24T10:38:05.128Z\",\n \"account_type\" => \"schlage\",\n ],\n];",
+ "request_syntax": "php",
+ "response_syntax": "php"
+ },
+ "seam_cli": {
+ "title": "Seam CLI",
+ "request": "seam connected-accounts get --connected_account_id \"23e4eb21-6e93-48c4-a077-bf503246d47c\"",
+ "response": "[\n {\n \"connected_account_id\": \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\": \"2022-08-24T10:38:05.128Z\",\n \"account_type\": \"schlage\"\n }\n]",
+ "request_syntax": "bash",
+ "response_syntax": "json"
+ },
+ "go": {
+ "title": "Go",
+ "request": "package main\n\nimport api \"github.com/seamapi/go\"\n\nfunc main() {\n\tclient.ConnectedAccounts.Get(\n\t\tcontext.Background(),\n\t\tapi.ConnectedAccountsGetRequest{\n\t\t\tConnectedAccountId: api.String(\"23e4eb21-6e93-48c4-a077-bf503246d47c\"),\n\t\t},\n\t)\n}",
+ "response": "[]api.ConnectedAccount{api.ConnectedAccount{ConnectedAccountId: \"23e4eb21-6e93-48c4-a077-bf503246d47c\", CreatedAt: \"2022-08-24T10:38:05.128Z\", AccountType: \"schlage\"}}",
+ "request_syntax": "go",
+ "response_syntax": "go"
+ },
+ "java": {
+ "title": "Java",
+ "request": "seam.connectedAccounts().get(ConnectedAccountsGetRequest.builder().connectedAccountId(\"23e4eb21-6e93-48c4-a077-bf503246d47c\").build());",
+ "response": "[\n {\n \"connected_account_id\": \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\": \"2022-08-24T10:38:05.128Z\",\n \"account_type\": \"schlage\"\n }\n]",
+ "request_syntax": "java",
+ "response_syntax": "json"
+ },
+ "csharp": {
+ "title": "C#",
+ "request": "seam.ConnectedAccounts.Get(connectedAccountId: \"23e4eb21-6e93-48c4-a077-bf503246d47c\")",
+ "response": "[\n {\n \"connected_account_id\": \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\": \"2022-08-24T10:38:05.128Z\",\n \"account_type\": \"schlage\"\n }\n]",
+ "request_syntax": "csharp",
+ "response_syntax": "json"
+ },
+ "curl": {
+ "title": "cURL",
+ "request": "curl --include --request POST \"https://connect.getseam.com/connected_accounts/get\" \\\n --header \"Authorization: Bearer $SEAM_API_KEY\" \\\n --json @- < \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\" => \"2022-08-24T10:38:05.128Z\",\n \"account_type\" => \"schlage\",\n },\n {\n \"connected_account_id\" => \"dc0df710-376c-4ec3-9b2b-2b7f788bdfa8\",\n \"created_at\" => \"2022-07-04T08:40:02.110Z\",\n \"account_type\" => \"kwikset\",\n },\n]",
+ "request_syntax": "ruby",
+ "response_syntax": "ruby"
+ },
+ "php": {
+ "title": "PHP",
+ "request": "connected_accounts->list();",
+ "response": " \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\" => \"2022-08-24T10:38:05.128Z\",\n \"account_type\" => \"schlage\",\n ],\n [\n \"connected_account_id\" => \"dc0df710-376c-4ec3-9b2b-2b7f788bdfa8\",\n \"created_at\" => \"2022-07-04T08:40:02.110Z\",\n \"account_type\" => \"kwikset\",\n ],\n];",
+ "request_syntax": "php",
+ "response_syntax": "php"
+ },
+ "seam_cli": {
+ "title": "Seam CLI",
+ "request": "seam connected-accounts list",
+ "response": "[\n {\n \"connected_account_id\": \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\": \"2022-08-24T10:38:05.128Z\",\n \"account_type\": \"schlage\"\n },\n {\n \"connected_account_id\": \"dc0df710-376c-4ec3-9b2b-2b7f788bdfa8\",\n \"created_at\": \"2022-07-04T08:40:02.110Z\",\n \"account_type\": \"kwikset\"\n }\n]",
+ "request_syntax": "bash",
+ "response_syntax": "json"
+ },
+ "go": {
+ "title": "Go",
+ "request": "package main\n\nfunc main() {\n\tclient.ConnectedAccounts.List(context.Background())\n}",
+ "response": "[]api.ConnectedAccount{api.ConnectedAccount{ConnectedAccountId: \"23e4eb21-6e93-48c4-a077-bf503246d47c\", CreatedAt: \"2022-08-24T10:38:05.128Z\", AccountType: \"schlage\"}, api.ConnectedAccount{ConnectedAccountId: \"dc0df710-376c-4ec3-9b2b-2b7f788bdfa8\", CreatedAt: \"2022-07-04T08:40:02.110Z\", AccountType: \"kwikset\"}}",
+ "request_syntax": "go",
+ "response_syntax": "go"
+ },
+ "java": {
+ "title": "Java",
+ "request": "seam.connectedAccounts().list();",
+ "response": "[\n {\n \"connected_account_id\": \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\": \"2022-08-24T10:38:05.128Z\",\n \"account_type\": \"schlage\"\n },\n {\n \"connected_account_id\": \"dc0df710-376c-4ec3-9b2b-2b7f788bdfa8\",\n \"created_at\": \"2022-07-04T08:40:02.110Z\",\n \"account_type\": \"kwikset\"\n }\n]",
+ "request_syntax": "java",
+ "response_syntax": "json"
+ },
+ "csharp": {
+ "title": "C#",
+ "request": "seam.ConnectedAccounts.List()",
+ "response": "[\n {\n \"connected_account_id\": \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\": \"2022-08-24T10:38:05.128Z\",\n \"account_type\": \"schlage\"\n },\n {\n \"connected_account_id\": \"dc0df710-376c-4ec3-9b2b-2b7f788bdfa8\",\n \"created_at\": \"2022-07-04T08:40:02.110Z\",\n \"account_type\": \"kwikset\"\n }\n]",
+ "request_syntax": "csharp",
+ "response_syntax": "json"
+ },
+ "curl": {
+ "title": "cURL",
+ "request": "curl --include --request POST \"https://connect.getseam.com/connected_accounts/list\" \\\n --header \"Authorization: Bearer $SEAM_API_KEY\"",
+ "response": "{\n \"connected_accounts\": [\n {\n \"connected_account_id\": \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n \"created_at\": \"2022-08-24T10:38:05.128Z\",\n \"account_type\": \"schlage\"\n },\n {\n \"connected_account_id\": \"dc0df710-376c-4ec3-9b2b-2b7f788bdfa8\",\n \"created_at\": \"2022-07-04T08:40:02.110Z\",\n \"account_type\": \"kwikset\"\n }\n ]\n}",
+ "request_syntax": "bash",
+ "response_syntax": "json"
+ }
+ }
+ }
+ ]
},
{
"title": "Sync a Connected Account",
@@ -11523,7 +11779,86 @@
"personal_access_token"
],
"workspaceScope": "required",
- "codeSamples": []
+ "codeSamples": [
+ {
+ "title": "Sync a connected account",
+ "description": "Request an on-demand sync of the devices and systems in a connected account.",
+ "request": {
+ "path": "/connected_accounts/sync",
+ "parameters": {
+ "connected_account_id": "23e4eb21-6e93-48c4-a077-bf503246d47c"
+ }
+ },
+ "response": {
+ "body": null
+ },
+ "code": {
+ "javascript": {
+ "title": "JavaScript",
+ "request": "await seam.connectedAccounts.sync({\n connected_account_id: \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n});",
+ "response": "// void",
+ "request_syntax": "javascript",
+ "response_syntax": "javascript"
+ },
+ "python": {
+ "title": "Python",
+ "request": "seam.connected_accounts.sync(\n connected_account_id=\"23e4eb21-6e93-48c4-a077-bf503246d47c\"\n)",
+ "response": "None",
+ "request_syntax": "python",
+ "response_syntax": "python"
+ },
+ "ruby": {
+ "title": "Ruby",
+ "request": "seam.connected_accounts.sync(connected_account_id: \"23e4eb21-6e93-48c4-a077-bf503246d47c\")",
+ "response": "nil",
+ "request_syntax": "ruby",
+ "response_syntax": "ruby"
+ },
+ "php": {
+ "title": "PHP",
+ "request": "connected_accounts->sync(\n connected_account_id: \"23e4eb21-6e93-48c4-a077-bf503246d47c\"\n);",
+ "response": "null",
+ "request_syntax": "php",
+ "response_syntax": "php"
+ },
+ "seam_cli": {
+ "title": "Seam CLI",
+ "request": "seam connected-accounts sync --connected_account_id \"23e4eb21-6e93-48c4-a077-bf503246d47c\"",
+ "response": "{}",
+ "request_syntax": "bash",
+ "response_syntax": "json"
+ },
+ "go": {
+ "title": "Go",
+ "request": "package main\n\nimport api \"github.com/seamapi/go\"\n\nfunc main() {\n\tclient.ConnectedAccounts.Sync(\n\t\tcontext.Background(),\n\t\tapi.ConnectedAccountsSyncRequest{\n\t\t\tConnectedAccountId: api.String(\"23e4eb21-6e93-48c4-a077-bf503246d47c\"),\n\t\t},\n\t)\n}",
+ "response": "nil",
+ "request_syntax": "go",
+ "response_syntax": "go"
+ },
+ "java": {
+ "title": "Java",
+ "request": "seam.connectedAccounts().sync(ConnectedAccountsSyncRequest.builder().connectedAccountId(\"23e4eb21-6e93-48c4-a077-bf503246d47c\").build());",
+ "response": "{}",
+ "request_syntax": "java",
+ "response_syntax": "json"
+ },
+ "csharp": {
+ "title": "C#",
+ "request": "seam.ConnectedAccounts.Sync(connectedAccountId: \"23e4eb21-6e93-48c4-a077-bf503246d47c\")",
+ "response": "{}",
+ "request_syntax": "csharp",
+ "response_syntax": "json"
+ },
+ "curl": {
+ "title": "cURL",
+ "request": "curl --include --request POST \"https://connect.getseam.com/connected_accounts/sync\" \\\n --header \"Authorization: Bearer $SEAM_API_KEY\" \\\n --json @- <connected_accounts->update(\n connected_account_id: \"23e4eb21-6e93-48c4-a077-bf503246d47c\",\n automatically_manage_new_devices: true\n);",
+ "response": "null",
+ "request_syntax": "php",
+ "response_syntax": "php"
+ },
+ "seam_cli": {
+ "title": "Seam CLI",
+ "request": "seam connected-accounts update --connected_account_id \"23e4eb21-6e93-48c4-a077-bf503246d47c\" --automatically_manage_new_devices true",
+ "response": "{}",
+ "request_syntax": "bash",
+ "response_syntax": "json"
+ },
+ "go": {
+ "title": "Go",
+ "request": "package main\n\nimport api \"github.com/seamapi/go\"\n\nfunc main() {\n\tclient.ConnectedAccounts.Update(\n\t\tcontext.Background(),\n\t\tapi.ConnectedAccountsUpdateRequest{\n\t\t\tConnectedAccountId: api.String(\"23e4eb21-6e93-48c4-a077-bf503246d47c\"),\n\t\t\tAutomaticallyManageNewDevices: api.Bool(true),\n\t\t},\n\t)\n}",
+ "response": "nil",
+ "request_syntax": "go",
+ "response_syntax": "go"
+ },
+ "java": {
+ "title": "Java",
+ "request": "seam.connectedAccounts().update(ConnectedAccountsUpdateRequest.builder().connectedAccountId(\"23e4eb21-6e93-48c4-a077-bf503246d47c\")\n.automaticallyManageNewDevices(true).build());",
+ "response": "{}",
+ "request_syntax": "java",
+ "response_syntax": "json"
+ },
+ "csharp": {
+ "title": "C#",
+ "request": "seam.ConnectedAccounts.Update(connectedAccountId: \"23e4eb21-6e93-48c4-a077-bf503246d47c\", automaticallyManageNewDevices: true)",
+ "response": "{}",
+ "request_syntax": "csharp",
+ "response_syntax": "json"
+ },
+ "curl": {
+ "title": "cURL",
+ "request": "curl --include --request POST \"https://connect.getseam.com/connected_accounts/update\" \\\n --header \"Authorization: Bearer $SEAM_API_KEY\" \\\n --json @- <
+account_disconnected
+
+Account is disconnected.
+
+ **`created_at`** *Datetime*
+
+
+ Date and time at which Seam created the error.
+
+
+ ---
+
+ **`error_code`** *Enum*
+
+
+ Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+ Enum values:
+
+ - account_disconnected
+
+
+ ---
+
+ **`is_bridge_error`** *Boolean*
+
+
+ Indicates whether the error is related to Seam Bridge.
+
+
+ ---
+
+ **`is_connected_account_error`** *Boolean*
+
+
+ Indicates whether the error is related specifically to the connected account.
+
+
+ ---
+
+ **`message`** *String*
+
+
+ Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
+
+
+
+
+invalid_credentials
+
+Credentials provided were invalid.
+
+ **`created_at`** *Datetime*
+
+
+ Date and time at which Seam created the error.
+
+
+ ---
+
+ **`error_code`** *Enum*
+
+
+ Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+ Enum values:
+
+ - invalid_credentials
+
+
+ ---
+
+ **`is_bridge_error`** *Boolean*
+
+
+ Indicates whether the error is related to Seam Bridge.
+
+
+ ---
+
+ **`is_connected_account_error`** *Boolean*
+
+
+ Indicates whether the error is related specifically to the connected account.
+
+
+ ---
+
+ **`message`** *String*
+
+
+ Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
+
+
+
+
+bridge_disconnected
+
+Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected).
+
+ **`created_at`** *Datetime*
+
+
+ Date and time at which Seam created the error.
+
+
+ ---
+
+ **`error_code`** *Enum*
+
+
+ Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+ Enum values:
+
+ - bridge_disconnected
+
+
+ ---
+
+ **`is_bridge_error`** *Boolean*
+
+
+ Indicates whether the error is related to Seam Bridge.
+
+
+ ---
+
+ **`is_connected_account_error`** *Boolean*
+
+
+ Indicates whether the error is related specifically to the connected account.
+
+
+ ---
+
+ **`message`** *String*
+
+
+ Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
+
+
+
+
+salto_ks_subscription_limit_exceeded
+
+Indicates that the maximum number of users allowed for the site has been reached. This means that new access codes cannot be created. Contact Salto support to increase the user limit.
+
+ **`created_at`** *Datetime*
+
+
+ Date and time at which Seam created the error.
+
+
+ ---
+
+ **`error_code`** *Enum*
+
+
+ Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
+
+ Enum values:
+
+ - salto_ks_subscription_limit_exceeded
+
+
+ ---
+
+ **`is_bridge_error`** *Boolean*
+
+
+ Indicates whether the error is related to Seam Bridge.
+
+
+ ---
+
+ **`is_connected_account_error`** *Boolean*
+
+
+ Indicates whether the error is related specifically to the connected account.
+
+
+ ---
+
+ **`message`** *String*
+
+
+ Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
+
+
+ ---
+
+ **`salto_ks_metadata`** *Object*
+
+
+ Salto KS metadata associated with the connected account that has an error.
+
+ Child Properties
+
+ - sites List of Objects
+
+ Salto sites associated with the connected account that has an error.
+
+ - site_id String
+
+ ID of a Salto site associated with the connected account that has an error.
+
+
+ - site_name String
+
+ Name of a Salto site associated with the connected account that has an error.
+
+
+ - site_user_subscription_limit Number
+
+ Subscription limit of site users for a Salto site associated with the connected account that has an error.
+
+
+ - subscribed_site_user_count Number
+
+ Count of subscribed site users for a Salto site associated with the connected account that has an error.
+
+
+
+
+
+---
+
+**`user_identifier`** *Object*
+
+User identifier associated with the connected account.
+
+
+
+
+ Child Properties
+
+ - api_url String
+
+ API URL for the user identifier associated with the connected account.
+
+ - email String
+
+ Email address of the user identifier associated with the connected account.
+
+ - exclusive Boolean
+
+ Indicates whether the user identifier associated with the connected account is exclusive.
+
+ - phone String
+
+ Phone number of the user identifier associated with the connected account.
+
+ - username String
+
+ Username of the user identifier associated with the connected account.
+
+
+
+---
+
+[**`warnings`**](./#warnings) *List* *of Objects*
+
+Warnings associated with the connected account.
+
+
+
+
+The specific structure of each object in this list depends on the value of its `warning_code` field.
+
+Variants:
+
+scheduled_maintenance_window
+
+Scheduled downtime planned for the connected account.
+
+ **`created_at`** *Datetime*
+
+
+ Date and time at which Seam created the warning.
+
+
+ ---
+
+ **`message`** *String*
+
+
+ Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
+
+
+ ---
+
+ **`warning_code`** *Enum*
+
+
+ Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+ Enum values:
+
+ - scheduled_maintenance_window
+
+
+
+
+unknown_issue_with_connected_account
+
+An unknown issue occurred while syncing the state of the connected account with the provider. This issue may affect the proper functioning of one or more resources in the account.
+
+ **`created_at`** *Datetime*
+
+
+ Date and time at which Seam created the warning.
+
+
+ ---
+
+ **`message`** *String*
+
+
+ Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
+
+
+ ---
+
+ **`warning_code`** *Enum*
+
+
+ Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+ Enum values:
+
+ - unknown_issue_with_connected_account
+
+
+
+
+salto_ks_subscription_limit_almost_reached
+
+Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site.
+
+ **`created_at`** *Datetime*
+
+
+ Date and time at which Seam created the warning.
+
+
+ ---
+
+ **`message`** *String*
+
+
+ Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
+
+
+ ---
+
+ **`salto_ks_metadata`** *Object*
+
+
+ Salto KS metadata associated with the connected account that has a warning.
+
+ Child Properties
+
+ - sites List of Objects
+
+ Salto sites associated with the connected account that has a warning.
+
+ - site_id String
+
+ ID of a Salto site associated with the connected account that has a warning.
+
+
+ - site_name String
+
+ Name of a Salto site associated with the connected account that has a warning.
+
+
+ - site_user_subscription_limit Number
+
+ Subscription limit of site users for a Salto site associated with the connected account that has a warning.
+
+
+ - subscribed_site_user_count Number
+
+ Count of subscribed site users for a Salto site associated with the connected account that has a warning.
+
+
+
+ ---
+
+ **`warning_code`** *Enum*
+
+
+ Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
+
+ Enum values:
+
+ - salto_ks_subscription_limit_almost_reached
+
+
+
+
+---
+
+
+## Errors
+
+**`account_disconnected`**
+
+Account is disconnected.
+
+---
+
+**`invalid_credentials`**
+
+Credentials provided were invalid.
+
+---
+
+**`bridge_disconnected`**
+
+Indicates that the Seam API cannot communicate with [Seam Bridge](../../capability-guides/seam-bridge.md), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](../../capability-guides/access-systems/troubleshooting-your-access-control-system.md#acs_system.errors.seam_bridge_disconnected).
+
+---
+
+**`salto_ks_subscription_limit_exceeded`**
+
+Indicates that the maximum number of users allowed for the site has been reached. This means that new access codes cannot be created. Contact Salto support to increase the user limit.
+
+---
+
+
+## Warnings
+
+**`scheduled_maintenance_window`**
+
+Scheduled downtime planned for the connected account.
+
+---
+
+**`unknown_issue_with_connected_account`**
+
+An unknown issue occurred while syncing the state of the connected account with the provider. This issue may affect the proper functioning of one or more resources in the account.
+
+---
+
+**`salto_ks_subscription_limit_almost_reached`**
+
+Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site.
+
+---
+
+
+## Events
+
+**`connected_account.connected`**
+
+A [connected account](../../core-concepts/connected-accounts/README.md) was connected for the first time or was reconnected after being disconnected.
+
+
+
+Properties
+
+connect_webview_id UUID
+
+ ID of the Connect Webview associated with the event.
+
+connected_account_id UUID
+
+ ID of the affected connected account.
+
+created_at Datetime
+
+ Date and time at which the event was created.
+
+event_id UUID
+
+ ID of the event.
+
+event_type Enum
+
+ Value: `connected_account.connected`
+
+occurred_at Datetime
+
+ Date and time at which the event occurred.
+
+workspace_id UUID
+
+ ID of the workspace associated with the event.
+
+
+---
+
+**`connected_account.created`**
+
+A [connected account](../../core-concepts/connected-accounts/README.md) was created.
+
+
+
+Properties
+
+connect_webview_id UUID
+
+ ID of the Connect Webview associated with the event.
+
+connected_account_id UUID
+
+ ID of the affected connected account.
+
+created_at Datetime
+
+ Date and time at which the event was created.
+
+event_id UUID
+
+ ID of the event.
+
+event_type Enum
+
+ Value: `connected_account.created`
+
+occurred_at Datetime
+
+ Date and time at which the event occurred.
+
+workspace_id UUID
+
+ ID of the workspace associated with the event.
+
+
+---
+
+**`connected_account.successful_login`**
+
+A [connected account](../../core-concepts/connected-accounts/README.md) had a successful login using a [Connect Webview](https://docs.seam.co/latest/ui-components/connect-webviews).
+
+
+
+Properties
+
+connect_webview_id UUID
+
+ ID of the Connect Webview associated with the event.
+
+connected_account_id UUID
+
+ ID of the affected connected account.
+
+created_at Datetime
+
+ Date and time at which the event was created.
+
+event_id UUID
+
+ ID of the event.
+
+event_type Enum
+
+ Value: `connected_account.successful_login`
+
+occurred_at Datetime
+
+ Date and time at which the event occurred.
+
+workspace_id UUID
+
+ ID of the workspace associated with the event.
+
+
+---
+
+**`connected_account.disconnected`**
+
+A [connected account](../../core-concepts/connected-accounts/README.md) was disconnected.
+
+
+
+Properties
+
+connected_account_id UUID
+
+ ID of the affected connected account.
+
+created_at Datetime
+
+ Date and time at which the event was created.
+
+event_id UUID
+
+ ID of the event.
+
+event_type Enum
+
+ Value: `connected_account.disconnected`
+
+occurred_at Datetime
+
+ Date and time at which the event occurred.
+
+workspace_id UUID
+
+ ID of the workspace associated with the event.
+
+
+---
+
+**`connected_account.completed_first_sync`**
+
+A [connected account](../../core-concepts/connected-accounts/README.md) completed the first sync with Seam, and the corresponding devices or systems are now available.
+
+
+
+Properties
+
+connected_account_id UUID
+
+ ID of the affected connected account.
+
+created_at Datetime
+
+ Date and time at which the event was created.
+
+event_id UUID
+
+ ID of the event.
+
+event_type Enum
+
+ Value: `connected_account.completed_first_sync`
+
+occurred_at Datetime
+
+ Date and time at which the event occurred.
+
+workspace_id UUID
+
+ ID of the workspace associated with the event.
+
+
+---
+
+**`connected_account.deleted`**
+
+A [connected account](../../core-concepts/connected-accounts/README.md) was deleted.
+
+
+
+Properties
+
+connected_account_id UUID
+
+ ID of the affected connected account.
+
+created_at Datetime
+
+ Date and time at which the event was created.
+
+event_id UUID
+
+ ID of the event.
+
+event_type Enum
+
+ Value: `connected_account.deleted`
+
+occurred_at Datetime
+
+ Date and time at which the event occurred.
+
+workspace_id UUID
+
+ ID of the workspace associated with the event.
+
+
+---
+
+**`connected_account.completed_first_sync_after_reconnection`**
+
+A [connected account](../../core-concepts/connected-accounts/README.md) completed the first sync after reconnection with Seam, and the corresponding devices or systems are now available.
+
+
+
+Properties
+
+connected_account_id UUID
+
+ ID of the affected connected account.
+
+created_at Datetime
+
+ Date and time at which the event was created.
+
+event_id UUID
+
+ ID of the event.
+
+event_type Enum
+
+ Value: `connected_account.completed_first_sync_after_reconnection`
+
+occurred_at Datetime
+
+ Date and time at which the event occurred.
+
+workspace_id UUID
+
+ ID of the workspace associated with the event.
+
+
+---
+
+## Endpoints
+
+
+[**`/connected_accounts/delete`**](./delete.md)
+
+Deletes a specified [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+[**`/connected_accounts/get`**](./get.md)
+
+Returns a specified [connected account](../../core-concepts/connected-accounts/README.md).
+
+
+[**`/connected_accounts/list`**](./list.md)
+
+Returns a list of all [connected accounts](../../core-concepts/connected-accounts/README.md).
+
+
+[**`/connected_accounts/sync`**](./sync.md)
+
+Request a [connected account](../../core-concepts/connected-accounts/README.md) sync attempt for the specified connected_account_id.
+
+
+[**`/connected_accounts/update`**](./update.md)
+
+Updates a [connected account](../../core-concepts/connected-accounts/README.md).
+
+
diff --git a/docs/api/connected_accounts/delete.md b/docs/api/connected_accounts/delete.md
new file mode 100644
index 000000000..c8e2773b5
--- /dev/null
+++ b/docs/api/connected_accounts/delete.md
@@ -0,0 +1,179 @@
+# Delete a Connected Account
+
+- [Request Parameters](./#request-parameters)
+- [Response](./#response)
+- [Examples](./#examples)
+
+Deletes a specified [connected account](../../core-concepts/connected-accounts/README.md).
+
+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.
+
+{% tabs %}
+{% tab title="Signature" %}
+```
+POST /connected_accounts/delete ⇒ void
+```
+{% endtab %}
+{% endtabs %}
+
+
+
+Authentication Methods
+
+- API key
+- Personal access token
+
Must also include the `seam-workspace` header in the request.
+
+To learn more, see [Authentication](https://docs.seam.co/latest/api/authentication).
+
+
+## Request Parameters
+
+**`connected_account_id`** *String* (Required)
+
+ID of the connected account that you want to delete.
+
+---
+
+
+## Response
+
+void
+
+
+---
+
+## Examples
+
+### Delete a connected account
+
+Specify the `connected_account_id` of the connected account that you want to delete.
+
+{% tabs %}
+{% tab title="JavaScript" %}
+#### Code
+
+```javascript
+await seam.connectedAccounts.delete({
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c",
+});
+```
+
+#### Output
+
+```javascript
+// void
+```
+{% endtab %}
+
+{% tab title="Python" %}
+#### Code
+
+```python
+seam.connected_accounts.delete(
+ connected_account_id="23e4eb21-6e93-48c4-a077-bf503246d47c"
+)
+```
+
+#### Output
+
+```python
+None
+```
+{% endtab %}
+
+{% tab title="Ruby" %}
+#### Code
+
+```ruby
+seam.connected_accounts.delete(connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c")
+```
+
+#### Output
+
+```ruby
+nil
+```
+{% endtab %}
+
+{% tab title="PHP" %}
+#### Code
+
+```php
+connected_accounts->delete(
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c"
+);
+```
+
+#### Output
+
+```php
+null
+```
+{% endtab %}
+
+{% tab title="Seam CLI" %}
+#### Code
+
+```seam_cli
+seam connected-accounts delete --connected_account_id "23e4eb21-6e93-48c4-a077-bf503246d47c"
+```
+
+#### Output
+
+```seam_cli
+{}
+```
+{% endtab %}
+
+{% tab title="Go" %}
+#### Code
+
+```go
+package main
+
+import api "github.com/seamapi/go"
+
+func main() {
+ client.ConnectedAccounts.Delete(
+ context.Background(),
+ api.ConnectedAccountsDeleteRequest{
+ ConnectedAccountId: api.String("23e4eb21-6e93-48c4-a077-bf503246d47c"),
+ },
+ )
+}
+```
+
+#### Output
+
+```go
+nil
+```
+{% endtab %}
+
+{% tab title="cURL" %}
+#### Code
+
+```curl
+curl --include --request POST "https://connect.getseam.com/connected_accounts/delete" \
+ --header "Authorization: Bearer $SEAM_API_KEY" \
+ --json @- <
+
+Authentication Methods
+
+- API key
+- Client session token
+- Personal access token
+
Must also include the `seam-workspace` header in the request.
+
+To learn more, see [Authentication](https://docs.seam.co/latest/api/authentication).
+
+
+## Request Parameters
+
+**`connected_account_id`** *String*
+
+ID of the connected account that you want to get.
+
+---
+
+**`email`** *String*
+
+Email address associated with the connected account that you want to get.
+
+---
+
+
+## Response
+
+[connected\_account](./)
+
+
+---
+
+## Examples
+
+### Get a connected account
+
+Specify the `connected_account_id` of the connected account that you want to get.
+
+{% tabs %}
+{% tab title="JavaScript" %}
+#### Code
+
+```javascript
+await seam.connectedAccounts.get({
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c",
+});
+```
+
+#### Output
+
+```javascript
+[
+ {
+ "connected_account_id": "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at": "2022-08-24T10:38:05.128Z",
+ "account_type": "schlage"
+ }
+]
+```
+{% endtab %}
+
+{% tab title="Python" %}
+#### Code
+
+```python
+seam.connected_accounts.get(connected_account_id="23e4eb21-6e93-48c4-a077-bf503246d47c")
+```
+
+#### Output
+
+```python
+[
+ ConnectedAccount(
+ connected_account_id="23e4eb21-6e93-48c4-a077-bf503246d47c",
+ created_at="2022-08-24T10:38:05.128Z",
+ account_type="schlage",
+ )
+]
+```
+{% endtab %}
+
+{% tab title="Ruby" %}
+#### Code
+
+```ruby
+seam.connected_accounts.get(connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c")
+```
+
+#### Output
+
+```ruby
+[
+ {
+ "connected_account_id" => "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at" => "2022-08-24T10:38:05.128Z",
+ "account_type" => "schlage",
+ },
+]
+```
+{% endtab %}
+
+{% tab title="PHP" %}
+#### Code
+
+```php
+connected_accounts->get(
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c"
+);
+```
+
+#### Output
+
+```php
+ "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at" => "2022-08-24T10:38:05.128Z",
+ "account_type" => "schlage",
+ ],
+];
+```
+{% endtab %}
+
+{% tab title="Seam CLI" %}
+#### Code
+
+```seam_cli
+seam connected-accounts get --connected_account_id "23e4eb21-6e93-48c4-a077-bf503246d47c"
+```
+
+#### Output
+
+```seam_cli
+[
+ {
+ "connected_account_id": "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at": "2022-08-24T10:38:05.128Z",
+ "account_type": "schlage"
+ }
+]
+```
+{% endtab %}
+
+{% tab title="Go" %}
+#### Code
+
+```go
+package main
+
+import api "github.com/seamapi/go"
+
+func main() {
+ client.ConnectedAccounts.Get(
+ context.Background(),
+ api.ConnectedAccountsGetRequest{
+ ConnectedAccountId: api.String("23e4eb21-6e93-48c4-a077-bf503246d47c"),
+ },
+ )
+}
+```
+
+#### Output
+
+```go
+[]api.ConnectedAccount{api.ConnectedAccount{ConnectedAccountId: "23e4eb21-6e93-48c4-a077-bf503246d47c", CreatedAt: "2022-08-24T10:38:05.128Z", AccountType: "schlage"}}
+```
+{% endtab %}
+
+{% tab title="cURL" %}
+#### Code
+
+```curl
+curl --include --request POST "https://connect.getseam.com/connected_accounts/get" \
+ --header "Authorization: Bearer $SEAM_API_KEY" \
+ --json @- <
+
+Authentication Methods
+
+- API key
+- Personal access token
+
Must also include the `seam-workspace` header in the request.
+
+To learn more, see [Authentication](https://docs.seam.co/latest/api/authentication).
+
+
+## Request Parameters
+
+**`custom_metadata_has`** *Object*
+
+Custom metadata pairs by which you want to filter connected accounts. Returns connected accounts with `custom_metadata` that contains all of the provided key:value pairs.
+
+---
+
+**`customer_ids`** *Array* *of UUIDs*
+
+---
+
+**`limit`** *Number*
+
+Maximum number of records to return per page.
+
+---
+
+**`page_cursor`** *String*
+
+Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
+
+---
+
+**`user_identifier_key`** *String*
+
+Your user ID for the user by which you want to filter connected accounts.
+
+---
+
+
+## Response
+
+Array of [connected\_accounts](./)
+
+
+---
+
+## Examples
+
+### List connected accounts
+
+List all connected accounts.
+
+{% tabs %}
+{% tab title="JavaScript" %}
+#### Code
+
+```javascript
+await seam.connectedAccounts.list();
+```
+
+#### Output
+
+```javascript
+[
+ {
+ "connected_account_id": "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at": "2022-08-24T10:38:05.128Z",
+ "account_type": "schlage"
+ },
+ {
+ "connected_account_id": "dc0df710-376c-4ec3-9b2b-2b7f788bdfa8",
+ "created_at": "2022-07-04T08:40:02.110Z",
+ "account_type": "kwikset"
+ }
+]
+```
+{% endtab %}
+
+{% tab title="Python" %}
+#### Code
+
+```python
+seam.connected_accounts.list()
+```
+
+#### Output
+
+```python
+[
+ ConnectedAccount(
+ connected_account_id="23e4eb21-6e93-48c4-a077-bf503246d47c",
+ created_at="2022-08-24T10:38:05.128Z",
+ account_type="schlage",
+ ),
+ ConnectedAccount(
+ connected_account_id="dc0df710-376c-4ec3-9b2b-2b7f788bdfa8",
+ created_at="2022-07-04T08:40:02.110Z",
+ account_type="kwikset",
+ ),
+]
+```
+{% endtab %}
+
+{% tab title="Ruby" %}
+#### Code
+
+```ruby
+seam.connected_accounts.list()
+```
+
+#### Output
+
+```ruby
+[
+ {
+ "connected_account_id" => "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at" => "2022-08-24T10:38:05.128Z",
+ "account_type" => "schlage",
+ },
+ {
+ "connected_account_id" => "dc0df710-376c-4ec3-9b2b-2b7f788bdfa8",
+ "created_at" => "2022-07-04T08:40:02.110Z",
+ "account_type" => "kwikset",
+ },
+]
+```
+{% endtab %}
+
+{% tab title="PHP" %}
+#### Code
+
+```php
+connected_accounts->list();
+```
+
+#### Output
+
+```php
+ "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at" => "2022-08-24T10:38:05.128Z",
+ "account_type" => "schlage",
+ ],
+ [
+ "connected_account_id" => "dc0df710-376c-4ec3-9b2b-2b7f788bdfa8",
+ "created_at" => "2022-07-04T08:40:02.110Z",
+ "account_type" => "kwikset",
+ ],
+];
+```
+{% endtab %}
+
+{% tab title="Seam CLI" %}
+#### Code
+
+```seam_cli
+seam connected-accounts list
+```
+
+#### Output
+
+```seam_cli
+[
+ {
+ "connected_account_id": "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at": "2022-08-24T10:38:05.128Z",
+ "account_type": "schlage"
+ },
+ {
+ "connected_account_id": "dc0df710-376c-4ec3-9b2b-2b7f788bdfa8",
+ "created_at": "2022-07-04T08:40:02.110Z",
+ "account_type": "kwikset"
+ }
+]
+```
+{% endtab %}
+
+{% tab title="Go" %}
+#### Code
+
+```go
+package main
+
+func main() {
+ client.ConnectedAccounts.List(context.Background())
+}
+```
+
+#### Output
+
+```go
+[]api.ConnectedAccount{api.ConnectedAccount{ConnectedAccountId: "23e4eb21-6e93-48c4-a077-bf503246d47c", CreatedAt: "2022-08-24T10:38:05.128Z", AccountType: "schlage"}, api.ConnectedAccount{ConnectedAccountId: "dc0df710-376c-4ec3-9b2b-2b7f788bdfa8", CreatedAt: "2022-07-04T08:40:02.110Z", AccountType: "kwikset"}}
+```
+{% endtab %}
+
+{% tab title="cURL" %}
+#### Code
+
+```curl
+curl --include --request POST "https://connect.getseam.com/connected_accounts/list" \
+ --header "Authorization: Bearer $SEAM_API_KEY"
+```
+
+#### Output
+
+```curl
+{
+ "connected_accounts": [
+ {
+ "connected_account_id": "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ "created_at": "2022-08-24T10:38:05.128Z",
+ "account_type": "schlage"
+ },
+ {
+ "connected_account_id": "dc0df710-376c-4ec3-9b2b-2b7f788bdfa8",
+ "created_at": "2022-07-04T08:40:02.110Z",
+ "account_type": "kwikset"
+ }
+ ]
+}
+```
+{% endtab %}
+
+{% endtabs %}
+
+
diff --git a/docs/api/connected_accounts/sync.md b/docs/api/connected_accounts/sync.md
new file mode 100644
index 000000000..f8ebdbb03
--- /dev/null
+++ b/docs/api/connected_accounts/sync.md
@@ -0,0 +1,175 @@
+# Sync a Connected Account
+
+- [Request Parameters](./#request-parameters)
+- [Response](./#response)
+- [Examples](./#examples)
+
+Request a [connected account](../../core-concepts/connected-accounts/README.md) sync attempt for the specified connected_account_id.
+
+{% tabs %}
+{% tab title="Signature" %}
+```
+POST /connected_accounts/sync ⇒ void
+```
+{% endtab %}
+{% endtabs %}
+
+
+
+Authentication Methods
+
+- API key
+- Personal access token
+
Must also include the `seam-workspace` header in the request.
+
+To learn more, see [Authentication](https://docs.seam.co/latest/api/authentication).
+
+
+## Request Parameters
+
+**`connected_account_id`** *String* (Required)
+
+ID of the connected account that you want to sync.
+
+---
+
+
+## Response
+
+void
+
+
+---
+
+## Examples
+
+### Sync a connected account
+
+Request an on-demand sync of the devices and systems in a connected account.
+
+{% tabs %}
+{% tab title="JavaScript" %}
+#### Code
+
+```javascript
+await seam.connectedAccounts.sync({
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c",
+});
+```
+
+#### Output
+
+```javascript
+// void
+```
+{% endtab %}
+
+{% tab title="Python" %}
+#### Code
+
+```python
+seam.connected_accounts.sync(
+ connected_account_id="23e4eb21-6e93-48c4-a077-bf503246d47c"
+)
+```
+
+#### Output
+
+```python
+None
+```
+{% endtab %}
+
+{% tab title="Ruby" %}
+#### Code
+
+```ruby
+seam.connected_accounts.sync(connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c")
+```
+
+#### Output
+
+```ruby
+nil
+```
+{% endtab %}
+
+{% tab title="PHP" %}
+#### Code
+
+```php
+connected_accounts->sync(
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c"
+);
+```
+
+#### Output
+
+```php
+null
+```
+{% endtab %}
+
+{% tab title="Seam CLI" %}
+#### Code
+
+```seam_cli
+seam connected-accounts sync --connected_account_id "23e4eb21-6e93-48c4-a077-bf503246d47c"
+```
+
+#### Output
+
+```seam_cli
+{}
+```
+{% endtab %}
+
+{% tab title="Go" %}
+#### Code
+
+```go
+package main
+
+import api "github.com/seamapi/go"
+
+func main() {
+ client.ConnectedAccounts.Sync(
+ context.Background(),
+ api.ConnectedAccountsSyncRequest{
+ ConnectedAccountId: api.String("23e4eb21-6e93-48c4-a077-bf503246d47c"),
+ },
+ )
+}
+```
+
+#### Output
+
+```go
+nil
+```
+{% endtab %}
+
+{% tab title="cURL" %}
+#### Code
+
+```curl
+curl --include --request POST "https://connect.getseam.com/connected_accounts/sync" \
+ --header "Authorization: Bearer $SEAM_API_KEY" \
+ --json @- <
+
+Authentication Methods
+
+- API key
+- Personal access token
+
Must also include the `seam-workspace` header in the request.
+
+To learn more, see [Authentication](https://docs.seam.co/latest/api/authentication).
+
+
+## Request Parameters
+
+**`connected_account_id`** *String* (Required)
+
+ID of the connected account that you want to update.
+
+---
+
+**`automatically_manage_new_devices`** *Boolean*
+
+Indicates whether newly-added devices should appear as [managed devices](../../core-concepts/devices/managed-and-unmanaged-devices.md).
+
+---
+
+**`custom_metadata`** *Object*
+
+Custom metadata that you want to associate with the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](../../core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account.md) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](../../core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata.md).
+
+---
+
+
+## Response
+
+void
+
+
+---
+
+## Examples
+
+### Update a connected account
+
+Specify the `connected_account_id` of the connected account that you want to update, as well as the properties that you want to update.
+
+{% tabs %}
+{% tab title="JavaScript" %}
+#### Code
+
+```javascript
+await seam.connectedAccounts.update({
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ automatically_manage_new_devices: true,
+});
+```
+
+#### Output
+
+```javascript
+// void
+```
+{% endtab %}
+
+{% tab title="Python" %}
+#### Code
+
+```python
+seam.connected_accounts.update(
+ connected_account_id="23e4eb21-6e93-48c4-a077-bf503246d47c",
+ automatically_manage_new_devices=true,
+)
+```
+
+#### Output
+
+```python
+None
+```
+{% endtab %}
+
+{% tab title="Ruby" %}
+#### Code
+
+```ruby
+seam.connected_accounts.update(
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ automatically_manage_new_devices: true,
+)
+```
+
+#### Output
+
+```ruby
+nil
+```
+{% endtab %}
+
+{% tab title="PHP" %}
+#### Code
+
+```php
+connected_accounts->update(
+ connected_account_id: "23e4eb21-6e93-48c4-a077-bf503246d47c",
+ automatically_manage_new_devices: true
+);
+```
+
+#### Output
+
+```php
+null
+```
+{% endtab %}
+
+{% tab title="Seam CLI" %}
+#### Code
+
+```seam_cli
+seam connected-accounts update --connected_account_id "23e4eb21-6e93-48c4-a077-bf503246d47c" --automatically_manage_new_devices true
+```
+
+#### Output
+
+```seam_cli
+{}
+```
+{% endtab %}
+
+{% tab title="Go" %}
+#### Code
+
+```go
+package main
+
+import api "github.com/seamapi/go"
+
+func main() {
+ client.ConnectedAccounts.Update(
+ context.Background(),
+ api.ConnectedAccountsUpdateRequest{
+ ConnectedAccountId: api.String("23e4eb21-6e93-48c4-a077-bf503246d47c"),
+ AutomaticallyManageNewDevices: api.Bool(true),
+ },
+ )
+}
+```
+
+#### Output
+
+```go
+nil
+```
+{% endtab %}
+
+{% tab title="cURL" %}
+#### Code
+
+```curl
+curl --include --request POST "https://connect.getseam.com/connected_accounts/update" \
+ --header "Authorization: Bearer $SEAM_API_KEY" \
+ --json @- <