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

# Actualizar rol de un miembro del grupo

> Actualiza el rol de un usuario añadido explícitamente a un grupo (fila `group_members`, mostrada como `access_type: "group"` por `GET /api/v1/groups/{group_id}/members`). Acepta el `role` general (admin/viewer) o `role_id`, del sistema o personalizado (consulta `GET /api/v1/roles`); indica exactamente uno. Requiere una clave global.

Los miembros de organización quedan fuera: acceden a los grupos por su rol en ella y una escritura de grupo no lo cambiaría. Devuelven `409`; usa `PATCH /api/v1/organizations/members/{user_id}`. No permite modificar al usuario de la clave. No hay restricción de último administrador en grupos: los administradores de organización conservan ese acceso a todos.

**Los roles distintos de `admin` y `viewer` se respetan para el acceso, pero aún no se muestran en el panel.** Un `role_id` como Editor o Billing Manager concede sus permisos reales en todos los sitios del grupo, pero la lista del panel muestra cualquier rol no administrador como "Lector". Prefiere `admin` / `viewer` si el administrador cliente también necesita ver el rol asignado.



## OpenAPI

````yaml es/api-reference/openapi.json patch /api/v1/groups/{group_id}/members/{user_id}
openapi: 3.1.0
info:
  title: API de AthenaHQ
  description: >-
    La API de AthenaHQ ofrece acceso programático para gestionar tus sitios web
    y consultas para optimizar el contenido con IA.
  version: 1.0.0
  contact:
    email: support@athenahq.ai
servers:
  - url: https://api.athenahq.ai
    description: Servidor de producción
security:
  - apiKey: []
tags:
  - name: Basics
    description: Operaciones principales de la API para gestionar sitios web y consultas
  - name: Metrics
    description: Endpoints de métricas y análisis para monitorizar la visibilidad en IA
  - name: Billing
    description: Endpoints de facturación y créditos para gestionar el uso
  - name: Team Management
    description: Endpoints para gestionar miembros del equipo e invitaciones
  - name: Groups
    description: Endpoints para gestionar grupos de sitios web
  - name: Content
    description: >-
      Endpoints para acceder a los datos del centro de contenidos: pestañas, URL
      monitorizadas y desglose de consultas por URL.
  - name: Pitch Workspace
    description: >-
      Endpoints para acceder a los informes del espacio de propuestas:
      ejecuciones de propuestas con alcance de organización, con competidores,
      consultas, atributos y métricas agregadas.
  - name: Knowledge Base
    description: >-
      Endpoints para leer la base de conocimientos de la marca: datos aprobados
      sobre la marca y los pilares que los organizan.
paths:
  /api/v1/groups/{group_id}/members/{user_id}:
    parameters:
      - name: group_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Identificador único del grupo
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Identificador único del usuario de destino
    patch:
      tags:
        - Team Management
      summary: Actualizar rol de un miembro del grupo
      description: >-
        Actualiza el rol de un usuario añadido explícitamente a un grupo (fila
        `group_members`, mostrada como `access_type: "group"` por `GET
        /api/v1/groups/{group_id}/members`). Acepta el `role` general
        (admin/viewer) o `role_id`, del sistema o personalizado (consulta `GET
        /api/v1/roles`); indica exactamente uno. Requiere una clave global.


        Los miembros de organización quedan fuera: acceden a los grupos por su
        rol en ella y una escritura de grupo no lo cambiaría. Devuelven `409`;
        usa `PATCH /api/v1/organizations/members/{user_id}`. No permite
        modificar al usuario de la clave. No hay restricción de último
        administrador en grupos: los administradores de organización conservan
        ese acceso a todos.


        **Los roles distintos de `admin` y `viewer` se respetan para el acceso,
        pero aún no se muestran en el panel.** Un `role_id` como Editor o
        Billing Manager concede sus permisos reales en todos los sitios del
        grupo, pero la lista del panel muestra cualquier rol no administrador
        como "Lector". Prefiere `admin` / `viewer` si el administrador cliente
        también necesita ver el rol asignado.
      operationId: updateGroupMemberRole
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroupMemberRoleRequest'
      responses:
        '200':
          description: Rol del miembro actualizado correctamente
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  member:
                    type: object
                    required:
                      - user_id
                      - group_id
                      - role
                      - role_id
                    properties:
                      user_id:
                        type: string
                        format: uuid
                        description: Identificador único del usuario
                      group_id:
                        type: string
                        format: uuid
                        description: Identificador único del grupo
                      role:
                        type: string
                        description: >-
                          Slug del rol asignado (p. ej., 'admin', 'viewer' o el
                          de un rol personalizado). Coincide con `role` devuelto
                          por `GET /api/v1/groups/{group_id}/members`.
                        example: viewer
                      role_id:
                        type: string
                        pattern: >-
                          ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
                        description: >-
                          ID del rol asignado (un ID de rol del sistema o de un
                          rol personalizado)
                required:
                  - success
                  - member
        '400':
          description: 'Solicitud incorrecta: parámetros de cuerpo o ruta no válidos'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: 'Sin autorización: falta la clave de API o no es válida'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Acceso denegado: la clave no es global o se intenta modificar a uno
            mismo
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                not_global:
                  value:
                    error: 'Forbidden: global API key required'
                self_modification:
                  value:
                    error: You cannot modify your own membership
        '404':
          description: >-
            No encontrado: el grupo no existe en tu organización, el usuario no
            pertenece explícitamente al grupo o el `role_id` solicitado no
            existe en tu organización
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                group_not_found:
                  value:
                    error: Group not found
                member_not_found:
                  value:
                    error: Group member not found
                role_not_found:
                  value:
                    error: Role not found
        '409':
          description: >-
            Conflicto: el acceso del usuario al grupo proviene de su pertenencia
            a la organización, por lo que no hay un rol del grupo que cambiar.
            Cambiar su rol de organización se aplica a todos los grupos y sitios
            web de ella.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: >-
                  User is an organization member: their access to this group
                  comes from their organization role, so there is no group-level
                  role to change. Changing it with PATCH
                  /api/v1/organizations/members/{user_id} would apply across
                  every group and website in the organization, not only this
                  group.
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    UpdateGroupMemberRoleRequest:
      type: object
      description: >-
        Cuerpo de la solicitud para actualizar el rol de un miembro de un grupo.
        Indica exactamente uno de `role` o `role_id`.
      properties:
        role:
          type: string
          enum:
            - admin
            - viewer
          description: Rol general que se asignará. Mutuamente excluyente con `role_id`.
          example: viewer
        role_id:
          type: string
          pattern: >-
            ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          description: >-
            Asigna cualquier rol por ID, del sistema o personalizado de tu
            organización (consulta `GET /api/v1/roles`). Excluyente con `role`.
            Devuelve 404 si no existe o es de otra organización. Los ID del
            sistema son centinelas con formato GUID (p. ej.,
            `00000000-0000-0000-0000-000000000001`), no UUID RFC 4122. En
            grupos, los roles distintos de Admin y Viewer se respetan para el
            acceso, pero se muestran como "Lector" en la lista de miembros del
            panel.
          example: 789e0123-e89b-12d3-a456-426614174000
    Error:
      type: object
      description: Objeto de respuesta de error
      required:
        - error
      properties:
        error:
          type: string
          description: Mensaje de error que describe qué ha fallado
          example: Unauthorized
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Clave de API para autenticarse. Puedes crear una
        [aquí](https://app.athenahq.ai/organization?tab=api).

````

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