---
title: "Get an assistant (config + all revisions)"
method: GET
path: "/v1/assistants/{agent_id}"
tags: ["assistants"]
---

# Get an assistant (config + all revisions)

`GET /v1/assistants/{agent_id}`

Compose the full assistant view: agent config + all revisions + active flow.

## Path parameters

- `agent_id` string, uuid, required

## Response `200`

Successful Response

- AssistantDetailResponse — Response for GET /assistants/{id} — the full assistant view.
  - `agent` AgentResponse, required
    - `id` string, uuid, required
    - `organization_id` string, uuid, required
    - `name` string, required
    - `description` string, nullable
    - `active_revision_id` string, uuid, nullable
    - `active_revision` AgentRevisionResponse
      - `id` string, uuid, required
      - `agent_id` string, uuid, required
      - `name` string, required
      - `description` string, nullable
      - `persona` string, nullable
      - `system_prompt` string, nullable
      - `context_variables` ContextVarSpec[], nullable — Deprecated legacy projection; contains assistant SYSTEM declarations only. Use system_context_variables.
        - `name` string, required
        - `type` 'string' | 'int' | 'float' | 'bool' | 'enum', required
        - `source` 'system' | 'derived'
        - `enum_values` string[], nullable
        - `reask_cap` integer, nullable
        - `description` string, nullable
      - `variable_defaults` object, nullable
      - `tool_refs` object[], nullable
      - `knowledge_base_refs` object[], nullable
      - `platform_tools` object
      - `policies_enabled` boolean
      - `policy_refs` object[], nullable
      - `channel_specific_config` object, nullable
      - `router_config_id` string, uuid, nullable
      - `model_settings` ModelChainEntry
        - `model` string, required
        - `config` ModelConfig
          - `temperature` number, nullable
          - `max_tokens` integer, nullable
          - `top_p` number, nullable
          - `stop_sequences` string[], nullable
          - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable
          - `request_timeout_ms` integer, nullable
          - `thinking_budget` integer, nullable
      - `analyzer_model_settings` ModelChainEntry
        - `model` string, required
        - `config` ModelConfig
          - `temperature` number, nullable
          - `max_tokens` integer, nullable
          - `top_p` number, nullable
          - `stop_sequences` string[], nullable
          - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable
          - `request_timeout_ms` integer, nullable
          - `thinking_budget` integer, nullable
      - `workflow_enabled` boolean
      - `memory_enabled` boolean
      - `current_time` CurrentTimeSettings — One tier's optional current-time overrides. ``None`` means inherit for that field. An empty object therefore clears the tier and inherits both values. The API stores only non-null fields.
        - `enabled` boolean, nullable
        - `timezone` string, nullable
      - `kb_clearance_level` integer, nullable
      - `kb_audience_tags` string[]
      - `continue_after_flow` boolean, nullable
      - `voice_call_settings` object, nullable
      - `created_by` string, nullable
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `published_at` string, date-time, nullable
      - `system_context_variables` SystemContextVariableSpec[], nullable, required — Assistant-owned immutable inputs. Derived variables belong to workflows.
        - `name` string, required
        - `type` 'string' | 'int' | 'float' | 'bool' | 'enum', required
        - `enum_values` string[], nullable
        - `description` string, nullable
    - `metadata` object
    - `platform_tools` object
    - `knowledge_gap_analysis_enabled` boolean
    - `release_suite_id` string, uuid, nullable
    - `release_gate_mode` 'off' | 'advisory' — Per-agent release-gate mode (ENG-727). ``off`` = no release checks; ``advisory`` = compute + display a verdict but never block activation. The gate always runs and surfaces a verdict; it never refuses activation.
    - `release_gate_max_failures` integer
    - `max_active_calls` integer, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `revisions` AgentRevisionResponse[]
    - `id` string, uuid, required
    - `agent_id` string, uuid, required
    - `name` string, required
    - `description` string, nullable
    - `persona` string, nullable
    - `system_prompt` string, nullable
    - `context_variables` ContextVarSpec[], nullable — Deprecated legacy projection; contains assistant SYSTEM declarations only. Use system_context_variables.
      - `name` string, required
      - `type` 'string' | 'int' | 'float' | 'bool' | 'enum', required
      - `source` 'system' | 'derived'
      - `enum_values` string[], nullable
      - `reask_cap` integer, nullable
      - `description` string, nullable
    - `variable_defaults` object, nullable
    - `tool_refs` object[], nullable
    - `knowledge_base_refs` object[], nullable
    - `platform_tools` object
    - `policies_enabled` boolean
    - `policy_refs` object[], nullable
    - `channel_specific_config` object, nullable
    - `router_config_id` string, uuid, nullable
    - `model_settings` ModelChainEntry
      - `model` string, required
      - `config` ModelConfig
        - `temperature` number, nullable
        - `max_tokens` integer, nullable
        - `top_p` number, nullable
        - `stop_sequences` string[], nullable
        - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable
        - `request_timeout_ms` integer, nullable
        - `thinking_budget` integer, nullable
    - `analyzer_model_settings` ModelChainEntry
      - `model` string, required
      - `config` ModelConfig
        - `temperature` number, nullable
        - `max_tokens` integer, nullable
        - `top_p` number, nullable
        - `stop_sequences` string[], nullable
        - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable
        - `request_timeout_ms` integer, nullable
        - `thinking_budget` integer, nullable
    - `workflow_enabled` boolean
    - `memory_enabled` boolean
    - `current_time` CurrentTimeSettings — One tier's optional current-time overrides. ``None`` means inherit for that field. An empty object therefore clears the tier and inherits both values. The API stores only non-null fields.
      - `enabled` boolean, nullable
      - `timezone` string, nullable
    - `kb_clearance_level` integer, nullable
    - `kb_audience_tags` string[]
    - `continue_after_flow` boolean, nullable
    - `voice_call_settings` object, nullable
    - `created_by` string, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `published_at` string, date-time, nullable
    - `system_context_variables` SystemContextVariableSpec[], nullable, required — Assistant-owned immutable inputs. Derived variables belong to workflows.
      - `name` string, required
      - `type` 'string' | 'int' | 'float' | 'bool' | 'enum', required
      - `enum_values` string[], nullable
      - `description` string, nullable
  - `workflow_id` string, uuid, nullable
  - `active_flow_revision_id` string, uuid, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/revisions/9cd7291d4228/schema)
