> ## 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.

# List Capabilities

> Lists computed capabilities for one device model or across models, ordered by device model, provider and capability name. Capability reports are resolved per `locale`, with the raw translation keys in `report_raw`. Device models hidden from third parties are excluded; with a manufacturer secret key, `include_forbidden` adds that manufacturer's own hidden models.

Capability names match the capability flags the [Seam API](/docs/capability-guides/device-and-system-capabilities) reports on devices. See [Capabilities](/docs/device-manufacturer-guidance/manufacturer-api/device-model-summaries#capabilities) for the list.


## OpenAPI

````yaml device-manufacturer-guidance/manufacturer-api/openapi.json GET /capabilities/list
openapi: 3.1.0
info:
  title: Seam Ecosystem API
  version: 1.0.0
  description: >-
    Read what Seam publishes about the devices it supports: manufacturers,
    device models with their images, variants and capabilities, the providers
    that integrate them, and the partner apps that support them through Seam.


    Every endpoint accepts `GET` with query parameters, or `POST` with the same
    parameters as a JSON body. Successful responses include `"ok": true`.
    Published content is public, so you can call most endpoints without a key.
    Send an embed key from a browser, or a secret key from your servers, to
    identify yourself.
servers:
  - url: https://ecosystem.seam.co/v1
security: []
externalDocs:
  description: Manufacturer API guide
  url: https://www.seam.co/docs/device-manufacturer-guidance/manufacturer-api
paths:
  /capabilities/list:
    get:
      tags:
        - capabilities
      summary: List capabilities
      description: >-
        Lists computed capabilities for one device model or across models,
        ordered by device model, provider and capability name. Capability
        reports are resolved per `locale`, with the raw translation keys in
        `report_raw`. Device models hidden from third parties are excluded; with
        a manufacturer secret key, `include_forbidden` adds that manufacturer's
        own hidden models.
      parameters:
        - name: device_model
          in: query
          required: false
          schema:
            description: Device model slug; omit to read across models.
            type: string
        - name: device_model_id
          in: query
          required: false
          schema:
            description: Device model UUID.
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - name: device_model_slugs
          in: query
          required: false
          schema:
            description: Only capabilities for device models with these slugs.
            type: array
            items:
              type: string
        - name: provider
          in: query
          required: false
          schema:
            description: Provider slug.
            type: string
        - name: names
          in: query
          required: false
          schema:
            description: Capability names to include.
            type: array
            items:
              type: string
              enum:
                - device_connectivity
                - can_program_online_access_codes
                - can_program_offline_access_codes
                - can_remotely_unlock
                - can_remotely_lock
                - can_encode_plastic_cards
                - can_provision_mobile_keys
                - can_provision_wallet_keys
                - can_hvac_cool
                - can_hvac_heat
                - can_hvac_auto
                - can_hvac_fan
                - can_program_thermostat_weekly_programs
                - can_monitor
        - name: supported
          in: query
          required: false
          schema:
            description: Only capabilities with this support value.
            type: string
            enum:
              - 'yes'
              - 'no'
              - conditionally
        - name: include_forbidden
          in: query
          required: false
          schema:
            description: >-
              Include models forbidden to third parties
              (`is_forbidden_to_3dparty`): all of them for Seam callers, its own
              for a manufacturer secret key, none otherwise. Defaults to false.
            anyOf:
              - type: boolean
              - type: string
                enum:
                  - 'true'
                  - 'false'
        - name: locale
          in: query
          required: false
          schema:
            description: >-
              Locale for resolved capability report text; unknown locales fall
              back to the default locale.
            type: string
        - name: limit
          in: query
          required: false
          schema:
            default: 100
            description: Maximum number of capabilities to return (1-500).
            type: integer
            minimum: 1
            maximum: 500
        - name: page_cursor
          in: query
          required: false
          schema:
            description: The `next_page_cursor` from the previous page.
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  capabilities:
                    type: array
                    items:
                      type: object
                      properties:
                        capability_id:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          description: Ecosystem UUID of the computed capability row.
                        name:
                          type: string
                          enum:
                            - device_connectivity
                            - can_program_online_access_codes
                            - can_program_offline_access_codes
                            - can_remotely_unlock
                            - can_remotely_lock
                            - can_encode_plastic_cards
                            - can_provision_mobile_keys
                            - can_provision_wallet_keys
                            - can_hvac_cool
                            - can_hvac_heat
                            - can_hvac_auto
                            - can_hvac_fan
                            - can_program_thermostat_weekly_programs
                            - can_monitor
                          description: Capability name.
                        supported:
                          type: string
                          enum:
                            - 'yes'
                            - 'no'
                            - conditionally
                          description: 'Computed support: `yes`, `no`, or `conditionally`.'
                        integration_support_level:
                          anyOf:
                            - type: string
                              enum:
                                - inquire
                                - unavailable
                                - planned
                                - in-progress
                                - beta
                                - stable
                            - type: 'null'
                          description: >-
                            Support level of the provider integration behind
                            this capability; null where the source has none.
                        report:
                          anyOf:
                            - type: object
                              properties:
                                details:
                                  type: string
                                  description: >-
                                    Report detail text, or a translation
                                    dictionary key in `report_raw`.
                                requirements:
                                  description: Requirements keyed by requirement name.
                                  type: object
                                  propertyNames:
                                    type: string
                                  additionalProperties:
                                    type: object
                                    properties:
                                      message:
                                        type: string
                                        description: >-
                                          Requirement message, or a translation
                                          dictionary key in `report_raw`.
                                      device_slugs:
                                        description: >-
                                          Device model slugs satisfying this
                                          requirement.
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - message
                                    additionalProperties: {}
                                dependencies:
                                  description: Capability names this report depends on.
                                  type: array
                                  items:
                                    type: string
                              required:
                                - details
                              additionalProperties: {}
                            - type: 'null'
                          description: >-
                            Report with `details` and requirement messages
                            resolved to display text for `locale`, falling back
                            to the default locale and then to a placeholder for
                            a message with no translation. Null when no report
                            is stored.
                        report_raw:
                          anyOf:
                            - type: object
                              properties:
                                details:
                                  type: string
                                  description: >-
                                    Report detail text, or a translation
                                    dictionary key in `report_raw`.
                                requirements:
                                  description: Requirements keyed by requirement name.
                                  type: object
                                  propertyNames:
                                    type: string
                                  additionalProperties:
                                    type: object
                                    properties:
                                      message:
                                        type: string
                                        description: >-
                                          Requirement message, or a translation
                                          dictionary key in `report_raw`.
                                      device_slugs:
                                        description: >-
                                          Device model slugs satisfying this
                                          requirement.
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - message
                                    additionalProperties: {}
                                dependencies:
                                  description: Capability names this report depends on.
                                  type: array
                                  items:
                                    type: string
                              required:
                                - details
                              additionalProperties: {}
                            - type: 'null'
                          description: >-
                            The stored report verbatim: `details` and
                            requirement messages are translation dictionary
                            keys, never localized in storage.
                        locale:
                          type: string
                          description: The locale `report` was resolved in, after fallback.
                        computed_at:
                          type: string
                          format: date-time
                          pattern: >-
                            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                          description: When this capability was computed (ISO 8601).
                        device_model:
                          type: object
                          properties:
                            device_model_id:
                              type: string
                              format: uuid
                              pattern: >-
                                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              description: Ecosystem UUID of the device model.
                            slug:
                              type: string
                              description: Stable identifier, e.g. `encodeplus`.
                          required:
                            - device_model_id
                            - slug
                          additionalProperties: false
                          description: Device model this capability is for.
                        provider:
                          type: object
                          properties:
                            provider_id:
                              type: string
                              format: uuid
                              pattern: >-
                                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                              description: Ecosystem UUID of the provider.
                            slug:
                              type: string
                              description: Stable identifier, e.g. `salto-ks`.
                            display_name:
                              description: Display name.
                              type:
                                - string
                                - 'null'
                          required:
                            - provider_id
                            - slug
                            - display_name
                          additionalProperties: false
                          description: Provider this capability is for.
                      required:
                        - capability_id
                        - name
                        - supported
                        - integration_support_level
                        - report
                        - report_raw
                        - locale
                        - computed_at
                        - device_model
                        - provider
                      additionalProperties: false
                    description: Computed capabilities.
                  pagination:
                    type: object
                    properties:
                      has_next_page:
                        type: boolean
                        description: Whether another page follows this one.
                      next_page_cursor:
                        description: Cursor for the next page; null on the last page.
                        type:
                          - string
                          - 'null'
                    required:
                      - has_next_page
                      - next_page_cursor
                    additionalProperties: false
                    description: Pagination for this page.
                  ok:
                    type: boolean
                    const: true
                    description: Always `true` on success.
                required:
                  - capabilities
                  - pagination
                  - ok
                additionalProperties: false
        '400':
          description: Invalid parameters
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  ok:
                    type: boolean
                    const: false
                    description: Always `false` on error.
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        description: Machine-readable error type.
                      message:
                        type: string
                        description: Human-readable error message.
                      request_id:
                        type: string
                        description: Request ID to include when you contact Seam.
                      data:
                        description: >-
                          Details for some error types, such as validation
                          issues.
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - type
                      - message
                      - request_id
                    additionalProperties: false
                required:
                  - ok
                  - error
                additionalProperties: false
        '401':
          description: The key is unknown, revoked or unsupported
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  ok:
                    type: boolean
                    const: false
                    description: Always `false` on error.
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        description: Machine-readable error type.
                      message:
                        type: string
                        description: Human-readable error message.
                      request_id:
                        type: string
                        description: Request ID to include when you contact Seam.
                      data:
                        description: >-
                          Details for some error types, such as validation
                          issues.
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - type
                      - message
                      - request_id
                    additionalProperties: false
                required:
                  - ok
                  - error
                additionalProperties: false
        '403':
          description: >-
            The key does not allow this request, such as an origin that is not
            allowed
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  ok:
                    type: boolean
                    const: false
                    description: Always `false` on error.
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        description: Machine-readable error type.
                      message:
                        type: string
                        description: Human-readable error message.
                      request_id:
                        type: string
                        description: Request ID to include when you contact Seam.
                      data:
                        description: >-
                          Details for some error types, such as validation
                          issues.
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - type
                      - message
                      - request_id
                    additionalProperties: false
                required:
                  - ok
                  - error
                additionalProperties: false
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  ok:
                    type: boolean
                    const: false
                    description: Always `false` on error.
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        description: Machine-readable error type.
                      message:
                        type: string
                        description: Human-readable error message.
                      request_id:
                        type: string
                        description: Request ID to include when you contact Seam.
                      data:
                        description: >-
                          Details for some error types, such as validation
                          issues.
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                      - type
                      - message
                      - request_id
                    additionalProperties: false
                required:
                  - ok
                  - error
                additionalProperties: false
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
      security:
        - {}
        - secret_key: []
        - embed_key: []
        - embed_key_param: []
components:
  securitySchemes:
    secret_key:
      type: http
      scheme: bearer
      bearerFormat: eco_sk_…
      description: >-
        Optional on endpoints that serve published content. A secret key
        (`eco_sk_…`), sent as `Authorization: Bearer eco_sk_…` from your servers
        only. A manufacturer secret key implies its manufacturer and can include
        that manufacturer's device models hidden from third parties.
    embed_key:
      type: apiKey
      in: header
      name: X-Embed-Key
      description: >-
        An embed key (`eco_live_…`) for browser requests; the request's `Origin`
        must match one of the key's allowed origins. Optional on most endpoints,
        but `embed/resolve` always needs one, and so does `compatibility` from a
        browser on a site other than seam.co. A manufacturer embed key implies
        its manufacturer.
    embed_key_param:
      type: apiKey
      in: query
      name: embed_key
      description: >-
        An embed key sent as the `embed_key` query parameter instead of the
        `X-Embed-Key` header.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.