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

# Get prompt settings schema

> Prompt settings and their accepted values. Send a field's `key` in an update and use its
`value_type` and `validation` to build the value. For selection fields with `options_ref`, pick the
option's `value` from the matching `option_sets` entry. Read the current values with
[Get prompt settings](/api-reference/voice-agent-settings/get-prompt-settings).

The example below is shortened to one field; the actual response includes every prompt field.




## OpenAPI

````yaml /api-reference/openapi.yaml get /api/v1/voice_agents/{id}/concerns/prompts/schema
openapi: 3.1.0
info:
  title: Customer API
  version: 1.0.0-beta
  description: >
    **Beta.** This API is in beta. Contracts can still change while we complete
    it, including

    breaking changes; we announce changes in the release notes and keep them as
    rare as we can.

    Pin your integration to the field names and status codes documented here and
    treat unknown

    fields as optional.


    REST API to create and configure voice agents, add tools, test them with
    evals, read

    conversations, and place AI outbound calls.


    **Authentication.** Voice agents, settings, tools, evals and conversations
    use an API token

    created on the **Keys** page of your dashboard. Each operation lists the
    scope it needs under

    `x-required-scopes`; `<resource>:*` grants every action of a resource.
    Outbound calls use a

    separate outbound API token from the **Outbound Calls** page. Send either
    token as

    `Authorization: Bearer <token>`.


    **Responses.** A single resource is returned as a flat JSON object; a
    collection is wrapped in a plural

    key (`voice_agents`, `tools`, `evals`, `conversations`) next to its paging
    fields. Deleting returns

    `204 No Content`. Everything is addressed by the voice agent's `id`; prompts
    and numbers are internal.


    **Errors.** Authentication failures return `{ "error", "message" }`. Request
    quotas return

    `429` with a `Retry-After` header and `{ "error", "message", "details" }`,
    where `error` is a

    stable machine-readable code. Every API call must finish within 30 seconds;
    longer requests return `503` with

    `mf-core:api-request-timeout`. Validation errors list the problems per
    field; the exact shape is

    shown on each operation.
servers:
  - url: https://app.miyon.ai
security: []
tags:
  - name: Voice Agents
    description: >-
      Create and manage voice agents. Configure them through the voice, prompt
      and knowledge-base settings endpoints.
  - name: Voice Agent Settings
    description: >-
      Read and change a voice agent's voice, prompt and knowledge-base settings.
      A voice agent has one prompt (its instructions, greeting and conversation
      settings). Read the schema of a settings group, then update one
      `key`/`value` pair per request.
  - name: Tools
    description: >-
      Create, configure, enable and execute agent tools. Tools are enabled per
      voice agent with `agent_id`. These endpoints accept scoped API tokens
      only; every error uses the `{ "error", "message", "details" }` envelope
      with a stable `mf-core:tool-*` code.
  - name: Outbound Calls
    description: >-
      Place AI calls and review their outcome. Authenticate with the outbound
      API token from the **Outbound Calls** page.
  - name: Conversations
    description: >-
      List and inspect the conversations of your account, including transcripts
      when your retention settings allow.
  - name: Evals
    description: >-
      Evals are automated test conversations that check how a voice agent
      responds. A scenario contains cases; each case contains the caller's turns
      and what the agent must say or do. Run a scenario to get pass/fail
      results.
paths:
  /api/v1/voice_agents/{id}/concerns/prompts/schema:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: ID of the voice agent.
    get:
      tags:
        - Voice Agent Settings
      summary: Get prompt settings schema
      description: >
        Prompt settings and their accepted values. Send a field's `key` in an
        update and use its

        `value_type` and `validation` to build the value. For selection fields
        with `options_ref`, pick the

        option's `value` from the matching `option_sets` entry. Read the current
        values with

        [Get prompt
        settings](/api-reference/voice-agent-settings/get-prompt-settings).


        The example below is shortened to one field; the actual response
        includes every prompt field.
      operationId: getPromptsConcernSchema
      responses:
        '200':
          description: Schema of the prompt settings. Shortened example.
          headers:
            Content-Language:
              description: Locale of the `label` values.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConcernSchemaResponse'
              example:
                concern: prompts
                schema_version: prompts.v4
                shape: blocks
                revision: >-
                  prompt:987:prompts_schema:sha256:3f1a9b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8
                blocks:
                  - id: conversation
                    label: Conversation
                    label_key: prompts.blocks.conversation
                    fields:
                      - prompts.mute_user_while_assistant_speaks
                fields:
                  - key: prompts.mute_user_while_assistant_speaks
                    block: conversation
                    name: mute_user_while_assistant_speaks
                    component: toggle
                    value_type: boolean
                    label: Mute user while assistant speaks
                    label_key: prompts.mute_user_while_assistant_speaks.label
                    write: {}
                    validation: {}
                    dependencies: []
                    capabilities:
                      visible: true
                      writable: true
                      disabled: false
                      reason: null
                option_sets: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: >-
            Missing scope, or prompt editing is not enabled for your account.
            Contact support to enable it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
        '404':
          $ref: '#/components/responses/ConcernNotFound'
        '422':
          $ref: '#/components/responses/ConcernUnprocessable'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
        - scopedJwt: []
components:
  schemas:
    ConcernSchemaResponse:
      type: object
      description: >-
        Fields, their accepted values and display groups of a settings group,
        for this agent's current configuration.
      properties:
        concern:
          type: string
          description: The settings group this schema describes.
        schema_version:
          type: string
          description: Version of the settings schema.
        shape:
          type: string
          const: blocks
          description: Layout hint for clients that render the settings; always `blocks`.
        revision:
          type: string
          description: >-
            Revision of the schema. Changes when the available fields or options
            change.
        blocks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: ID of the display group.
              label:
                type: string
                description: Localized group title.
              label_key:
                type: string
                description: Translation key of the title.
              fields:
                type: array
                items:
                  type: string
                description: Keys of the fields in this group, in display order.
          description: Display groups, each listing the keys of the fields it contains.
        fields:
          type: array
          items:
            type: object
            additionalProperties: true
            properties:
              key:
                type: string
                description: The exact string to send as `key` in a PATCH.
              block:
                type: string
                description: ID of the display group in `blocks`.
              name:
                type: string
              component:
                type: string
                description: Suggested input control, for example `select` or `toggle`.
              value_type:
                type: string
                enum:
                  - string
                  - integer
                  - number
                  - boolean
                  - array
                  - object
              label:
                type: string
                description: Localized; see the `Content-Language` header.
              label_key:
                type: string
                description: >-
                  Translation key. Only relevant if you localize the UI
                  yourself.
              description_key:
                type:
                  - string
                  - 'null'
                description: >-
                  Translation key. Only relevant if you localize the UI
                  yourself.
              placeholder_key:
                type:
                  - string
                  - 'null'
                description: >-
                  Translation key. Only relevant if you localize the UI
                  yourself.
              options_ref:
                type: string
                description: >-
                  Name of the entry in `option_sets` that lists the accepted
                  values.
              write:
                type: object
                additionalProperties: true
                description: Write hints for the field.
              validation:
                type: object
                additionalProperties: true
                description: Constraints such as minimum, maximum or pattern.
              dependencies:
                type: array
                items:
                  type: object
                  additionalProperties: true
                description: Other fields whose value influences this field.
              affects_schema:
                type: boolean
                description: Present on writable fields only.
              capabilities:
                type: object
                properties:
                  visible:
                    type: boolean
                  writable:
                    type: boolean
                  disabled:
                    type: boolean
                  reason:
                    type:
                      - string
                      - 'null'
                  reason_key:
                    type:
                      - string
                      - 'null'
                required:
                  - visible
                  - writable
                  - disabled
                  - reason
                description: >-
                  Whether the field is currently visible and writable. `reason`
                  explains a disabled field.
            required:
              - key
              - block
              - name
              - component
              - value_type
              - label
              - write
              - validation
              - dependencies
              - capabilities
          description: >-
            Every setting of the group with its type, constraints and current
            capabilities.
        option_sets:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              additionalProperties: true
          description: >-
            Accepted values for selection fields, keyed by the field's
            `options_ref`.
      required:
        - concern
        - schema_version
        - shape
        - revision
        - blocks
        - fields
        - option_sets
    AuthError:
      type: object
      description: >-
        Returned when the API token is missing, invalid, expired or lacks the
        required scope.
      properties:
        error:
          type: string
          description: Short error category.
          examples:
            - Authentication failed
            - Forbidden
        message:
          type: string
          description: Human-readable explanation. Absent on some 403 responses.
          examples:
            - 'Missing required scope: voice_agents:write'
      required:
        - error
    FieldErrors:
      type: object
      description: Field-keyed error envelope. `base` holds errors not tied to one field.
      properties:
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Problems per field; `base` for problems not tied to one field.
      required:
        - errors
      additionalProperties: false
    ConcernResponse:
      type: object
      description: >-
        Response format for reading and updating a settings group. On 409 and
        422 the same format is returned with `errors` filled and
        `values`/`revision` reflecting the unchanged current state.
      properties:
        concern:
          type: string
          enum:
            - voice_config
            - prompts
            - knowledge_base
          description: The settings group this response belongs to.
        shape:
          type: string
          const: blocks
          description: Layout hint for clients that render the settings; always `blocks`.
        schema_version:
          type: string
          examples:
            - voice-config.v1
            - prompts.v4
            - knowledge_base.v2
          description: Version of the settings schema, for example `voice-config.v1`.
        save_mode:
          type: 'null'
          description: Reserved; always null.
        revision:
          type: string
          description: >-
            Current revision. Send it as `If-Match` on voice settings writes to
            avoid overwriting concurrent changes.
        values:
          type: object
          additionalProperties: true
          description: Dotted field key to current value.
        schema:
          type: 'null'
          description: Reserved; always null. Read the schema from the schema endpoint.
        schema_revision:
          type: 'null'
          description: Reserved; always null.
        effects:
          type: array
          items:
            $ref: '#/components/schemas/ConcernEffect'
          description: Related settings that changed as a consequence of this update.
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Problems per field key. Empty on success.
        draft:
          type: 'null'
          description: Reserved; always null.
        affected_concerns:
          type: array
          items:
            type: object
            properties:
              concern:
                type: string
              revision:
                type: string
            required:
              - concern
              - revision
          description: Settings groups whose revision changed.
        system_prompt:
          type: string
          description: >-
            Voice settings updates only. Present when the update regenerated the
            agent's instructions.
      required:
        - concern
        - shape
        - schema_version
        - revision
        - values
        - effects
        - errors
        - affected_concerns
    ApiError:
      type: object
      description: >-
        Error format with a stable machine-readable `error` code, a
        human-readable `message` and request-specific `details`.
      properties:
        error:
          type: string
          description: >-
            Stable machine-readable error code, for example
            `mf-core:rate-limit-exceeded`.
        message:
          type: string
          description: Human-readable explanation.
        details:
          type: object
          additionalProperties: true
          description: >-
            Request-specific data, for example the offending parameter or the
            quota policy.
      required:
        - error
        - message
        - details
    ConcernEffect:
      type: object
      description: A dependent value that changed as a side effect of the write.
      properties:
        key:
          type: string
          description: Dotted key of the setting that changed.
        old_value:
          description: Value before the update.
        value:
          description: Value after the update.
        reason:
          type:
            - string
            - 'null'
          description: Why the setting changed, when the server can say.
      required:
        - key
  responses:
    Unauthorized:
      description: Missing, expired or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthError'
          example:
            error: Authentication failed
            message: Missing bearer token
    ConcernNotFound:
      description: Voice agent, or its prompt, not found in your account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FieldErrors'
          example:
            errors:
              base:
                - agent or prompt not found
    ConcernUnprocessable:
      description: >
        Validation failed. The body is one of: the settings response format with
        `errors` keyed by field

        (unsupported key, wrong type, out of range, not writable); `{ "errors":
        { "base": [...] } }` when the

        agent cannot be modified through the API; or `{ "error", "message",
        "details" }` with

        `mf-core:voice-agent-prompt-selection-unsupported` when a `prompt_id`
        other than the agent's own

        prompt is supplied.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ConcernResponse'
                title: Settings response with errors
              - $ref: '#/components/schemas/FieldErrors'
                title: Field errors
              - $ref: '#/components/schemas/ApiError'
                title: Error code
          examples:
            fieldError:
              value:
                concern: prompts
                shape: blocks
                schema_version: prompts.v4
                revision: >-
                  prompt:987:prompts:sha256:9c2e4f0a7b1d3e5f6a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f
                values:
                  prompts.mute_user_while_assistant_speaks: false
                effects: []
                errors:
                  prompts.mute_user_while_assistant_speaks:
                    - must be a boolean
                affected_concerns: []
            promptSelection:
              value:
                error: mf-core:voice-agent-prompt-selection-unsupported
                message: This endpoint only supports the agent's initial prompt
                details:
                  field: prompt_id
    RateLimited:
      description: >-
        Too many requests. Wait the number of seconds given in `Retry-After`
        before retrying.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 1
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            error: mf-core:rate-limit-exceeded
            message: Rate limit exceeded
            details:
              policy: api_write
              retry_after: 3
    ServiceUnavailable:
      description: >-
        The request was not completed. Either it exceeded the 30-second request
        time limit that applies to every API call (narrow the request and
        retry), or rate limiting is temporarily unavailable. Retry shortly.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            timeout:
              value:
                error: mf-core:api-request-timeout
                message: The API request exceeded the 30-second time limit
                details: {}
            limiter:
              value:
                error: mf-core:rate-limiter-unavailable
                message: API rate limiting is temporarily unavailable
                details:
                  policy: api_write
  securitySchemes:
    scopedJwt:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Scoped API token. Required scopes are listed on each operation in
        x-required-scopes.

````

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