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

# Mettre à jour un site web

> Définit, remplace ou efface le `external_id` partenaire associé à un site web. **Intégrations partenaires uniquement :** transmettez `external_id` sous forme de chaîne non vide pour définir ou remplacer l’association, ou `null` pour l’effacer. Nécessite une clé API globale. Fonctionne aussi sur les sites supprimés, car supprimer un site ne libère pas son `external_id`. Un `external_id` déjà associé à un autre site de votre organisation renvoie `409` avec le détenteur actuel ; pour transférer un ID, effacez-le d’abord du détenteur actuel, puis définissez-le sur le nouveau.



## OpenAPI

````yaml fr/api-reference/openapi.json patch /api/v1/websites/{website_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/websites/{website_id}:
    parameters:
      - name: website_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Identifiant unique du site
        example: 123e4567-e89b-12d3-a456-426614174000
    patch:
      tags:
        - Basics
      summary: Mettre à jour un site web
      description: >-
        Définit, remplace ou efface le `external_id` partenaire associé à un
        site web. **Intégrations partenaires uniquement :** transmettez
        `external_id` sous forme de chaîne non vide pour définir ou remplacer
        l’association, ou `null` pour l’effacer. Nécessite une clé API globale.
        Fonctionne aussi sur les sites supprimés, car supprimer un site ne
        libère pas son `external_id`. Un `external_id` déjà associé à un autre
        site de votre organisation renvoie `409` avec le détenteur actuel ; pour
        transférer un ID, effacez-le d’abord du détenteur actuel, puis
        définissez-le sur le nouveau.
      operationId: updateWebsite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebsiteRequest'
      responses:
        '200':
          description: >-
            Association mise à jour. `externalId` toujours présent : nouvelle
            valeur ou `null` après effacement. Comme les recherches
            `external_id`, et contrairement à la liste `GET /api/v1/websites`,
            ce point ne renvoie pas `baseCountry`.
          content:
            application/json:
              schema:
                type: object
                required:
                  - website
                properties:
                  website:
                    type: object
                    required:
                      - id
                      - websiteName
                      - websiteUrl
                      - onboardingStep
                      - externalId
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Identifiant unique du site
                        example: 123e4567-e89b-12d3-a456-426614174000
                      websiteName:
                        type: string
                        description: Nom d’affichage du site
                        example: My Awesome Blog
                      websiteUrl:
                        type: string
                        description: Domaine du site web (sans protocole)
                        example: example.com
                      onboardingStep:
                        type: integer
                        nullable: true
                        description: >-
                          Étape actuelle de configuration du site. Null signifie
                          configuration terminée.
                        example: null
                      externalId:
                        type: string
                        nullable: true
                        description: >-
                          Identifiant fourni par le partenaire désormais associé
                          à ce site web, ou `null` lorsque la requête a effacé
                          l’association.
                        example: ws_a7f3b2c9
        '400':
          description: >-
            Requête incorrecte — erreur de validation ou identifiant de site
            invalide
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_external_id:
                  summary: external_id non envoyé
                  value:
                    error: '''external_id'' is required'
                invalid_website_id:
                  summary: L’identifiant du site n’est pas un UUID
                  value:
                    error: Invalid website ID format
                invalid_json:
                  summary: Corps JSON invalide
                  value:
                    error: Invalid JSON body
                unrecognized_field:
                  summary: Les clés inconnues sont rejetées plutôt qu’ignorées
                  value:
                    error: 'Unrecognized key: "externalId"'
        '401':
          description: Non autorisé — clé API invalide ou absente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Interdit — clé globale d’une organisation partenaire requise.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                global_required:
                  summary: Clé API globale requise
                  value:
                    error: 'Forbidden: global API key required'
                partner_required:
                  summary: Clé API partenaire requise pour external_id
                  value:
                    error: 'Forbidden: partner API key required'
        '404':
          description: >-
            Introuvable — le site n’existe pas ou n’appartient pas à votre
            organisation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Website not found
        '409':
          description: >-
            Conflit - Le `external_id` fourni est déjà associé à un autre site
            web de votre organisation. Effacez-le d’abord sur ce site web.
          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:
    UpdateWebsiteRequest:
      type: object
      additionalProperties: false
      description: >-
        Corps de modification d’un site. `external_id` obligatoire ; champs
        inconnus refusés avec `400`.
      required:
        - external_id
      properties:
        external_id:
          type: string
          minLength: 1
          maxLength: 255
          nullable: true
          description: >-
            **Partenaires uniquement.** Identifiant partenaire à associer au
            site. Chaîne non vide : définition/remplacement ; `null` :
            effacement. Espaces périphériques retirés ; vide ou plus de 255
            caractères : `400`. Clé d’une organisation partenaire requise ;
            client direct : `403 Forbidden`. Unique par type de ressource dans
            l’organisation ; une valeur déjà utilisée renvoie `409` avec le site
            existant.
          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.