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

> Crée un site web dans votre organisation. Le site est créé à l’étape 1 de la configuration initiale, prêt à être configuré. Les **intégrations partenaires** peuvent inclure un `external_id` pour associer leur propre identifiant au nouveau site Athena. Une création réussie provisionne aussi la programmation de prompts par défaut du site dans la même transaction. Les modèles de suivi conservent l’hôte soumis, la casse du chemin et les paramètres de requête. Un domaine racine comme acme.com inclut www.acme.com ; un www.acme.com explicite suit uniquement cet hôte. Les chemins incluent la section indiquée et ses descendants aux limites de barre oblique. La correspondance de domaine ignore la casse ; les valeurs du chemin et de la requête sont sensibles à la casse.



## OpenAPI

````yaml fr/api-reference/openapi.json post /api/v1/websites
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/websites:
    post:
      tags:
        - Basics
      summary: Créer un site
      description: >-
        Crée un site web dans votre organisation. Le site est créé à l’étape 1
        de la configuration initiale, prêt à être configuré. Les **intégrations
        partenaires** peuvent inclure un `external_id` pour associer leur propre
        identifiant au nouveau site Athena. Une création réussie provisionne
        aussi la programmation de prompts par défaut du site dans la même
        transaction. Les modèles de suivi conservent l’hôte soumis, la casse du
        chemin et les paramètres de requête. Un domaine racine comme acme.com
        inclut www.acme.com ; un www.acme.com explicite suit uniquement cet
        hôte. Les chemins incluent la section indiquée et ses descendants aux
        limites de barre oblique. La correspondance de domaine ignore la casse ;
        les valeurs du chemin et de la requête sont sensibles à la casse.
      operationId: createWebsite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebsiteRequest'
      responses:
        '201':
          description: >-
            Site créé avec succès. `externalId` présent pour les partenaires
            (chaîne ou `null`), entièrement omis pour les clients directs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  website:
                    $ref: '#/components/schemas/CreatedWebsite'
                  billingEntityCreated:
                    type: boolean
                    description: >-
                      Indique si l’entité de facturation existe après
                      provisionnement. Si faux, sa création a échoué même après
                      une nouvelle tentative : le site existe mais n’a pas de
                      crédits, et leur définition échoue avec un statut 400
                      jusqu’à réparation. Contactez alors l’assistance AthenaHQ.
                required:
                  - website
                  - billingEntityCreated
              example:
                website:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  websiteUrl: example.com
                  orgId: 987e6543-e21b-12d3-a456-426614174000
                  onboardingStep: 1
                billingEntityCreated: true
        '400':
          description: Requête incorrecte — paramètres invalides
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalid_json:
                  value:
                    error: Invalid JSON in request body
                missing_url:
                  value:
                    error: 'url: Required'
                invalid_url:
                  value:
                    error: 'url: Invalid url'
                email_as_url:
                  value:
                    error: Enter your website address, not an email address.
        '401':
          description: Non autorisé — clé API invalide ou absente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Interdit — `external_id` est réservé aux partenaires ; les autres
            clés API ne peuvent pas le définir.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: 'Forbidden: partner API key required'
        '409':
          description: >-
            Conflit — partenaires uniquement : le `external_id` fourni est déjà
            associé à un autre site.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalIdConflictError'
              examples:
                external_id_conflict:
                  summary: external_id partenaire déjà associé
                  value:
                    error: external_id_conflict
                    message: external_id ws_a7f3b2c9 is already mapped to a website
                    existing:
                      id: 123e4567-e89b-12d3-a456-426614174000
                      externalId: ws_a7f3b2c9
        '500':
          description: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    CreateWebsiteRequest:
      type: object
      description: Corps de création d’un nouveau site
      required:
        - url
      properties:
        url:
          type: string
          format: uri
          description: >-
            URL du site à créer. Protocole http/https et barres finales retirés
            automatiquement. Les e-mails et URL avec utilisateur
            (`name@example.com`) sont refusés avec `400`.
          example: https://example.com
          maxLength: 2048
        external_id:
          type: string
          minLength: 1
          description: >-
            **Partenaires uniquement.** Un identifiant de votre propre système à
            associer à ce site Athena. Accepté uniquement avec une clé API d’une
            organisation marquée comme partenaire. L’envoi de ce champ par un
            client direct renvoie `403 Forbidden`. Doit être unique par type de
            ressource dans votre organisation — les doublons renvoient `409`
            avec la ressource existante dans la charge utile.
          example: ws_a7f3b2c9
    CreatedWebsite:
      type: object
      description: Une ressource de site web nouvellement créée
      required:
        - id
        - websiteUrl
        - orgId
        - onboardingStep
      properties:
        id:
          type: string
          format: uuid
          description: Identifiant unique du site
          example: 123e4567-e89b-12d3-a456-426614174000
        websiteUrl:
          type: string
          description: URL nettoyée du site sans protocole ni barre finale
          example: example.com
        orgId:
          type: string
          format: uuid
          description: ID de l’organisation du site
          example: 987e6543-e21b-12d3-a456-426614174000
        onboardingStep:
          type: integer
          description: Étape actuelle de configuration, à partir de 1
          example: 1
        externalId:
          type: string
          nullable: true
          description: >-
            **Partenaires uniquement.** Renvoie le `external_id` de la requête
            de création s’il a été fourni ou `null` sinon. Présent uniquement
            dans les réponses aux clés API partenaires — les réponses aux
            clients directs omettent ce champ.
          example: ws_a7f3b2c9
    Error:
      type: object
      description: Objet de réponse d’erreur
      required:
        - error
      properties:
        error:
          type: string
          description: Message expliquant l’erreur
          example: Unauthorized
    ExternalIdConflictError:
      type: object
      description: >-
        Renvoyé si un partenaire définit un `external_id` déjà associé à une
        autre ressource du même type dans l’organisation. `existing` identifie
        la ressource détentrice pour récupérer une relance ou rapprocher les
        associations.
      required:
        - error
        - message
        - existing
      properties:
        error:
          type: string
          enum:
            - external_id_conflict
          description: Code d’erreur machine, toujours `external_id_conflict`.
          example: external_id_conflict
        message:
          type: string
          description: Explication lisible du conflit.
          example: external_id ws_a7f3b2c9 is already mapped to a website
        existing:
          type: object
          required:
            - id
            - externalId
          description: Ressource détenant actuellement le `external_id` en conflit.
          properties:
            id:
              type: string
              format: uuid
              description: ID Athena de la ressource existante.
              example: 123e4567-e89b-12d3-a456-426614174000
            externalId:
              type: string
              description: external_id déjà associé.
              example: ws_a7f3b2c9
  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.