Personas
11 endpoints
POST /api/v5/artifacts/personas/get
Get Persona
Get persona information using the canonical shared persona operation.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
persona_id?: `string` | `null`
draft_id?: `string` | `null`
color_search?: `string` | `null`
icon_search?: `string` | `null`
descriptions_search?: `string` | `null`
instructions_search?: `string` | `null`
parameter_field_search?: `string` | `null`
parameter_ids?: `string`[] | `null`
color_show_selected?: `boolean` | `null`
icon_show_selected?: `boolean` | `null`
parameter_field_show_selected?: `boolean` | `null`
}Response:
{
actor_name?: `string` | `null`
persona_exists?: `boolean` | `null`
can_edit?: `boolean` | `null`
disabled_reason?: `string` | `null`
draft_version?: `integer` | `null`
group_id?: `string` | `null`
basic_show_ai_generate?: `boolean` | `null`
content_show_ai_generate?: `boolean` | `null`
parameters_step_show_ai_generate?: `boolean` | `null`
names?: `PersonaNameSection` | `null`
descriptions?: `PersonaDescriptionSection` | `null`
colors?: `PersonaColorSection` | `null`
icons?: `PersonaIconSection` | `null`
instructions?: `PersonaInstructionSection` | `null`
flags?: `PersonaFlagSection` | `null`
departments?: `PersonaDepartmentSection` | `null`
parameter_fields?: `PersonaParameterFieldSection` | `null`
examples?: `PersonaExampleSection` | `null`
parameters?: `PersonaParameterSection` | `null`
voices?: `PersonaVoiceSection` | `null`
...
}POST /api/v5/artifacts/personas/search
Search Persona
Search personas — composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
search?: `string` | `null`
scenario_ids?: `string`[] | `null`
field_ids?: `string`[] | `null`
filter_department_ids?: `string`[] | `null`
scenario_search?: `string` | `null`
field_search?: `string` | `null`
department_search?: `string` | `null`
color_search?: `string` | `null`
icon_search?: `string` | `null`
voice_search?: `string` | `null`
instruction_search?: `string` | `null`
page_size?: `integer` | `null`
page_offset?: `integer` | `null`
}Response:
{
actor_name?: `string` | `null`
personas?: `ListPersonaApiPersona`[] | `null`
scenario_filter?: `ListFilterSection` | `null`
field_filter?: `ListFilterSection` | `null`
department_filter?: `ListFilterSection` | `null`
color_filter?: `ListFilterSection` | `null`
icon_filter?: `ListFilterSection` | `null`
voice_filter?: `ListFilterSection` | `null`
instruction_filter?: `ListFilterSection` | `null`
total_count?: `integer` | `null`
import_fields?: `ImportField`[] | `null`
}POST /api/v5/artifacts/personas/create
Create Persona
Create personas using composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
personas: `CreatePersonaItem`[]
}Response:
{
results: `PersonaResultItem`[]
}POST /api/v5/artifacts/personas/update
Update Persona
Update personas using composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
personas: `UpdatePersonaItem`[]
}Response:
{
results: `PersonaResultItem`[]
}POST /api/v5/artifacts/personas/duplicate
Duplicate Persona
Duplicate a persona — composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
persona_id: `string`
}Response:
{
success: `boolean`
persona_id: `string`
message: `string`
}POST /api/v5/artifacts/personas/delete
Delete Persona
Bulk delete personas — composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
persona_ids: `string`[]
}Response:
{
results: `DeletePersonaResult`[]
}PATCH /api/v5/artifacts/personas/draft
Patch Persona Draft
Patch persona draft — composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
input_draft_id?: `string` | `null`
expected_version?: `integer`
name?: `string` | `null`
name_id?: `string` | `null`
description?: `string` | `null`
description_id?: `string` | `null`
instructions?: `string` | `null`
instructions_id?: `string` | `null`
examples?: `string`[] | `null`
example_ids?: `string`[] | `null`
color_id?: `string` | `null`
icon_id?: `string` | `null`
flag_id?: `string` | `null`
department_ids?: `string`[] | `null`
parameter_field_ids?: `string`[] | `null`
voice_ids?: `string`[] | `null`
}Response:
{
success: `boolean`
draft_id: `string`
new_version: `integer`
message: `string`
form_state: `DraftFormState`
}POST /api/v5/artifacts/personas/drafts
Get Persona Drafts
List persona drafts owned by the current profile.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Response:
{
entries?: `GetPersonaDraftResponse`[] | `null`
}POST /api/v5/artifacts/personas/docs
Get Persona Docs Endpoint
Get composed documentation for the persona artifact.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
entity_id?: `string` | `null`
}Response:
{
name: `string`
type: `string`
description: `string`
artifact?: `DocsResponse` | `null`
entries: `DocsResponse`[]
resources: `DocsResponse`[]
permissions: `OperationInfo`[]
api_operations: `OperationInfo`[]
page_metadata?: `DocsApiResponse` | `null`
}POST /api/v5/artifacts/personas/export
Export Personas
Export all personas as a clean, denormalized CSV.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
persona_id?: `string` | `null`
search?: `string` | `null`
scenario_ids?: `string`[] | `null`
field_ids?: `string`[] | `null`
filter_department_ids?: `string`[] | `null`
}Response:
{
upload_id: `string`
file_name: `string`
row_count: `integer`
}POST /api/v5/artifacts/personas/refresh
Persona Refresh
Refresh persona materialized views and invalidate caches.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Response:
{
success: `boolean`
refreshed_views: `string`[]
invalidated_tags: `string`[]
}