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

# Invitar de forma masiva a sitios web o grupos

> Invita a un usuario a varios sitios web O varios grupos en una solicitud. Indica exactamente uno de `website_ids` o `group_ids`: son excluyentes. Cada destino se procesa por separado y puede tener éxito o fallar (p. ej., si ya es miembro). En modo 'email' se envía un único correo consolidado. Los grupos requieren una clave global; con una clave limitada a sitios, su creador debe ser administrador de todos los indicados. Las invitaciones directas no crean cuentas con dominios de Cuba, Irán, Corea del Norte, Rusia, Bielorrusia ni regionales de Crimea (incluida Sebastopol), Donetsk o Lugansk. La respuesta sigue siendo HTTP 201 con `success: false` y `error` por destino en `results`. Los dominios generales `.ua` siguen permitidos. Las cuentas existentes se pueden invitar.



## OpenAPI

````yaml es/api-reference/openapi.json post /api/v1/invites/bulk
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/invites/bulk:
    post:
      tags:
        - Team Management
      summary: Invitar de forma masiva a sitios web o grupos
      description: >-
        Invita a un usuario a varios sitios web O varios grupos en una
        solicitud. Indica exactamente uno de `website_ids` o `group_ids`: son
        excluyentes. Cada destino se procesa por separado y puede tener éxito o
        fallar (p. ej., si ya es miembro). En modo 'email' se envía un único
        correo consolidado. Los grupos requieren una clave global; con una clave
        limitada a sitios, su creador debe ser administrador de todos los
        indicados. Las invitaciones directas no crean cuentas con dominios de
        Cuba, Irán, Corea del Norte, Rusia, Bielorrusia ni regionales de Crimea
        (incluida Sebastopol), Donetsk o Lugansk. La respuesta sigue siendo HTTP
        201 con `success: false` y `error` por destino en `results`. Los
        dominios generales `.ua` siguen permitidos. Las cuentas existentes se
        pueden invitar.
      operationId: createBulkInvite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkInviteRequest'
      responses:
        '201':
          description: >-
            Invitación masiva procesada. Consulta los resultados individuales de
            cada destino.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkInviteResponse'
              examples:
                websites:
                  summary: Invitaciones masivas a sitios web
                  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: Invitaciones masivas a grupos
                  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: 'Solicitud incorrecta: parámetros no válidos'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_or_both_targets:
                  summary: >-
                    No se ha indicado website_ids ni group_ids, o se han
                    indicado ambos
                  value:
                    error: >-
                      Exactly one of website_ids or group_ids must be provided
                      (not both)
                too_many_websites:
                  summary: Más de 50 website_ids
                  value:
                    error: website_ids must contain at most 50
                too_many_groups:
                  summary: Más de 50 group_ids
                  value:
                    error: group_ids must contain at most 50
                invalid_email:
                  value:
                    error: Invalid email
        '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: las invitaciones a grupos requieren una clave de
            API global
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: 'Forbidden: global API key required'
        '404':
          description: Uno o varios destinos no existen o no pertenecen a esta organización
          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: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    BulkInviteRequest:
      type: object
      description: >-
        Cuerpo de la solicitud para invitar a un usuario a varios sitios web o
        grupos. Indica exactamente uno de `website_ids` o `group_ids`: son
        excluyentes. En modo 'email' se envía un único correo de invitación
        consolidado.
      required:
        - invite_method
        - email
      properties:
        invite_method:
          type: string
          enum:
            - direct
            - email
          description: >-
            Cómo invitar al usuario. 'direct' lo añade inmediatamente a cada
            destino sin enviar correo; si no existe la cuenta, la crea
            automáticamente (con emailVerified=false). 'email' crea invitaciones
            pendientes y envía un único correo de invitación consolidado.
          example: direct
        email:
          type: string
          format: email
          description: Dirección de correo del usuario al que invitar
          example: user@example.com
        role:
          type: string
          enum:
            - admin
            - viewer
          description: >-
            Rol que se asignará al usuario invitado en cada destino. 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 pertenece a otra organización. Por
            defecto usa Viewer si no se indica ni `role` ni `role_id`. Los ID de
            roles del sistema son centinelas con formato GUID (p. ej.,
            `00000000-0000-0000-0000-000000000001`), no UUID RFC 4122.
          example: 789e0123-e89b-12d3-a456-426614174000
        website_ids:
          type: array
          items:
            type: string
            format: uuid
          minItems: 1
          maxItems: 50
          description: >-
            Array de ID de sitios web a los que se invitará al usuario (1-50).
            Mutuamente excluyente con `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: >-
            Array de ID de grupos a los que se invitará al usuario (1-50).
            Mutuamente excluyente con `website_ids`. Requiere una clave de API
            global.
          example:
            - 456e7890-e89b-12d3-a456-426614174000
            - 789e0123-e89b-12d3-a456-426614174000
        first_name:
          type: string
          description: >-
            Nombre opcional del usuario invitado. Se utiliza al crear una cuenta
            en invitaciones 'direct' o al completar los registros de invitación
            en invitaciones 'email'.
          example: John
        last_name:
          type: string
          description: >-
            Apellido opcional del usuario invitado. Se utiliza al crear una
            cuenta en invitaciones 'direct' o al completar los registros de
            invitación en invitaciones 'email'.
          example: Doe
    BulkInviteResponse:
      type: object
      description: >-
        Respuesta de una solicitud de invitación masiva. Cada destino (sitio web
        o grupo) se procesa de forma independiente.
      required:
        - success
        - results
      properties:
        success:
          type: boolean
          description: >-
            Indica si se ha procesado la operación masiva (siempre true si la
            solicitud es válida)
          example: true
        results:
          type: array
          description: >-
            Resultados por destino (una entrada por cada sitio web o grupo de la
            solicitud)
          items:
            $ref: '#/components/schemas/BulkInviteResult'
    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
    BulkInviteResult:
      type: object
      description: >-
        Resultado de un único destino (sitio web o grupo) de una invitación
        masiva. Aparece exactamente uno de `website_id` o `group_id`, según el
        campo utilizado en la solicitud.
      required:
        - success
      properties:
        website_id:
          type: string
          format: uuid
          description: >-
            ID del sitio web al que corresponde este resultado (solo aparece si
            la solicitud utiliza `website_ids`)
          example: 123e4567-e89b-12d3-a456-426614174000
        group_id:
          type: string
          format: uuid
          description: >-
            ID del grupo al que corresponde este resultado (solo aparece si la
            solicitud utiliza `group_ids`)
          example: 456e7890-e89b-12d3-a456-426614174000
        success:
          type: boolean
          description: >-
            Indica si la invitación se ha enviado correctamente a este
            destinatario
        invite_id:
          type: string
          format: uuid
          description: >-
            ID de la invitación (solo aparece en invitaciones por correo
            enviadas correctamente)
        user_id:
          type: string
          format: uuid
          description: >-
            ID del usuario destinatario de la invitación. Solo aparece en
            invitaciones directas correctas. Nunca se devuelve en invitaciones
            por correo, para impedir averiguar si existen cuentas de otras
            organizaciones.
        message:
          type: string
          description: Mensaje de confirmación (presente cuando success es true)
          example: User added to website
        error:
          type: string
          description: Mensaje de error (presente cuando success es false)
          example: User is already a member of this website
  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.