Skip to Content

Profiles

14 endpoints

POST /api/v5/artifacts/profiles/context

Get Profile Context

Identity + permissions + theme context endpoint.

Parameters:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

Request body:

{ profiles: `CreateProfileItem`[] }

Response:

{ results: `ProfileResultItem`[] }

POST /api/v5/artifacts/profiles/update

Update Profile

Update profiles using composable infra architecture.

Parameters:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

Request body:

{ profiles: `UpdateProfileItem`[] }

Response:

{ results: `ProfileResultItem`[] }

POST /api/v5/artifacts/profiles/duplicate

Duplicate Profile

Duplicate a profile — composable infra architecture.

Parameters:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

Response:

{ entries?: `GetProfileDraftResponse`[] | `null` }

POST /api/v5/artifacts/profiles/delete

Delete Profile

Bulk delete profiles — composable infra architecture.

Parameters:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

Response:

{ ok: `boolean` reason?: `string` | `null` }

POST /api/v5/artifacts/profiles/export

Export Profiles

Export all profiles as a clean, denormalized CSV.

Parameters:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

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:

NameInRequiredDescription
X-Api-KeyheaderNo
authorizationheaderNo
X-MCPheaderNo

Response:

{ success: `boolean` refreshed_views: `string`[] invalidated_tags: `string`[] }

Last updated on