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

# Get

> Retrieve the device.



## OpenAPI

````yaml /references/device-api/v0.2.1/api.yaml get /device
openapi: 3.0.3
info:
  title: Miru Agent API
  description: >-
    The API between the Miru Agent and any external client living on the same
    device as the Miru Agent
  version: v0.2
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  x-release-version: v0.2.1
  x-git-commit:
    sha: 10dc72e22958a4851e7f6718f5b7542b0c7f62e1
    url: >-
      https://github.com/mirurobotics/openapi/commit/10dc72e22958a4851e7f6718f5b7542b0c7f62e1
    message: |-
      feat(lint): add x-summary to event schemas and enforce via MIRU024 (#15)

      ## Summary

      - Add `x-summary` extension field and richer `description` to all
      `*Event` data schemas (`DeploymentDeployedEvent`,
      `DeploymentRemovedEvent`, `ValidateDeploymentEvent`)
      - Add MIRU024 lint rule (`event_schema_x_summary_required`) that
      enforces `x-summary` on all `*Event` schemas (excluding the `Event`
      envelope)
      - Add 3 test fixtures and test class for MIRU024 (197 tests pass, 99%
      coverage)

      The `x-summary` field is consumed by the docs codegen
      (`docs/api/generate_event_pages.py`) as the page subtitle, while
      `description` provides the longer inline body text. This makes generated
      event type reference pages more useful.

      ## Test plan

      - [x] `./tools/lint/test.sh` — 197 tests pass
      - [x] `./tools/lint/covgate.sh` — 99% coverage (gate: 98%)
      - [x] `./scripts/lint.sh` — all custom MIRU rules and Redocly clean
      - [x] MIRU024 fires on `*Event` schema missing `x-summary`
      - [x] MIRU024 passes when `x-summary` is present
      - [x] MIRU024 exempts the `Event` envelope schema

      🤖 Generated with [Claude Code](https://claude.com/claude-code)

      ---------

      Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    author: ben-miru
    branch: HEAD
    dirty: false
  x-build:
    built_at: '2026-04-06T19:21:53.148075+00:00'
servers:
  - url: http://localhost/v0.2
    description: localhost
security: []
paths:
  /device:
    get:
      tags:
        - Device
      summary: Get
      description: Retrieve the device.
      operationId: getDevice
      responses:
        '200':
          description: Successfully retrieved the device.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
      x-codeSamples:
        - lang: curl
          source: |-
            curl \
              --unix-socket /run/miru/miru.sock \
              --request GET \
              --url http://localhost/v0.2/device
        - lang: Python
          source: |-
            from miru_device_sdk import Miru

            client = Miru()
            device = client.device.retrieve()
            print(device.id)
components:
  schemas:
    Device:
      title: Device
      type: object
      required:
        - object
        - id
        - name
        - status
        - last_synced_at
        - last_connected_at
        - last_disconnected_at
      properties:
        object:
          type: string
          enum:
            - device
          example: device
          x-stainless-const: true
          description: The object type, which is always `device`.
        id:
          type: string
          example: dvc_123
          description: ID of the device.
        name:
          type: string
          example: My Device
          description: Name of the device.
        status:
          $ref: '#/components/schemas/DeviceStatus'
        last_synced_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the device was last synced.
        last_connected_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of the last successful connection event with the backend.
        last_disconnected_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: >-
            Timestamp of the last successful disconnection event with the
            backend.
      example:
        object: device
        id: dvc_123
        name: My Device
        status: online
        last_synced_at: '2021-01-01T00:00:00Z'
        last_connected_at: '2021-01-01T00:00:00Z'
        last_disconnected_at: '2021-01-01T00:00:00Z'
    DeviceStatus:
      type: string
      description: >
        The status of the device.

        - Online: The miru agent is connected

        - Offline: The miru agent is disconnected (e.g. network issues, device
        is powered off, etc.)
      enum:
        - online
        - offline
      x-enum-varnames:
        - DEVICE_STATUS_ONLINE
        - DEVICE_STATUS_OFFLINE

````