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

# Read one prompt field's full text

> Reads the FULL text of ONE field getAssistant stubs out or omits — the same prompt bodies it replaces with a `[N chars — use readAssistantText]` placeholder: `config.system_prompt`, `config.tone_of_voice_prompt`, and any other `config.<key>` ending in `_prompt`; the top-level `name`/`description` also resolve. Answers the WHOLE value in one response — expect it to be large, and make one call per field: unlike the internal reader, there is no windowing, pagination or search on this surface. `id`/`role` are the same pair getAssistant takes; a `tenant`/`id` your credentials do not cover — including an id from a project outside them — answers the same uniform 404 as getAssistant.



## OpenAPI

````yaml api-reference/specs/claudia/v1.json POST /v1/tenants/{tenant}/assistants/{id}/text
openapi: 3.0.1
info:
  title: Claudia API
  version: 1.0.0
servers:
  - url: https://api.cloudhumans.com/claudia
    description: Production
  - url: https://api.cloudhumans.com/claudia/staging
    description: Staging
security:
  - bearerAuth: []
tags:
  - name: MCP Servers
    description: >-
      The MCP servers your agents can call tools on. Registering one here is
      what makes its tools selectable in an agent; the credentials it needs are
      stored encrypted and never read back.
  - name: Knowledge Base Content
    description: Read, search and edit the content that answers your customers.
  - name: Content Quality
    description: Rewrites proposed for content that is answering your customers badly.
  - name: Playground
    description: >-
      Talk to one of your agents as if you were a customer, without touching a
      real conversation.
  - name: Project Settings
    description: >-
      Read and change how a ClaudIA project behaves — the settings screens of
      the ClaudIA app, as an API.
  - name: Content Improvements
    description: Answers Claudia proposes for questions your content does not cover yet.
  - name: Knowledge Bases
    description: The knowledge bases your account can manage.
  - name: Content Sources
    description: The sites Claudia crawls to keep a knowledge base in sync.
  - name: Agents
    description: >-
      The AI agents (assistants) configured for your tenant: the orchestrator
      (supervisor) and its specialists (react). Reads answer the same
      passthrough shape the platform stores; creates land as DRAFTS a human
      reviews and publishes in the app.
  - name: Agent Tools
    description: >-
      The tool catalog your agents can be given, aggregated across every MCP
      server registered for the tenant. This is the same catalog an assistant's
      mcp_servers[].tools whitelist is validated against.
  - name: Conversations
    description: >-
      Read access to a conversation's lean investigation summary — messages,
      status and resolution — and the execution trace behind one of its
      processed messages, without the internal processing state the hub UI's
      full read carries.
paths:
  /v1/tenants/{tenant}/assistants/{id}/text:
    post:
      tags:
        - Agents
      summary: Read one prompt field's full text
      description: >-
        Reads the FULL text of ONE field getAssistant stubs out or omits — the
        same prompt bodies it replaces with a `[N chars — use
        readAssistantText]` placeholder: `config.system_prompt`,
        `config.tone_of_voice_prompt`, and any other `config.<key>` ending in
        `_prompt`; the top-level `name`/`description` also resolve. Answers the
        WHOLE value in one response — expect it to be large, and make one call
        per field: unlike the internal reader, there is no windowing, pagination
        or search on this surface. `id`/`role` are the same pair getAssistant
        takes; a `tenant`/`id` your credentials do not cover — including an id
        from a project outside them — answers the same uniform 404 as
        getAssistant.
      operationId: readAssistantText
      parameters:
        - name: tenant
          in: path
          description: >-
            Tenant whose agents you are managing. Discover the tenants your
            credentials cover with `listMyClaudiaProjects`. A tenant your
            credentials do not cover is indistinguishable from one that does not
            exist.
          required: true
          schema:
            type: string
        - name: id
          in: path
          description: >-
            Assistant to operate on, as returned by listAssistants
            (`assistant_id` field).
          required: true
          schema:
            type: string
        - name: role
          in: query
          description: >-
            Deployment the assistant lives in: `supervisor` (orchestrator
            agents) or `react` (specialist agents), plus `qna` for
            knowledge-base Q&A agents. Read them with that role; they are
            CREATED through proposeAssistantCreate as `deployment: react` with
            `graphId: qna_agent`, and the platform derives the `qna` role from
            the graph. listAssistants returns it as `deployment_role` on each
            row — pass that value back here verbatim.
          required: true
          schema:
            type: string
            enum:
              - supervisor
              - react
              - qna
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReadAssistantTextRequest'
        required: true
      responses:
        '200':
          description: The field's full text.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssistantText'
        '400':
          description: The request could not be answered as written.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, expired or invalid credentials.
        '403':
          description: The credentials hold no account allowed to manage this content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            No such resource, or none these credentials can reach — the two are
            deliberately indistinguishable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: '`id` or `path` could not be used as given.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: >-
                      Machine-readable cause: `invalid_assistant_id` (truncated
                      `id` matching other candidates) or `invalid_path` (`path`
                      does not resolve to a readable text field).
                  message:
                    type: string
                    description: >-
                      Explains the problem and, where possible, names the valid
                      candidates — full assistant ids for
                      `invalid_assistant_id`, readable field paths for
                      `invalid_path`.
                additionalProperties: true
                description: >-
                  Carries `error` and `message`. `error` is
                  `invalid_assistant_id` when `id` is a truncated prefix that
                  matches other candidates — the same cause and shape as
                  getAssistant's 422, `message` names them — or `invalid_path`
                  when `path` does not resolve to a readable text field on this
                  assistant, where `message` explains why and, where possible,
                  which fields do.
        '429':
          description: Rate limit applied by the API gateway. Back off and retry.
components:
  schemas:
    ReadAssistantTextRequest:
      type: object
      required:
        - path
      properties:
        path:
          type: string
          description: >-
            Field to read: `config.<key>` for a config value — the same keys
            getAssistant stubs out, e.g. `config.system_prompt`,
            `config.tone_of_voice_prompt`, or any other `config.<key>` ending in
            `_prompt` — or the top-level `name`/`description`.
          example: config.system_prompt
      description: Which field to read, in full.
    AssistantText:
      type: object
      required:
        - path
        - text
        - length
      properties:
        path:
          type: string
          description: The path this text came from, echoed back.
          example: config.system_prompt
        text:
          type: string
          description: The field's full value, verbatim.
        length:
          type: integer
          format: int32
          description: Character count of `text`.
          example: 4213
      description: The full text of one field.
    Error:
      required:
        - error
      type: object
      properties:
        error:
          type: string
          description: What went wrong.
          example: 'Forbidden: token holds no claim for the requested account'
      description: Something the caller needs to fix.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````