> ## 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 Device Types

> Lists published device types, such as `smartlock` and `thermostat`, ordered for display.



## OpenAPI

````yaml device-manufacturer-guidance/manufacturer-api/openapi.json GET /device_types/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:
  /device_types/list:
    get:
      tags:
        - device_types
      summary: List device types
      description: >-
        Lists published device types, such as `smartlock` and `thermostat`,
        ordered for display.
      parameters:
        - name: slugs
          in: query
          required: false
          schema:
            description: Only device types with these slugs.
            type: array
            items:
              type: string
        - name: is_accessory
          in: query
          required: false
          schema:
            description: Filter by the accessory flag.
            anyOf:
              - type: boolean
              - type: string
                enum:
                  - 'true'
                  - 'false'
        - name: limit
          in: query
          required: false
          schema:
            default: 100
            description: Maximum number of device types 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:
                  device_types:
                    type: array
                    items:
                      type: object
                      properties:
                        device_type_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 type.
                        slug:
                          type: string
                          description: Stable identifier, e.g. `smartlock`.
                        display_name:
                          type: string
                          description: Display name.
                        is_accessory:
                          type: boolean
                          description: >-
                            Accessory types (bridges, keypads) rather than
                            primary devices.
                        sort_order:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          description: Display ordering; lower values come first.
                        created_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: Creation time (ISO 8601).
                        updated_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: Last update time (ISO 8601).
                      required:
                        - device_type_id
                        - slug
                        - display_name
                        - is_accessory
                        - sort_order
                        - created_at
                        - updated_at
                      additionalProperties: false
                    description: Published device types.
                  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:
                  - device_types
                  - 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.