> ## Documentation Index
> Fetch the complete documentation index at: https://www.seam.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a Connected Account

> Updates a [connected account](/core-concepts/connected-accounts).



## OpenAPI

````yaml /openapi.json patch /connected_accounts/update
openapi: 3.0.0
info:
  description: >-
    Programmable API to control locks, thermostats, noise sensors, cameras,
    access control systems, and other IoT devices.


    Prefer the official Seam SDKs over hand-written HTTP calls: they handle

    authentication, request serialization, pagination, and error handling for

    you. The official SDKs are listed in this document under

    `info.x-seam-sdks`.


    If you call the HTTP API directly, your query parameters must be

    serialized compatibly with the Seam API. There is no universal convention

    for serializing arrays, booleans, or nested objects in a query string, so

    use @seamapi/url-search-params-serializer, the language specific serializer
    module provided by each Seam SDK, or follow its specification:

    https://github.com/seamapi/url-search-params-serializer
  title: Seam Connect
  version: 1.0.0
  x-seam-query-serializer:
    description: >-
      Reference implementation and specification for query parameter
      serialization compatible with the Seam API.
    url: https://github.com/seamapi/url-search-params-serializer
  x-seam-sdks:
    - language: javascript
      url: https://github.com/seamapi/javascript
    - language: python
      url: https://github.com/seamapi/python
    - language: ruby
      url: https://github.com/seamapi/ruby
    - language: php
      url: https://github.com/seamapi/php
    - language: csharp
      url: https://github.com/seamapi/csharp
servers:
  - url: https://connect.getseam.com
security: []
tags:
  - description: access_codes
    name: /access_codes
  - description: acs
    name: /acs
  - description: action_attempts
    name: /action_attempts
  - description: client_sessions
    name: /client_sessions
  - description: connected_accounts
    name: /connected_accounts
  - description: connect_webviews
    name: /connect_webviews
  - description: devices
    name: /devices
  - description: events
    name: /events
  - description: health
    name: /health
  - description: locks
    name: /locks
  - description: networks
    name: /networks
  - description: noise_sensors
    name: /noise_sensors
  - description: phones
    name: /phones
  - description: thermostats
    name: /thermostats
  - description: user_identities
    name: /user_identities
  - description: webhooks
    name: /webhooks
  - description: workspaces
    name: /workspaces
paths:
  /connected_accounts/update:
    patch:
      tags:
        - /connected_accounts
      summary: Update a Connected Account
      description: Updates a [connected account](/core-concepts/connected-accounts).
      operationId: connectedAccountsUpdatePatch
      requestBody:
        content:
          application/json:
            schema:
              properties:
                accepted_capabilities:
                  description: >-
                    List of accepted device capabilities that restrict the types
                    of devices that can be connected through this connected
                    account. Valid values are `lock`, `thermostat`,
                    `noise_sensor`, and `access_control`.
                  items:
                    description: |2

                        High-level device capabilities that can be restricted in connect webviews.
                        These represent the main device categories that customers can opt into.
                    enum:
                      - lock
                      - thermostat
                      - noise_sensor
                      - access_control
                      - camera
                    type: string
                  type: array
                automatically_manage_new_devices:
                  description: >-
                    Indicates whether newly-added devices should appear as
                    [managed
                    devices](/core-concepts/devices/managed-and-unmanaged-devices).
                  type: boolean
                connected_account_id:
                  description: ID of the connected account that you want to update.
                  format: uuid
                  type: string
                custom_metadata:
                  additionalProperties:
                    nullable: true
                    oneOf:
                      - maxLength: 500
                        type: string
                      - type: boolean
                  description: >-
                    Custom metadata that you want to associate with the
                    connected account. Entirely replaces the existing custom
                    metadata object. If a new Connect Webview contains custom
                    metadata and is used to reconnect a connected account, the
                    custom metadata from the Connect Webview will entirely
                    replace the entire custom metadata object on the connected
                    account. Supports up to 50 JSON key:value pairs, with key
                    names up to 40 characters long that cannot contain a period
                    (.). [Adding custom metadata to a connected
                    account](/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account)
                    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).
                    Set a key to `null` or to an empty string to remove that key
                    from the custom metadata.
                  type: object
                customer_key:
                  description: >-
                    The customer key to associate with this connected account.
                    If provided, the connected account and all resources under
                    the connected account will be moved to this customer. May
                    only be provided if the connected account is not already
                    associated with a customer.
                  minLength: 1
                  type: string
                display_name:
                  description: >-
                    Human-readable name for the connected account, shown in the
                    dashboard. For example, `Booking from Airbnb House 1`.
                  maxLength: 255
                  minLength: 1
                  type: string
              required:
                - connected_account_id
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      security:
        - pat_with_workspace: []
        - console_session_with_workspace: []
        - api_key: []
      x-codeSamples:
        - lang: javascript
          label: Seam SDK
          source: |-
            await seam.connectedAccounts.update({
              connected_account_id: "a289aa54-5488-4707-9a4b-eeea4edf311d",
              automatically_manage_new_devices: true,
              custom_metadata: { id: "internalId1" },
            });

            /*
            // void
            */
        - lang: bash
          label: cURL
          source: >-
            curl --include --request POST
            "https://connect.getseam.com/connected_accounts/update" \
              --header "Authorization: Bearer $SEAM_API_KEY" \
              --json @- <<EOF
            {
              "connected_account_id": "a289aa54-5488-4707-9a4b-eeea4edf311d",
              "automatically_manage_new_devices": true,
              "custom_metadata": {
                "id": "internalId1"
              }
            }

            EOF


            # Response:

            # {}
        - lang: python
          label: Seam SDK
          source: |-
            seam.connected_accounts.update(
                connected_account_id="a289aa54-5488-4707-9a4b-eeea4edf311d",
                automatically_manage_new_devices=true,
                custom_metadata={"id": "internalId1"},
            )

            # None
        - lang: ruby
          label: Seam SDK
          source: |-
            seam.connected_accounts.update(
              connected_account_id: "a289aa54-5488-4707-9a4b-eeea4edf311d",
              automatically_manage_new_devices: true,
              custom_metadata: {
                id: "internalId1",
              },
            )

            # => nil
        - lang: php
          label: Seam SDK
          source: |-
            $seam->connected_accounts->update(
                connected_account_id: "a289aa54-5488-4707-9a4b-eeea4edf311d",
                automatically_manage_new_devices: true,
                custom_metadata: ["id" => "internalId1"],
            );
        - lang: bash
          label: Seam CLI
          source: >-
            seam connected-accounts update --connected_account_id
            "a289aa54-5488-4707-9a4b-eeea4edf311d"
            --automatically_manage_new_devices true --custom_metadata
            {"id":"internalId1"}


            # {}
components:
  securitySchemes:
    pat_with_workspace:
      bearerFormat: API Token
      scheme: bearer
      type: http
    console_session_with_workspace:
      bearerFormat: Console Session Token
      scheme: bearer
      type: http
    api_key:
      bearerFormat: API Key
      scheme: bearer
      type: http

````