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

# Modifier un brouillon de contenu

> Applique des modifications exactes par recherche-remplacement au corps de l’article d’un brouillon. Déterministe, sans modèle d’IA : votre texte de remplacement est inséré tel quel (utilisez l’endpoint revise pour une réécriture IA à partir d’une instruction). Le texte à rechercher doit apparaître exactement une fois dans le corps actuel ; zéro ou plusieurs correspondances font échouer tout l’appel avec 400 et rien n’est enregistré. Allongez donc le texte recherché jusqu’à le rendre unique. Les modifications s’appliquent dans l’ordre, les suivantes voient les résultats précédents et le lot est enregistré comme une seule nouvelle version, récupérable via les endpoints de versions. Transmettez expected_version_number depuis l’endpoint de brouillon pour obtenir 409 si une nouvelle version a été enregistrée après votre lecture (révision, modification ou restauration). L’enregistrement automatique de l’application modifie le corps sans créer de version ; cette divergence est détectée par les points de recherche eux-mêmes, car un texte déplacé ou disparu fait échouer l’appel.



## OpenAPI

````yaml fr/api-reference/openapi.json post /api/v1/content/{content_id}/edit
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/content/{content_id}/edit:
    post:
      tags:
        - Content
      summary: Modifier un brouillon de contenu
      description: >-
        Applique des modifications exactes par recherche-remplacement au corps
        de l’article d’un brouillon. Déterministe, sans modèle d’IA : votre
        texte de remplacement est inséré tel quel (utilisez l’endpoint revise
        pour une réécriture IA à partir d’une instruction). Le texte à
        rechercher doit apparaître exactement une fois dans le corps actuel ;
        zéro ou plusieurs correspondances font échouer tout l’appel avec 400 et
        rien n’est enregistré. Allongez donc le texte recherché jusqu’à le
        rendre unique. Les modifications s’appliquent dans l’ordre, les
        suivantes voient les résultats précédents et le lot est enregistré comme
        une seule nouvelle version, récupérable via les endpoints de versions.
        Transmettez expected_version_number depuis l’endpoint de brouillon pour
        obtenir 409 si une nouvelle version a été enregistrée après votre
        lecture (révision, modification ou restauration). L’enregistrement
        automatique de l’application modifie le corps sans créer de version ;
        cette divergence est détectée par les points de recherche eux-mêmes, car
        un texte déplacé ou disparu fait échouer l’appel.
      operationId: content.edit
      parameters:
        - name: content_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                website_id:
                  type: string
                edits:
                  type: array
                  minItems: 1
                  maxItems: 20
                  items:
                    type: object
                    properties:
                      find:
                        type: string
                        minLength: 1
                        maxLength: 10000
                      replace:
                        type: string
                        maxLength: 10000
                    required:
                      - find
                      - replace
                expected_version_number:
                  type: integer
                  minimum: 1
              required:
                - website_id
                - edits
      responses:
        '200':
          description: Réussite
          content:
            application/json:
              schema:
                type: object
                properties:
                  content_id:
                    type: string
                  body:
                    type: string
                  version_number:
                    type: integer
                  version_id:
                    type: string
                  body_word_count:
                    type: integer
                  previous_body_word_count:
                    type: integer
                required:
                  - content_id
                  - body
                  - version_number
                  - version_id
                  - body_word_count
                  - previous_body_word_count
        '400':
          description: 'Requête incorrecte : échec de la validation'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '401':
          description: Non authentifié
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '403':
          description: Interdit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '404':
          description: Introuvable
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '409':
          description: Conflit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '429':
          description: Limite de débit atteinte
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '500':
          description: Erreur interne
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
components:
  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.