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

# Sync

> Manually force a device sync with the edits made in the dashboard.



## OpenAPI

````yaml /references/device-api/v0.2.0.yaml post /device/sync
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.0
  x-git-commit:
    sha: 5e98bcf13136459371f57ae422d353a1e7491b14
    url: >-
      https://github.com/mirurobotics/openapi/commit/5e98bcf13136459371f57ae422d353a1e7491b14
    message: 'chore: bump device api version'
    author: Benjamin Smidt
    branch: HEAD
    dirty: false
  x-build:
    built_at: '2026-03-10T03:12:13.875623+00:00'
servers:
  - url: http://localhost/v0.2
    description: localhost
security: []
paths:
  /device/sync:
    post:
      tags:
        - Device
      summary: Sync
      description: Manually force a device sync with the edits made in the dashboard.
      operationId: syncDevice
      responses:
        '200':
          description: Successfully synced the device.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncDeviceResponse'
      x-codeSamples:
        - lang: curl
          source: |-
            curl --unix-socket /run/miru/miru.sock \
              --request POST \
              --url http://localhost/v0.2/device/sync
        - lang: Python
          source: |-
            from miru_device_sdk import Miru

            client = Miru()
            response = client.device.sync()
            print(response.code)
components:
  schemas:
    SyncDeviceResponse:
      title: Sync Device Response
      type: object
      required:
        - code
        - message
        - last_synced_at
        - last_attempted_sync_at
        - in_cooldown
        - cooldown_ends_at
      properties:
        code:
          $ref: '#/components/schemas/SyncDeviceResult'
        message:
          type: string
          example: Device is not connected to the backend.
          description: The message of the result.
        last_synced_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the device was last synced.
        last_attempted_sync_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the last *attempted* sync occurred.
        in_cooldown:
          type: boolean
          example: true
          description: Whether the device is currently in cooldown.
        cooldown_ends_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the cooldown will end.
      example:
        code: in_cooldown
        message: Device is not connected to the backend.
        last_synced_at: '2021-01-01T00:00:00Z'
        last_attempted_sync_at: '2021-01-01T00:00:00Z'
        in_cooldown: true
        cooldown_ends_at: '2021-01-01T00:00:00Z'
    SyncDeviceResult:
      type: string
      description: The result of attempting to sync the device.
      enum:
        - success
        - network_connection_error
        - in_cooldown
      x-enum-varnames:
        - SYNC_DEVICE_RESULT_SUCCESS
        - SYNC_DEVICE_RESULT_NETWORK_CONNECTION_ERROR
        - SYNC_DEVICE_RESULT_IN_COOLDOWN

````