> ## 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 a component by ID.

| Scope | Required |
| - | - |
| `components:read` | Yes |


## OpenAPI

````yaml /references/platform-api/2026-10-28.yaml get /components/{component_id}
openapi: 3.0.3
info:
  title: Miru Platform API
  description: The API between Miru and any external client
  version: 2026-10-28.everglades
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  x-release-version: 2026-10-28.everglades
  x-git-commit:
    sha: da19e118a12d7f7069f89d7781c0085522789785
    url: >-
      https://github.com/mirurobotics/openapi/commit/da19e118a12d7f7069f89d7781c0085522789785
    message: >-
      chore(stlc): seal custom-code tracking files (#381)


      Automated by the stlc generate workflow: a push-to-main or manual

      `workflow_dispatch` publish re-sealed custom code, updating the tracking

      files under `sdkgen/*/stainless/custom-code/`. Publishing targets the

      private staging repos. Safe to merge - this PR's head branch

      `stlc/seal-tracking` is skipped by the generate workflow's skip-bot

      guard in `detect`, and on merge the push loop-breaker `guard` sees only

      custom-code changes and runs no rebuild.


      <!-- codesmith:footer -->

      ---

      <a

      href="https://app.blacksmith.sh/mirurobotics/codesmith/openapi/pr/381?autoLogin=true&ref=codesmith_pr_footer"><picture><source

      media="(prefers-color-scheme: dark)"

      srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3.svg"><source

      media="(prefers-color-scheme: light)"

      srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-light-v3.svg"><img

      alt="View with [code]smith"

      src="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png"

      width="162" height="28"></picture></a> <a

      href="https://backend.blacksmith.sh/track/enable-autofix?expires=1795806796&installation_model_id=425273&pr_number=381&ref=codesmith_pr_footer&repository=mirurobotics%2Fopenapi&return_to=https%3A%2F%2Fgithub.com%2Fmirurobotics%2Fopenapi%2Fpull%2F381&signature=22576ca30b7a9b5179ba686401e8539245f08cdc1682091295fe21383a37f37a"><picture><source

      media="(prefers-color-scheme: dark)"

      srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"><source

      media="(prefers-color-scheme: light)"

      srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-light.svg"><img

      alt="Autofix with [code]smith"

      src="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png"

      width="190" height="28"></picture></a>

      <sup>Need help on this PR? Tag <code>@codesmith</code> with what you

      need.</sup>


      <!-- codesmith:autofix:disabled -->

      <!-- /codesmith:footer -->


      Co-authored-by: stlc-sealback-bot[bot]
      <298483487+stlc-sealback-bot[bot]@users.noreply.github.com>

      Co-authored-by: Ben <ben@mirurobotics.com>
    author: stlc-sealback-bot[bot]
    branch: HEAD
    dirty: false
  x-build:
    built_at: '2026-10-28T22:21:18.805528+00:00'
servers:
  - url: https://api.mirurobotics.com/beta
    description: Miru Platform API
security:
  - ApiKeyAuth: []
paths:
  /components/{component_id}:
    parameters:
      - $ref: '#/components/parameters/MiruVersion'
    get:
      tags:
        - Components
      summary: Get
      description: Retrieve a component by ID.
      operationId: getComponent
      parameters:
        - $ref: '#/components/parameters/component_id'
        - $ref: '#/components/parameters/component_expansions'
      responses:
        '200':
          description: Successfully retrieved the component.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
components:
  parameters:
    MiruVersion:
      name: Miru-Version
      in: header
      required: true
      schema:
        type: string
        example: 2026-10-28.everglades
      description: The API version the client was built against.
    component_id:
      name: component_id
      in: path
      required: true
      description: The unique identifier of the component.
      schema:
        type: string
        example: cmp_123
    component_expansions:
      name: expand
      in: query
      required: false
      description: Fields to expand on the component.
      schema:
        type: array
        items:
          $ref: '#/components/schemas/ComponentExpansion'
        example:
          - roles
  schemas:
    Component:
      title: Component
      description: >-
        A kind of hardware on a device whose calibrations Miru stores, such as
        an arm or a camera. Miru creates a component the first time a device
        reports a calibration with a new slug; components are never created,
        archived, or deleted through the API. A workspace holds at most 100
        components.
      allOf:
        - $ref: '#/components/schemas/BaseComponent'
        - type: object
          properties:
            roles:
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/ComponentRole'
              description: >-
                The component's roles, in the order first reported. Miru adds a
                role the first time a device reports it and never removes one.
                At most 100. Expand using `expand=roles` in the query string.
              example:
                - object: component_role
                  id: cmp_rol_123
                  component_id: cmp_123
                  slug: front-left
                  name: Front Left
                  created_at: '2021-01-01T00:00:00Z'
                  updated_at: '2021-01-01T00:00:00Z'
            aspects:
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/ComponentAspect'
              description: >-
                The component's aspects, in the order first reported. Miru adds
                an aspect the first time a device reports it and never removes
                one. At most 100. Expand using `expand=aspects` in the query
                string.
              example:
                - object: component_aspect
                  id: cmp_asp_123
                  component_id: cmp_123
                  slug: pose
                  name: Pose
                  created_at: '2021-01-01T00:00:00Z'
                  updated_at: '2021-01-01T00:00:00Z'
      example:
        object: component
        id: cmp_123
        name: Arm
        slug: arm
        created_at: '2021-01-01T00:00:00Z'
        updated_at: '2021-01-01T00:00:00Z'
    ComponentExpansion:
      type: string
      enum:
        - roles
        - aspects
      x-enum-varnames:
        - COMPONENT_EXPAND_ROLES
        - COMPONENT_EXPAND_ASPECTS
    BaseComponent:
      title: Component
      type: object
      required:
        - object
        - id
        - name
        - slug
        - created_at
        - updated_at
      properties:
        object:
          type: string
          enum:
            - component
          example: component
          x-stainless-const: true
          description: The object type, which is always `component`.
        id:
          type: string
          example: cmp_123
          description: ID of the component.
        name:
          type: string
          example: Arm
          description: >-
            Display name of the component. Defaults to a name inferred from the
            slug, with words split on `-` and `_` and each capitalized
            (`front-camera` becomes `Front Camera`). Publishers can rename it.
        slug:
          type: string
          example: arm
          description: >-
            An immutable, code-friendly name for the component, validated like
            config type slugs. Component slugs and config type slugs are
            separate namespaces, so a component may share a slug with a config
            type.
        created_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: >-
            Timestamp of when Miru created the component, which is when a device
            first reported a calibration with its slug.
        updated_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the component was last updated.
    ComponentRole:
      title: Component Role
      description: >-
        A role a calibrated unit fills on a device, such as `left` or
        `front-left`. Miru creates a role the first time a device reports a
        calibration with a new role for the component; roles are never created
        or deleted through the API. A component holds at most 100 roles.
      allOf:
        - $ref: '#/components/schemas/BaseComponentRole'
        - type: object
          properties:
            component:
              allOf:
                - $ref: '#/components/schemas/Component'
              description: >-
                The component the role belongs to. Expand using
                `expand=component` in the query string.
      example:
        object: component_role
        id: cmp_rol_123
        component_id: cmp_123
        slug: front-left
        name: Front Left
        created_at: '2021-01-01T00:00:00Z'
        updated_at: '2021-01-01T00:00:00Z'
    ComponentAspect:
      title: Component Aspect
      description: >-
        An aspect of a unit that was calibrated, when the unit has more than
        one, such as `pose` or `joint-offsets`. Miru creates an aspect the first
        time a device reports a calibration with a new aspect for the component;
        aspects are never created or deleted through the API. A component holds
        at most 100 aspects.
      allOf:
        - $ref: '#/components/schemas/BaseComponentAspect'
        - type: object
          properties:
            component:
              allOf:
                - $ref: '#/components/schemas/Component'
              description: >-
                The component the aspect belongs to. Expand using
                `expand=component` in the query string.
      example:
        object: component_aspect
        id: cmp_asp_123
        component_id: cmp_123
        slug: joint-offsets
        name: Joint Offsets
        created_at: '2021-01-01T00:00:00Z'
        updated_at: '2021-01-01T00:00:00Z'
    BaseComponentRole:
      title: Component Role
      type: object
      required:
        - object
        - id
        - component_id
        - slug
        - name
        - created_at
        - updated_at
      properties:
        object:
          type: string
          enum:
            - component_role
          example: component_role
          x-stainless-const: true
          description: The object type, which is always `component_role`.
        id:
          type: string
          example: cmp_rol_123
          description: ID of the role.
        component_id:
          type: string
          example: cmp_123
          description: ID of the component the role belongs to.
        slug:
          type: string
          example: front-left
          description: >-
            The immutable value devices report as `role` when they create a
            calibration, unique within the component.
        name:
          type: string
          example: Front Left
          description: >-
            Display name of the role. Defaults to a name inferred from the slug,
            with words split on `-` and `_` and each capitalized (`front-left`
            becomes `Front Left`). Publishers can rename it.
        created_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: >-
            Timestamp of when Miru created the role, which is when a device
            first reported a calibration with its slug for the component.
        updated_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the role was last updated.
    BaseComponentAspect:
      title: Component Aspect
      type: object
      required:
        - object
        - id
        - component_id
        - slug
        - name
        - created_at
        - updated_at
      properties:
        object:
          type: string
          enum:
            - component_aspect
          example: component_aspect
          x-stainless-const: true
          description: The object type, which is always `component_aspect`.
        id:
          type: string
          example: cmp_asp_123
          description: ID of the aspect.
        component_id:
          type: string
          example: cmp_123
          description: ID of the component the aspect belongs to.
        slug:
          type: string
          example: joint-offsets
          description: >-
            The immutable value devices report as `aspect` when they create a
            calibration, unique within the component.
        name:
          type: string
          example: Joint Offsets
          description: >-
            Display name of the aspect. Defaults to a name inferred from the
            slug, with words split on `-` and `_` and each capitalized
            (`joint-offsets` becomes `Joint Offsets`). Publishers can rename it.
        created_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: >-
            Timestamp of when Miru created the aspect, which is when a device
            first reported a calibration with its slug for the component.
        updated_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the aspect was last updated.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: The API key to use for authentication.

````

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