> ## 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 config schema by ID.

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


## OpenAPI

````yaml /references/platform-api/2026-10-28.yaml get /config_schemas/{config_schema_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:
  /config_schemas/{config_schema_id}:
    parameters:
      - $ref: '#/components/parameters/MiruVersion'
    get:
      tags:
        - Config Schemas
      summary: Get
      description: Retrieve a config schema by ID.
      operationId: getConfigSchema
      parameters:
        - $ref: '#/components/parameters/config_schema_id'
        - $ref: '#/components/parameters/config_schema_expansions'
      responses:
        '200':
          description: Successfully retrieved the config schema.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigSchema'
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.
    config_schema_id:
      name: config_schema_id
      in: path
      required: true
      description: The unique identifier of the config schema.
      schema:
        type: string
        example: cfg_sch_123
    config_schema_expansions:
      name: expand
      in: query
      required: false
      description: Fields to expand on the config schema resource.
      schema:
        type: array
        items:
          $ref: '#/components/schemas/ConfigSchemaExpansion'
        example:
          - documents
  schemas:
    ConfigSchema:
      title: Config Schema
      allOf:
        - $ref: '#/components/schemas/BaseConfigSchema'
        - type: object
          properties:
            config_type:
              allOf:
                - $ref: '#/components/schemas/ConfigType'
              description: >-
                Expand the config type using 'expand=config_type' in the query
                string.
      example:
        object: config_schema
        id: cfg_sch_123
        digest: sha256:1234567890
        os: linux
        config_type_name: Motion Control
        instance_slots:
          - key: default
            name: Default
            filepath: /srv/miru/configs/v1/motion-control.json
            required: true
        instance_format: json
        created_at: '2021-01-01T00:00:00Z'
        updated_at: '2021-01-01T00:00:00Z'
        config_type_id: cfg_typ_123
        language: jsonschema
        format: json
    ConfigSchemaExpansion:
      type: string
      enum:
        - documents
        - config_type
      x-enum-varnames:
        - CONFIG_SCHEMA_EXPAND_DOCUMENTS
        - CONFIG_SCHEMA_EXPAND_CONFIG_TYPE
    BaseConfigSchema:
      title: Base Config Schema
      type: object
      required:
        - object
        - id
        - digest
        - os
        - config_type_name
        - instance_format
        - created_at
        - updated_at
        - config_type_id
        - language
        - format
        - instance_slots
      properties:
        object:
          type: string
          enum:
            - config_schema
          example: config_schema
          x-stainless-const: true
          description: The object type, which is always `config_schema`.
        id:
          type: string
          example: cfg_sch_123
          description: ID of the config schema.
        digest:
          type: string
          example: sha256:1234567890
          description: The digest of the config schema.
        os:
          allOf:
            - $ref: '#/components/schemas/OS'
          readOnly: true
          description: >-
            The operating system family this config schema targets, derived from
            its instance slot filepaths, which must all agree. A schema created
            without `instance_slots` gets a default slot at a Unix path, so it
            is `linux`. Read-only: clients cannot set it.
        config_type_name:
          type: string
          example: Motion Control
          description: The name of the config type.
        instance_slots:
          type: array
          minItems: 1
          description: >-
            The file system destinations this config schema writes to. Every
            config schema has at least one slot. Slots share the schema's
            validation and differ only in where the file is written; a file
            needing different validation is a different config type, not a slot.
            Slot keys and filepaths must each be unique within the schema, and
            slot filepaths must be unique across every config schema in a
            release.
          items:
            $ref: '#/components/schemas/InstanceSlot'
          example:
            - key: default
              name: Default
              filepath: /srv/miru/configs/v1/motion-control.json
              required: true
        instance_format:
          $ref: '#/components/schemas/InstanceFormat'
        created_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the config schema was created.
        updated_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the config schema was last updated.
        config_type_id:
          type: string
          example: cfg_typ_123
          description: ID of the config type.
        language:
          $ref: '#/components/schemas/SchemaLanguage'
        format:
          $ref: '#/components/schemas/SchemaFormat'
        documents:
          allOf:
            - $ref: '#/components/schemas/SchemaDocuments'
          description: >-
            Expand the config schema documents using `expand=documents` in the
            query string.
          example:
            - id: doc_123
              name: main.json
              data: |
                {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object"
                }
    ConfigType:
      allOf:
        - $ref: '#/components/schemas/BaseConfigType'
      example:
        object: config_type
        id: cfg_typ_123
        name: Motion Control
        slug: motion-control
        created_at: '2021-01-01T00:00:00Z'
        updated_at: '2021-01-01T00:00:00Z'
        created_by_id: usr_123
        updated_by_id: usr_123
    OS:
      title: OS
      type: string
      description: >
        An operating system family, from the agent's build-time OS vocabulary.
        Shared across resources (devices, config schemas, file rules, releases).
        This is the machine-readable OS kind, distinct from a human-readable
        version string.

        - `linux`

        - `windows`
      example: linux
      enum:
        - linux
        - windows
      x-enum-varnames:
        - OS_LINUX
        - OS_WINDOWS
    InstanceSlot:
      title: Instance Slot
      type: object
      required:
        - key
        - name
        - filepath
        - required
      properties:
        key:
          type: string
          pattern: ^[a-z0-9][a-z0-9_-]*$
          maxLength: 128
          example: controller_2
          description: >-
            An immutable, code-friendly identifier for this slot, unique within
            the schema. Lowercase alphanumerics, underscores, and hyphens; must
            start with an alphanumeric; at most 128 characters.
        name:
          type: string
          example: Controller 2
          description: The human-readable name of this slot.
        filepath:
          type: string
          example: >-
            /var/local/forge/configuration/robot_drivers/controller_2/topic_list.yaml
          description: >-
            The absolute file system path where instances bound to this slot are
            written. Must be unique within the schema, and unique across every
            config schema in a release.
        required:
          type: boolean
          example: true
          description: >-
            Whether every deployment of a release containing this schema must
            include an instance for this slot. A deployment includes at most one
            config instance per slot.
        description:
          type: string
          example: Topic list for the second motor controller.
          description: An optional human-readable description of this slot.
      example:
        key: controller_2
        name: Controller 2
        filepath: >-
          /var/local/forge/configuration/robot_drivers/controller_2/topic_list.yaml
        required: true
        description: Topic list for the second motor controller.
    InstanceFormat:
      title: Instance Format
      type: string
      description: >
        The serialization format of config content. A config instance is written
        to the device filesystem in this format.

        - `json`: standard JSON.

        - `yaml`: YAML 1.2.

        - `jsonc`: JSON with comments (JSON plus `//` and `/* */` comment
        syntax).

        - `xml`: XML.

        - `csv`: comma-separated values (RFC 4180).

        - `text`: plain, unstructured text with no specific format.
      enum:
        - json
        - yaml
        - jsonc
        - xml
        - csv
        - text
      x-enum-varnames:
        - INSTANCE_FORMAT_JSON
        - INSTANCE_FORMAT_YAML
        - INSTANCE_FORMAT_JSONC
        - INSTANCE_FORMAT_XML
        - INSTANCE_FORMAT_CSV
        - INSTANCE_FORMAT_TEXT
    SchemaLanguage:
      title: Schema Language
      type: string
      example: jsonschema
      enum:
        - jsonschema
        - cue
        - opaque
      x-enum-varnames:
        - JSONSCHEMA
        - CUE
        - OPAQUE
    SchemaFormat:
      title: Schema Format
      type: string
      enum:
        - json
        - yaml
        - cue
      x-enum-varnames:
        - SCHEMA_FORMAT_JSON
        - SCHEMA_FORMAT_YAML
        - SCHEMA_FORMAT_CUE
    SchemaDocuments:
      type: array
      items:
        $ref: '#/components/schemas/SchemaDocument'
      example:
        - id: doc_123
          name: main.json
          data: |
            {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "type": "object"
            }
    BaseConfigType:
      title: Config Type
      type: object
      required:
        - object
        - id
        - name
        - slug
        - created_at
        - updated_at
      properties:
        object:
          type: string
          enum:
            - config_type
          example: config_type
          x-stainless-const: true
          description: The object type, which is always `config_type`.
        id:
          type: string
          example: cfg_123
          description: ID of the config type.
        name:
          type: string
          example: My Config Type
          description: Name of the config type.
        slug:
          type: string
          example: my-config-type
          description: An immutable, code-friendly name for the config type.
        created_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the config type was created.
        updated_at:
          type: string
          format: date-time
          example: '2021-01-01T00:00:00Z'
          description: Timestamp of when the config type was last updated.
    SchemaDocument:
      title: Schema Document
      type: object
      required:
        - id
        - name
        - data
      properties:
        id:
          type: string
          description: The unique identifier for this document.
          example: doc_123
        name:
          type: string
          description: The document filename.
          example: main.json
        data:
          type: string
          description: The raw document content.
      example:
        id: doc_123
        name: main.json
        data: |
          {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object"
          }
  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.