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

# Update a profile group

> Sparse update of a profile group, including per-feed `unset`. Requires an admin application key (tenant-scoped, created by an owner or admin) or a dashboard user token. Writes by a user token require an owner or admin.



## OpenAPI

````yaml /api-reference/admin-api.json patch /v2/organizations/{orgId}/workspaces/{workspaceId}/profile-groups/{profileGroupId}
openapi: 3.0.0
info:
  version: 1.0.0
  title: MinervaAI Admin API
  description: Admin endpoints for the Minerva application suite.
servers:
  - url: https://admin-api.gominerva.com
    description: The instance of admin-api to send the Swagger test requests to
security:
  - ApiKeyAuth: []
tags: []
paths:
  /v2/organizations/{orgId}/workspaces/{workspaceId}/profile-groups/{profileGroupId}:
    patch:
      tags:
        - Profile Groups
      summary: Update a profile group
      description: >-
        Sparse update of a profile group, including per-feed `unset`. Requires
        an admin application key (tenant-scoped, created by an owner or admin)
        or a dashboard user token. Writes by a user token require an owner or
        admin.
      parameters:
        - in: path
          name: orgId
          required: true
          schema:
            type: string
          description: >-
            The organization (tenant) id. Must equal the tenant of the admin
            key.
        - in: path
          name: workspaceId
          required: true
          schema:
            type: string
          description: >-
            A workspace id in this organization. A workspace of another
            organization is 404.
        - in: path
          name: profileGroupId
          required: true
          schema:
            type: string
          description: The profile group id.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfileGroupUpdateRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileGroupResponse'
        '400':
          description: Invalid request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >-
            No credentials were sent; the API key was revoked, has expired, or
            its application is deactivated (`API-key authentication was
            denied.`); the key is not an admin application key (standard keys
            and keys that are not application keys are refused); it belongs to
            another organization; or its creator is no longer an owner or admin.
            For a user token, the user is not a member, or is not an owner or
            admin on a write.
          content:
            text/plain:
              schema:
                type: string
        '404':
          description: >-
            The workspace or record is not in this organization, or the
            application API key (`mrva-…`) is unknown (`API-key authentication
            was denied.`).
          content:
            text/plain:
              schema:
                type: string
        '503':
          description: >-
            The authentication service is temporarily unavailable
            (`Authentication service is unavailable.`). Nothing was changed;
            retry with backoff.
          content:
            text/plain:
              schema:
                type: string
      security:
        - AdminApiKeyAuth: []
        - UserTokenAuth: []
components:
  schemas:
    ProfileGroupUpdateRequest:
      type: object
      description: >-
        At least one member is required. The `name` and `description` length
        limits apply on create only, so an existing group with a longer name or
        description can still be updated.
      additionalProperties: false
      minProperties: 1
      properties:
        name:
          type: string
          minLength: 1
        description:
          type: string
        priority:
          type: integer
          minimum: 0
          maximum: 1000000
          description: >-
            Higher wins. Each feed is decided by the highest-priority assigned
            group that does not say `unset` for it.
        archived:
          type: boolean
        monitoringFeedFrequencies:
          $ref: '#/components/schemas/ProfileGroupMonitoringFeedFrequencies'
    ProfileGroupResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            id:
              type: string
            workspaceId:
              type: string
            profileGroup:
              $ref: '#/components/schemas/ProfileGroup'
    ApiError:
      type: object
      description: Standard API error response
      properties:
        status:
          type: number
          description: HTTP status code
          example: 400
        message:
          type: string
          description: Error message
          example: Bad request
        code:
          type: string
          description: Error code
          example: VALIDATION_ERROR
      required:
        - status
        - message
    ProfileGroupMonitoringFeedFrequencies:
      type: object
      additionalProperties: false
      properties:
        Sanctions:
          $ref: '#/components/schemas/ProfileGroupMonitoringCadence'
        PEP:
          $ref: '#/components/schemas/ProfileGroupMonitoringCadence'
        News:
          $ref: '#/components/schemas/ProfileGroupMonitoringCadence'
        Legal:
          $ref: '#/components/schemas/ProfileGroupMonitoringCadence'
        Criminal:
          $ref: '#/components/schemas/ProfileGroupMonitoringCadence'
        Internal:
          $ref: '#/components/schemas/ProfileGroupMonitoringCadence'
    ProfileGroup:
      type: object
      additionalProperties: true
      properties:
        id:
          type: string
        key:
          type: string
        name:
          type: string
        description:
          type: string
        priority:
          type: integer
          minimum: 0
          maximum: 1000000
        archived:
          type: boolean
        monitoringFeedFrequencies:
          $ref: '#/components/schemas/ProfileGroupMonitoringFeedFrequencies'
    ProfileGroupMonitoringCadence:
      type: string
      description: >-
        A profile-group cadence. `unset` defers the feed to the next
        lower-priority assigned group that speaks, or to a speaking risk tier,
        and resolves to `never` when nothing speaks. It never falls back to the
        workspace default. An omitted feed keeps today's meaning: inherit the
        workspace setting when this is the highest-priority group.
      enum:
        - daily
        - weekly
        - semimonthly
        - biweekly
        - monthly
        - quarterly
        - semiannually
        - annually
        - never
        - deltas
        - unset
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Admin API key for authentication. Manage API keys in the Minerva
        dashboard under Administration > Developers.
    AdminApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        An admin application key: `Authorization: Api-Key <token>` (or legacy
        `x-api-key`). Only tenant owners and admins can create one. Standard
        keys are refused with 403 on workspace management and tenant
        configuration routes.
    UserTokenAuth:
      type: apiKey
      in: header
      name: x-user-token
      description: Firebase user token for authentication

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.