> ## 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.

# Modifier le rôle d’un membre de groupe

> Met à jour le rôle d’un utilisateur explicitement ajouté à un groupe (une ligne `group_members`, affichée comme `access_type: "group"` par `GET /api/v1/groups/{group_id}/members`). Accepte soit le `role` général (admin/viewer), soit un `role_id` : un rôle système ou un rôle personnalisé de votre organisation (voir `GET /api/v1/roles`). Fournissez exactement l’un des deux. Nécessite une clé API globale.

Les membres de l’organisation sont hors périmètre : leur accès à chaque groupe provient de leur rôle dans l’organisation ; une modification au niveau du groupe ne changerait donc pas leurs droits. Les cibler renvoie `409` ; utilisez plutôt `PATCH /api/v1/organizations/members/{user_id}`. L’utilisateur propriétaire de la clé API ne peut pas être modifié. Il n’y a aucune restriction de dernier administrateur au niveau du groupe : son unique administrateur peut être rétrogradé, car les administrateurs de l’organisation conservent l’accès administrateur à tous ses groupes.

**Les rôles autres que `admin` et `viewer` sont appliqués aux accès mais ne sont pas encore affichés dans le tableau de bord.** Un `role_id` comme Editor ou Billing Manager accorde les autorisations réelles de ce rôle sur tous les sites du groupe, mais la liste des membres du groupe affiche actuellement tout rôle non administrateur comme « Viewer ». Privilégiez `admin` / `viewer` au niveau du groupe si un administrateur client doit aussi voir le rôle attribué.



## OpenAPI

````yaml fr/api-reference/openapi.json patch /api/v1/groups/{group_id}/members/{user_id}
openapi: 3.1.0
info:
  title: API AthenaHQ
  description: >-
    L’API AthenaHQ permet de gérer vos sites et prompts par programme pour
    l’optimisation de contenu par IA.
  version: 1.0.0
  contact:
    email: support@athenahq.ai
servers:
  - url: https://api.athenahq.ai
    description: Serveur de production
security:
  - apiKey: []
tags:
  - name: Basics
    description: Opérations API principales pour gérer sites et prompts
  - name: Metrics
    description: Points de terminaison de métriques et analyses de visibilité IA
  - name: Billing
    description: Points de facturation et crédits pour gérer la consommation
  - name: Team Management
    description: Points de terminaison de gestion des membres et invitations
  - name: Groups
    description: Points de terminaison de gestion des groupes de sites
  - name: Content
    description: >-
      Points de terminaison Content Hub : onglets, URL suivies et détail des
      prompts par URL.
  - name: Pitch Workspace
    description: >-
      Points de terminaison des rapports Pitch Workspace : exécutions à
      l’échelle de l’organisation avec concurrents, prompts, attributs et
      métriques agrégées.
  - name: Knowledge Base
    description: >-
      Endpoints de lecture de la base de connaissances de la marque — faits
      approuvés et piliers qui les organisent.
paths:
  /api/v1/groups/{group_id}/members/{user_id}:
    parameters:
      - name: group_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Identifiant unique du groupe
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Identifiant unique de l’utilisateur cible
    patch:
      tags:
        - Team Management
      summary: Modifier le rôle d’un membre de groupe
      description: >-
        Met à jour le rôle d’un utilisateur explicitement ajouté à un groupe
        (une ligne `group_members`, affichée comme `access_type: "group"` par
        `GET /api/v1/groups/{group_id}/members`). Accepte soit le `role` général
        (admin/viewer), soit un `role_id` : un rôle système ou un rôle
        personnalisé de votre organisation (voir `GET /api/v1/roles`).
        Fournissez exactement l’un des deux. Nécessite une clé API globale.


        Les membres de l’organisation sont hors périmètre : leur accès à chaque
        groupe provient de leur rôle dans l’organisation ; une modification au
        niveau du groupe ne changerait donc pas leurs droits. Les cibler renvoie
        `409` ; utilisez plutôt `PATCH /api/v1/organizations/members/{user_id}`.
        L’utilisateur propriétaire de la clé API ne peut pas être modifié. Il
        n’y a aucune restriction de dernier administrateur au niveau du groupe :
        son unique administrateur peut être rétrogradé, car les administrateurs
        de l’organisation conservent l’accès administrateur à tous ses groupes.


        **Les rôles autres que `admin` et `viewer` sont appliqués aux accès mais
        ne sont pas encore affichés dans le tableau de bord.** Un `role_id`
        comme Editor ou Billing Manager accorde les autorisations réelles de ce
        rôle sur tous les sites du groupe, mais la liste des membres du groupe
        affiche actuellement tout rôle non administrateur comme « Viewer ».
        Privilégiez `admin` / `viewer` au niveau du groupe si un administrateur
        client doit aussi voir le rôle attribué.
      operationId: updateGroupMemberRole
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroupMemberRoleRequest'
      responses:
        '200':
          description: Rôle du membre mis à jour
          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: Identifiant unique de l’utilisateur
                      group_id:
                        type: string
                        format: uuid
                        description: Identifiant unique du groupe
                      role:
                        type: string
                        description: >-
                          Slug du rôle attribué (ex. : 'admin', 'viewer' ou le
                          slug d’un rôle personnalisé). Correspond au champ
                          `role` renvoyé par `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 du rôle attribué, système ou personnalisé
                required:
                  - success
                  - member
        '400':
          description: Requête incorrecte — corps ou paramètres de chemin invalides
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Non autorisé — clé API invalide ou absente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Interdit - Clé non globale ou modification de soi-même
          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: >-
            Introuvable — groupe absent de l’organisation, utilisateur sans
            appartenance explicite ou `role_id` absent de l’organisation
          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: >-
            Conflit — l’accès au groupe vient de l’organisation : aucun rôle
            propre au groupe à modifier. Modifier le rôle d’organisation
            s’applique à tous ses groupes et sites.
          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: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    UpdateGroupMemberRoleRequest:
      type: object
      description: >-
        Corps de requête de modification du rôle d’un membre de groupe.
        Fournissez exactement un champ parmi `role` et `role_id`.
      properties:
        role:
          type: string
          enum:
            - admin
            - viewer
          description: Rôle général à attribuer. Exclusif avec `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: >-
            Attribuez un rôle par ID, système ou personnalisé (voir `GET
            /api/v1/roles`). Exclusif avec `role`. 404 si inexistant ou hors
            organisation. Les ID système sont des sentinelles de forme GUID
            (`00000000-0000-0000-0000-000000000001`, par exemple), pas des UUID
            RFC 4122. Au niveau groupe, les rôles autres qu’Admin et Viewer sont
            respectés pour l’accès mais affichés comme "Viewer" dans la liste du
            tableau de bord.
          example: 789e0123-e89b-12d3-a456-426614174000
    Error:
      type: object
      description: Objet de réponse d’erreur
      required:
        - error
      properties:
        error:
          type: string
          description: Message expliquant l’erreur
          example: Unauthorized
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Clé API d’authentification. Créez-en une
        [ici](https://app.athenahq.ai/organization?tab=api).

````

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