Profiles
14 endpoints
POST /api/v5/artifacts/profiles/context
Get Profile Context
Identity + permissions + theme context endpoint.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
department_id?: `string` | `null`
}Response:
{
id?: `string` | `null`
name?: `string` | `null`
role?: `string` | `null`
active?: `boolean` | `null`
role_artifacts?: `string`[] | `null`
available_sections?: `string`[] | `null`
scoped_roles?: `string`[] | `null`
department_ids?: `string`[] | `null`
primary_department_id?: `string` | `null`
settings_id?: `string` | `null`
theme?: `ThemePrimitives` | `null`
session_id?: `string` | `null`
is_emulation?: `boolean` | `null`
emulation_depth?: `integer` | `null`
role_resources?: `QGetProfileContextV4RoleResource`[] | `null`
}POST /api/v5/artifacts/profiles/get
Get Profile
Get profile information using the canonical shared profile operation.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
target_profile_id?: `string` | `null`
draft_id?: `string` | `null`
}Response:
{
actor_name?: `string` | `null`
profile_exists?: `boolean` | `null`
can_edit?: `boolean` | `null`
disabled_reason?: `string` | `null`
draft_version?: `integer` | `null`
group_id?: `string` | `null`
profile_id?: `string` | `null`
role?: `string` | `null`
role_options?: `string`[] | `null`
basic_show_ai_generate?: `boolean` | `null`
general_show_ai_generate?: `boolean` | `null`
names?: `ProfileNameSection` | `null`
emails?: `ProfileEmailSection` | `null`
request_limits?: `ProfileRequestLimitSection` | `null`
flags?: `ProfileFlagSection` | `null`
departments?: `ProfileDepartmentSection` | `null`
roles?: `ProfileRoleSection` | `null`
}POST /api/v5/artifacts/profiles/search
Search Profile
Search profiles — 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`
cohort_ids?: `string`[] | `null`
filter_department_ids?: `string`[] | `null`
role_filter?: `string` | `null`
cohort_search?: `string` | `null`
department_search?: `string` | `null`
role_search?: `string` | `null`
page_size?: `integer` | `null`
page_offset?: `integer` | `null`
}Response:
{
actor_name?: `string` | `null`
profiles?: `ListProfilesApiProfile`[] | `null`
department_filter?: `ListFilterSection` | `null`
role_filter?: `ListFilterSection` | `null`
total_count?: `integer` | `null`
}POST /api/v5/artifacts/profiles/create
Create Profile
Create profiles using composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
profiles: `CreateProfileItem`[]
}Response:
{
results: `ProfileResultItem`[]
}POST /api/v5/artifacts/profiles/update
Update Profile
Update profiles using composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
profiles: `UpdateProfileItem`[]
}Response:
{
results: `ProfileResultItem`[]
}POST /api/v5/artifacts/profiles/duplicate
Duplicate Profile
Duplicate a profile — composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
target_profile_id: `string`
}Response:
{
success: `boolean`
profile_id: `string`
message: `string`
}PATCH /api/v5/artifacts/profiles/draft
Patch Profile Draft
Patch profile 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`
email?: `string` | `null`
request_limit?: `integer` | `null`
flag_id?: `string` | `null`
department_ids?: `string`[] | `null`
email_ids?: `string`[] | `null`
role_ids?: `string`[] | `null`
request_limit_ids?: `string`[] | `null`
}Response:
{
success: `boolean`
draft_id: `string`
new_version: `integer`
message: `string`
form_state?: `ProfileDraftFormState` | `null`
}POST /api/v5/artifacts/profiles/drafts
Get Profile Drafts
List profile 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?: `GetProfileDraftResponse`[] | `null`
}POST /api/v5/artifacts/profiles/delete
Delete Profile
Bulk delete profiles — composable infra architecture.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
profile_ids: `string`[]
}Response:
{
results: `DeleteProfileResult`[]
}POST /api/v5/artifacts/profiles/docs
Get Profile Docs Endpoint
Get composed documentation for the profile 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/profiles/emulate
Emulate Profile
Create emulation grant. Next request will resolve to target profile.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
target_profile_id: `string`
ttl_minutes?: `integer` | `null`
}Response:
{
allowed: `boolean`
reason?: `string` | `null`
grant_id?: `string` | `null`
expires_at?: `string` | `null`
}POST /api/v5/artifacts/profiles/unemulate
Unemulate Profile
Exit innermost emulation layer. Next request resolves one layer less.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Response:
{
ok: `boolean`
reason?: `string` | `null`
}POST /api/v5/artifacts/profiles/export
Export Profiles
Export all profiles as a clean, denormalized CSV.
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Api-Key | header | No | — |
authorization | header | No | — |
X-MCP | header | No | — |
Request body:
{
profile_export_id?: `string` | `null`
}Response:
{
upload_id: `string`
file_name: `string`
row_count: `integer`
}POST /api/v5/artifacts/profiles/refresh
Profile Refresh
Refresh profile 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`[]
}