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

# Marquer un contenu comme publié

> Enregistre l’URL d’un article déjà publié pour suivre ses citations et mentions. Ne téléverse ni ne publie vers un site/CMS. Appelez uniquement une fois l’article en ligne. Définit la première date de publication et passe l’étape à done. Une première publication exige un article terminé (generated), sauf un brouillon optimize issu d’une page déjà en ligne, marquable publié à pending si aucune révision Athena n’est en cours. Briefs, générations en cours/échouées, optimize en révision et publications CMS planifiées sont refusés avec 409 et un motif. Fournissez l’URL publique exacte ; un chemin sans protocole comme acme.com/blog/post convient, le protocole étant retiré au stockage. Sur un contenu déjà publié, y compris externe/importé par définition en ligne, ne modifie que l’URL suivie, gardant la date initiale. C’est le seul moyen de définir l’URL via API ; renommer ne concerne volontairement que le titre.



## OpenAPI

````yaml fr/api-reference/openapi.json post /api/v1/content/{content_id}/publish
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}/publish:
    post:
      tags:
        - Content
      summary: Marquer un contenu comme publié
      description: >-
        Enregistre l’URL d’un article déjà publié pour suivre ses citations et
        mentions. Ne téléverse ni ne publie vers un site/CMS. Appelez uniquement
        une fois l’article en ligne. Définit la première date de publication et
        passe l’étape à done. Une première publication exige un article terminé
        (generated), sauf un brouillon optimize issu d’une page déjà en ligne,
        marquable publié à pending si aucune révision Athena n’est en cours.
        Briefs, générations en cours/échouées, optimize en révision et
        publications CMS planifiées sont refusés avec 409 et un motif.
        Fournissez l’URL publique exacte ; un chemin sans protocole comme
        acme.com/blog/post convient, le protocole étant retiré au stockage. Sur
        un contenu déjà publié, y compris externe/importé par définition en
        ligne, ne modifie que l’URL suivie, gardant la date initiale. C’est le
        seul moyen de définir l’URL via API ; renommer ne concerne
        volontairement que le titre.
      operationId: content.publish
      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
                url:
                  type: string
              required:
                - website_id
                - url
      responses:
        '200':
          description: Réussite
          content:
            application/json:
              schema:
                type: object
                properties:
                  content_id:
                    type: string
                  title:
                    type: string
                    nullable: true
                  url:
                    type: string
                  published_at:
                    type: string
                    nullable: true
                  already_published:
                    type: boolean
                required:
                  - content_id
                  - title
                  - url
                  - published_at
                  - already_published
        '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 : le contenu n’a aucun article terminé à publier (étape de
            brief, de génération ou d’échec), une vérification Optimize est
            toujours en cours ou une publication CMS est programmée
          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.