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

# Inviter en masse dans des sites web ou groupes

> Invite un utilisateur dans plusieurs sites web OU plusieurs groupes en une requête. Fournissez exactement l’un de `website_ids` ou `group_ids` — ils s’excluent mutuellement. Chaque cible est traitée indépendamment ; certaines peuvent réussir et d’autres échouer (ex. : utilisateur déjà membre). En mode 'email', un seul e-mail d’invitation récapitulatif est envoyé. Les invitations de groupe nécessitent une clé API globale. Les invitations de site avec une clé limitée à certains sites exigent aussi que le créateur de la clé soit administrateur de chaque site indiqué. Les invitations directes ne peuvent pas créer de comptes avec des domaines e-mail de Cuba, d’Iran, de Corée du Nord, de Russie, de Biélorussie ou des domaines régionaux de Crimée (y compris Sébastopol), de Donetsk ou de Louhansk. La réponse reste HTTP 201 avec `success: false` et une `error` pour chaque cible dans `results`. Les domaines `.ua` généraux restent autorisés. Les comptes existants peuvent toujours être invités.



## OpenAPI

````yaml fr/api-reference/openapi.json post /api/v1/invites/bulk
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/invites/bulk:
    post:
      tags:
        - Team Management
      summary: Inviter en masse dans des sites web ou groupes
      description: >-
        Invite un utilisateur dans plusieurs sites web OU plusieurs groupes en
        une requête. Fournissez exactement l’un de `website_ids` ou `group_ids`
        — ils s’excluent mutuellement. Chaque cible est traitée indépendamment ;
        certaines peuvent réussir et d’autres échouer (ex. : utilisateur déjà
        membre). En mode 'email', un seul e-mail d’invitation récapitulatif est
        envoyé. Les invitations de groupe nécessitent une clé API globale. Les
        invitations de site avec une clé limitée à certains sites exigent aussi
        que le créateur de la clé soit administrateur de chaque site indiqué.
        Les invitations directes ne peuvent pas créer de comptes avec des
        domaines e-mail de Cuba, d’Iran, de Corée du Nord, de Russie, de
        Biélorussie ou des domaines régionaux de Crimée (y compris Sébastopol),
        de Donetsk ou de Louhansk. La réponse reste HTTP 201 avec `success:
        false` et une `error` pour chaque cible dans `results`. Les domaines
        `.ua` généraux restent autorisés. Les comptes existants peuvent toujours
        être invités.
      operationId: createBulkInvite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkInviteRequest'
      responses:
        '201':
          description: >-
            Invitation groupée traitée. Consultez les résultats individuels de
            chaque cible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkInviteResponse'
              examples:
                websites:
                  summary: Invitations groupées à des sites
                  value:
                    success: true
                    results:
                      - website_id: 123e4567-e89b-12d3-a456-426614174000
                        success: true
                        message: User added to website
                        user_id: abc12345-e89b-12d3-a456-426614174000
                      - website_id: 987e6543-e21b-12d3-a456-426614174000
                        success: false
                        error: User is already a member of this website
                groups:
                  summary: Invitations groupées à des groupes
                  value:
                    success: true
                    results:
                      - group_id: 456e7890-e89b-12d3-a456-426614174000
                        success: true
                        message: User added to group
                        user_id: abc12345-e89b-12d3-a456-426614174000
                      - group_id: 789e0123-e89b-12d3-a456-426614174000
                        success: false
                        error: User is already a member of this group
        '400':
          description: Requête incorrecte — paramètres invalides
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_or_both_targets:
                  summary: Aucun ou les deux champs website_ids/group_ids fournis
                  value:
                    error: >-
                      Exactly one of website_ids or group_ids must be provided
                      (not both)
                too_many_websites:
                  summary: Plus de 50 website_ids
                  value:
                    error: website_ids must contain at most 50
                too_many_groups:
                  summary: Plus de 50 group_ids
                  value:
                    error: group_ids must contain at most 50
                invalid_email:
                  value:
                    error: Invalid email
        '401':
          description: Non autorisé — clé API invalide ou absente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Interdit - Les invitations de groupe nécessitent une clé API globale
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: 'Forbidden: global API key required'
        '404':
          description: Une ou plusieurs cibles introuvables ou hors de cette organisation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                websites_not_found:
                  value:
                    error: >-
                      Websites not found or do not belong to this organization:
                      123e4567-e89b-12d3-a456-426614174000
                groups_not_found:
                  value:
                    error: >-
                      Groups not found or do not belong to this organization:
                      456e7890-e89b-12d3-a456-426614174000
        '500':
          description: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    BulkInviteRequest:
      type: object
      description: >-
        Corps d’invitation à plusieurs sites ou groupes. Exactement l’un de
        `website_ids` et `group_ids`, mutuellement exclusifs. Un seul e-mail
        consolidé en mode 'email'.
      required:
        - invite_method
        - email
      properties:
        invite_method:
          type: string
          enum:
            - direct
            - email
          description: >-
            Mode d’invitation de l’utilisateur. 'direct' ajoute immédiatement
            l’utilisateur à chaque cible sans envoyer d’e-mail — si aucun compte
            n’existe pour cette adresse, un compte est créé automatiquement
            (avec emailVerified=false). 'email' crée des enregistrements
            d’invitation en attente et envoie un seul e-mail d’invitation
            récapitulatif.
          example: direct
        email:
          type: string
          format: email
          description: E-mail de l’utilisateur à inviter
          example: user@example.com
        role:
          type: string
          enum:
            - admin
            - viewer
          description: Rôle de l’invité sur chaque cible. 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 absent ou hors
            organisation. Viewer par défaut si ni `role` ni `role_id` fournis.
            Les ID système sont des sentinelles de forme GUID
            (`00000000-0000-0000-0000-000000000001`, par exemple), pas des UUID
            RFC 4122.
          example: 789e0123-e89b-12d3-a456-426614174000
        website_ids:
          type: array
          items:
            type: string
            format: uuid
          minItems: 1
          maxItems: 50
          description: >-
            Tableau d’ID de sites auxquels inviter (1–50). Exclusif avec
            `group_ids`.
          example:
            - 123e4567-e89b-12d3-a456-426614174000
            - 987e6543-e21b-12d3-a456-426614174000
        group_ids:
          type: array
          items:
            type: string
            format: uuid
          minItems: 1
          maxItems: 50
          description: >-
            Tableau d’ID de groupes auxquels inviter (1–50). Exclusif avec
            `website_ids`. Clé globale requise.
          example:
            - 456e7890-e89b-12d3-a456-426614174000
            - 789e0123-e89b-12d3-a456-426614174000
        first_name:
          type: string
          description: >-
            Prénom facultatif de l’invité, utilisé pour créer son compte avec
            'direct' ou remplir l’invitation avec 'email'.
          example: John
        last_name:
          type: string
          description: >-
            Nom de famille facultatif de l’invité, utilisé pour créer son compte
            avec 'direct' ou remplir l’invitation avec 'email'.
          example: Doe
    BulkInviteResponse:
      type: object
      description: >-
        Réponse à une invitation groupée. Chaque cible (site ou groupe) est
        traitée indépendamment.
      required:
        - success
        - results
      properties:
        success:
          type: boolean
          description: >-
            Indique le traitement de l’opération groupée, toujours vrai pour une
            requête valide
          example: true
        results:
          type: array
          description: Résultats par cible, une entrée par site ou groupe de la requête
          items:
            $ref: '#/components/schemas/BulkInviteResult'
    Error:
      type: object
      description: Objet de réponse d’erreur
      required:
        - error
      properties:
        error:
          type: string
          description: Message expliquant l’erreur
          example: Unauthorized
    BulkInviteResult:
      type: object
      description: >-
        Résultat d’une seule cible (site web ou groupe) dans une invitation
        groupée. Exactement l’un de `website_id` ou `group_id` sera présent,
        selon le champ utilisé dans la requête.
      required:
        - success
      properties:
        website_id:
          type: string
          format: uuid
          description: >-
            ID du site web auquel correspond ce résultat (présent uniquement si
            la requête utilisait `website_ids`)
          example: 123e4567-e89b-12d3-a456-426614174000
        group_id:
          type: string
          format: uuid
          description: >-
            ID du groupe concerné, présent uniquement si la requête utilisait
            `group_ids`
          example: 456e7890-e89b-12d3-a456-426614174000
        success:
          type: boolean
          description: Indique si l’invitation a réussi pour cette cible
        invite_id:
          type: string
          format: uuid
          description: >-
            ID de l’invitation (présent uniquement pour les invitations par
            e-mail réussies)
        user_id:
          type: string
          format: uuid
          description: >-
            ID de l’utilisateur invité, uniquement pour les invitations directes
            réussies. Jamais par e-mail, pour empêcher l’énumération
            inter-tenant des comptes.
        message:
          type: string
          description: Message de réussite si success vaut true
          example: User added to website
        error:
          type: string
          description: Message d’erreur (présent lorsque success est false)
          example: User is already a member of this website
  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.