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

# Get all devices



## OpenAPI

````yaml https://github.com/DeepwaterExploration/dweOS/releases/latest/download/openapi.json get /api/devices
openapi: 3.1.0
info:
  title: DWE OS API
  description: API for DWE OS
  version: 0.1.0
servers: []
security: []
paths:
  /api/devices:
    get:
      tags:
        - cameras
      summary: Get all devices
      operationId: get_devices_api_devices_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/DeviceModel'
                type: array
                title: Response Get Devices Api Devices Get
components:
  schemas:
    DeviceModel:
      properties:
        cameras:
          anyOf:
            - items:
                $ref: '#/components/schemas/CameraModel'
              type: array
            - type: 'null'
          title: Cameras
        controls:
          items:
            $ref: '#/components/schemas/ControlModel'
          type: array
          title: Controls
        stream:
          $ref: '#/components/schemas/StreamModel'
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        vid:
          type: integer
          title: Vid
        pid:
          type: integer
          title: Pid
        bus_info:
          type: string
          title: Bus Info
        manufacturer:
          anyOf:
            - type: string
            - type: 'null'
          title: Manufacturer
        nickname:
          type: string
          title: Nickname
        device_info:
          anyOf:
            - $ref: '#/components/schemas/DeviceInfoModel'
            - type: 'null'
        device_type:
          $ref: '#/components/schemas/DeviceType'
        followers:
          items:
            type: string
          type: array
          title: Followers
          default: []
        is_managed:
          type: boolean
          title: Is Managed
          default: false
        frame_stats:
          $ref: '#/components/schemas/FrameDropStats'
          default:
            num_drops: 0
      type: object
      required:
        - controls
        - stream
        - vid
        - pid
        - bus_info
        - nickname
        - device_type
      title: DeviceModel
    CameraModel:
      properties:
        path:
          type: string
          title: Path
        formats:
          additionalProperties:
            items:
              $ref: '#/components/schemas/FormatSizeModel'
            type: array
          type: object
          title: Formats
      type: object
      required:
        - path
        - formats
      title: CameraModel
    ControlModel:
      properties:
        flags:
          $ref: '#/components/schemas/ControlFlagsModel'
        control_id:
          type: integer
          title: Control Id
        name:
          type: string
          title: Name
        value:
          anyOf:
            - type: number
            - type: integer
          title: Value
      type: object
      required:
        - flags
        - control_id
        - name
        - value
      title: ControlModel
    StreamModel:
      properties:
        device_path:
          type: string
          title: Device Path
        encode_type:
          $ref: '#/components/schemas/StreamEncodeTypeEnum'
        stream_type:
          $ref: '#/components/schemas/StreamTypeEnum'
        endpoints:
          items:
            $ref: '#/components/schemas/StreamEndpointModel'
          type: array
          title: Endpoints
        width:
          type: integer
          title: Width
        height:
          type: integer
          title: Height
        interval:
          $ref: '#/components/schemas/IntervalModel'
        enabled:
          type: boolean
          title: Enabled
      type: object
      required:
        - device_path
        - encode_type
        - stream_type
        - endpoints
        - width
        - height
        - interval
        - enabled
      title: StreamModel
    DeviceInfoModel:
      properties:
        device_name:
          type: string
          title: Device Name
        bus_info:
          type: string
          title: Bus Info
        device_paths:
          items:
            type: string
          type: array
          title: Device Paths
        vid:
          type: integer
          title: Vid
        pid:
          type: integer
          title: Pid
      type: object
      required:
        - device_name
        - bus_info
        - device_paths
        - vid
        - pid
      title: DeviceInfoModel
    DeviceType:
      type: integer
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      title: DeviceType
      description: Device type Enum
    FrameDropStats:
      properties:
        num_drops:
          type: integer
          title: Num Drops
      type: object
      required:
        - num_drops
      title: FrameDropStats
    FormatSizeModel:
      properties:
        width:
          type: integer
          title: Width
        height:
          type: integer
          title: Height
        intervals:
          items:
            $ref: '#/components/schemas/IntervalModel'
          type: array
          title: Intervals
      type: object
      required:
        - width
        - height
        - intervals
      title: FormatSizeModel
    ControlFlagsModel:
      properties:
        default_value:
          anyOf:
            - type: number
            - type: integer
          title: Default Value
        max_value:
          anyOf:
            - type: number
            - type: integer
          title: Max Value
        min_value:
          anyOf:
            - type: number
            - type: integer
          title: Min Value
        step:
          anyOf:
            - type: number
            - type: integer
          title: Step
        control_type:
          $ref: '#/components/schemas/ControlTypeEnum'
        menu:
          items:
            $ref: '#/components/schemas/MenuItemModel'
          type: array
          title: Menu
      type: object
      required:
        - default_value
        - max_value
        - min_value
        - step
        - control_type
      title: ControlFlagsModel
    StreamEncodeTypeEnum:
      type: string
      enum:
        - MJPG
        - H264
        - SOFTWARE_H264
        - NONE
      title: StreamEncodeTypeEnum
    StreamTypeEnum:
      type: string
      enum:
        - UDP
        - RECORDING
      title: StreamTypeEnum
    StreamEndpointModel:
      properties:
        host:
          type: string
          title: Host
        port:
          type: integer
          title: Port
      type: object
      required:
        - host
        - port
      title: StreamEndpointModel
    IntervalModel:
      properties:
        numerator:
          type: integer
          title: Numerator
        denominator:
          type: integer
          title: Denominator
      type: object
      required:
        - numerator
        - denominator
      title: IntervalModel
    ControlTypeEnum:
      type: string
      enum:
        - INTEGER
        - BOOLEAN
        - MENU
        - BUTTON
        - INTEGER64
        - CTRL_CLASS
        - STRING
        - BITMASK
        - INTEGER_MENU
      title: ControlTypeEnum
    MenuItemModel:
      properties:
        index:
          type: integer
          title: Index
        name:
          type: string
          title: Name
      type: object
      required:
        - index
        - name
      title: MenuItemModel

````