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

# Créer un rôle personnalisé

> Crée un rôle personnalisé avec une matrice d’autorisations par catégorie. Les rôles personnalisés sont disponibles avec l’offre Enterprise. Chaque catégorie dispose au minimum de 'view' — les catégories omises prennent 'view' par défaut. Le nom du rôle doit être unique dans votre organisation et ne pas entrer en conflit avec un nom de rôle système ; la matrice d’autorisations ne doit pas reproduire celle d’un rôle existant. Nécessite une clé API globale.



## OpenAPI

````yaml fr/api-reference/openapi.json post /api/v1/roles
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/roles:
    post:
      tags:
        - Team Management
      summary: Créer un rôle personnalisé
      description: >-
        Crée un rôle personnalisé avec une matrice d’autorisations par
        catégorie. Les rôles personnalisés sont disponibles avec l’offre
        Enterprise. Chaque catégorie dispose au minimum de 'view' — les
        catégories omises prennent 'view' par défaut. Le nom du rôle doit être
        unique dans votre organisation et ne pas entrer en conflit avec un nom
        de rôle système ; la matrice d’autorisations ne doit pas reproduire
        celle d’un rôle existant. Nécessite une clé API globale.
      operationId: createRole
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRoleRequest'
      responses:
        '201':
          description: Rôle créé avec succès
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - role
                properties:
                  success:
                    type: boolean
                    example: true
                  role:
                    $ref: '#/components/schemas/Role'
        '400':
          description: Requête incorrecte — nom ou autorisations de rôle 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é globale requise ou organisation sans offre Enterprise
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                not_global:
                  value:
                    error: 'Forbidden: global API key required'
                not_enterprise:
                  value:
                    error: Custom roles are available on the Enterprise plan.
        '409':
          description: >-
            Conflit — nom de rôle existant ou autorisations identiques à un
            autre rôle
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    CreateRoleRequest:
      type: object
      description: Corps de création d’un rôle personnalisé
      required:
        - name
        - permissions
      properties:
        name:
          type: string
          description: >-
            Nom d’affichage du rôle. Unique dans l’organisation sans tenir
            compte de la casse et distinct des noms de rôles système.
          example: Content Manager
        permissions:
          $ref: '#/components/schemas/PermissionMatrix'
    Role:
      type: object
      description: Rôle disponible dans votre organisation, système natif ou personnalisé.
      required:
        - role_id
        - name
        - slug
        - is_system
        - permissions
        - created_at
      properties:
        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: >-
            Identifiant unique du rôle, utilisable comme `role_id` dans les
            invitations et modifications. Les rôles système utilisent des
            sentinelles de forme GUID (par exemple
            `00000000-0000-0000-0000-000000000001`), pas des UUID RFC 4122.
        name:
          type: string
          description: Nom d’affichage du rôle
          example: Content Manager
        slug:
          type: string
          description: 'Nom normalisé du rôle (ex. : ''admin'', ''content-manager'')'
          example: content-manager
        is_system:
          type: boolean
          description: >-
            Indique s’il s’agit d’un rôle système intégré (Admin, Editor,
            Viewer, Billing). Les rôles système ne peuvent être ni modifiés ni
            supprimés.
        permissions:
          $ref: '#/components/schemas/PermissionMatrix'
        created_at:
          type: string
          description: Date de création du rôle
    Error:
      type: object
      description: Objet de réponse d’erreur
      required:
        - error
      properties:
        error:
          type: string
          description: Message expliquant l’erreur
          example: Unauthorized
    PermissionMatrix:
      type: object
      description: >-
        Niveaux d’accès par catégorie du rôle. Au moins 'view' pour chaque
        catégorie ; valeur par défaut des omissions à la création/modification.
      properties:
        content:
          type: string
          enum:
            - none
            - view
            - write
        prompts:
          type: string
          enum:
            - none
            - view
            - write
        competitors:
          type: string
          enum:
            - none
            - view
            - write
        analytics:
          type: string
          enum:
            - none
            - view
            - write
        integrations:
          type: string
          enum:
            - none
            - view
            - write
        brand_knowledge:
          type: string
          enum:
            - none
            - view
            - write
        team:
          type: string
          enum:
            - none
            - view
            - write
        billing:
          type: string
          enum:
            - none
            - view
            - write
        api:
          type: string
          enum:
            - none
            - view
            - write
        organization:
          type: string
          enum:
            - none
            - view
            - write
  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.