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

# Répertorier les pages sources (par URL)

> Renvoie les URL citées du site avec citations, mentions et impressions, une ligne par `normalized_url`. Chaque ligne inclut une mini-courbe `daily_mentions` du pourcentage quotidien de citations et la classification de [POST /api/v1/sources](/fr/api-reference/sources/list-sources-by-root-domain).

Utilisez-le pour le détail par URL, par exemple les articles d’un partenaire à l’origine des citations. Pour l’agrégat par domaine, utilisez [POST /api/v1/sources](/fr/api-reference/sources/list-sources-by-root-domain). Propriété et étiquettes correspondent aux URL originales en conservant hôtes, casse des chemins et contraintes de requête. Les résultats gardent leurs identifiants normalisés et pagination, combinant les étiquettes des variantes correspondantes par ligne de page.



## OpenAPI

````yaml fr/api-reference/openapi.json post /api/v1/source-pages
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/source-pages:
    post:
      tags:
        - Sources
      summary: Répertorier les pages sources (par URL)
      description: >-
        Renvoie les URL citées du site avec citations, mentions et impressions,
        une ligne par `normalized_url`. Chaque ligne inclut une mini-courbe
        `daily_mentions` du pourcentage quotidien de citations et la
        classification de [POST
        /api/v1/sources](/fr/api-reference/sources/list-sources-by-root-domain).


        Utilisez-le pour le détail par URL, par exemple les articles d’un
        partenaire à l’origine des citations. Pour l’agrégat par domaine,
        utilisez [POST
        /api/v1/sources](/fr/api-reference/sources/list-sources-by-root-domain).
        Propriété et étiquettes correspondent aux URL originales en conservant
        hôtes, casse des chemins et contraintes de requête. Les résultats
        gardent leurs identifiants normalisés et pagination, combinant les
        étiquettes des variantes correspondantes par ligne de page.
      operationId: listSourcePages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SourcePagesListRequest'
      responses:
        '200':
          description: Réponse réussie avec la page d’URL citées.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourcePagesListResponse'
              example:
                pages:
                  - normalized_url: wikipedia.org/wiki/Customer_Relationship_Management
                    domain: en.wikipedia.org
                    root_domain: wikipedia.org
                    normalized_root_domain: wikipedia.org
                    total_mentions: 24
                    estimated_impressions: 3400
                    citation_percentage: 2.7
                    mentions_count: 9
                    competitor_ids: []
                    default_source_type: third_party
                    source_type_ids: []
                    first_seen: '2024-01-07'
                    daily_mentions:
                      - date: '2024-01-07'
                        citation_percentage: 0.4
                      - date: '2024-01-08'
                        citation_percentage: 0.6
                pagination:
                  page_num: 0
                  page_size: 30
                  total: 412
        '400':
          description: Requête incorrecte — paramètres invalides.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_website_id:
                  value:
                    error: website_id is required
                invalid_website_id:
                  value:
                    error: website_id must be a uuid
        '401':
          description: Non autorisé — clé API invalide ou absente.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Interdit — vous n’avez pas accès à ce site web ou un ID de
            sous-ressource (`prompt_ids`, `competitor_ids`, `location_ids`,
            `prompt_tags`) appartient à un autre site web.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                website:
                  value:
                    error: Unauthorized access to this website
                prompts:
                  value:
                    error: Unauthorized access to these prompts
        '404':
          description: Site web introuvable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Website not found
        '500':
          description: Erreur interne du serveur.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    SourcePagesListRequest:
      type: object
      description: Corps de liste des pages citées par URL.
      required:
        - website_id
        - filters
      properties:
        website_id:
          type: string
          format: uuid
          description: Site dont lister les URL citées.
          example: 123e4567-e89b-12d3-a456-426614174000
        filters:
          allOf:
            - $ref: '#/components/schemas/ApiFilters'
            - type: object
              properties:
                persona_ids:
                  type: array
                  description: >-
                    ID de personas à inclure, listables via GET
                    /api/v1/personas. Omettez pour tous.
                  items:
                    type: string
                    format: uuid
                prompt_tags:
                  type: array
                  description: >-
                    ID d’étiquettes de prompts pour filtrer, à lister via GET
                    /api/v1/prompt-tags. Une entrée peut aussi être
                    `type:high_intent` (avec marque) ou `type:discovery` (sans
                    marque). Omettez pour toutes les étiquettes.
                  items:
                    oneOf:
                      - type: string
                        format: uuid
                      - type: string
                        enum:
                          - type:discovery
                          - type:high_intent
                prompt_tags_operator:
                  type: string
                  enum:
                    - is_any_of
                    - has_all_of
                  description: >-
                    Combinaison des ID dans prompt_tags : is_any_of correspond
                    aux prompts ayant une étiquette listée ; has_all_of exige
                    toutes les étiquettes. Les entrées `type:` sont traitées
                    séparément : le prompt doit aussi avoir l’un des types
                    listés ; has_all_of accepte au plus une entrée `type:`,
                    puisqu’un prompt n’a qu’un type. Par défaut : is_any_of.
        page_num:
          type: integer
          minimum: 0
          default: 0
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          default: 30
        sort_field:
          type: string
          enum:
            - citation_percentage
            - estimated_impressions
            - total_mentions
            - mentions_count
            - normalized_url
            - competitor_ids
            - first_seen
          default: citation_percentage
        sort_direction:
          type: string
          enum:
            - asc
            - desc
          default: desc
        search:
          type: string
          nullable: true
          description: >-
            Filtre de sous-chaîne sur `normalized_url` ET
            `normalized_root_domain`. Protocole (`https://`), `www.`, requête et
            fragment sont retirés avant comparaison ; le chemin est conservé
            pour les recherches d’URL précises.
        mentioned:
          $ref: '#/components/schemas/SourcesMentionedFilter'
        competitors_mentioned:
          $ref: '#/components/schemas/SourcesMentionedFilter'
      example:
        website_id: 123e4567-e89b-12d3-a456-426614174000
        filters:
          start_date: '2024-01-01T00:00:00.000Z'
          end_date: '2024-01-31T23:59:59.999Z'
        page_size: 30
    SourcePagesListResponse:
      type: object
      required:
        - pages
        - pagination
      properties:
        pages:
          type: array
          items:
            $ref: '#/components/schemas/SourcePageItem'
        pagination:
          $ref: '#/components/schemas/SourcesPagination'
    Error:
      type: object
      description: Objet de réponse d’erreur
      required:
        - error
      properties:
        error:
          type: string
          description: Message expliquant l’erreur
          example: Unauthorized
    ApiFilters:
      type: object
      description: >-
        Filtres pour interroger les réponses et les indicateurs. Transmettez les
        filtres d’emplacements dans le corps JSON comme `filters.location_ids`.
      required:
        - start_date
      properties:
        schedule_id:
          $ref: '#/components/schemas/PromptScheduleSelection'
        start_date:
          type: string
          format: date-time
          description: Date de début du filtre (UTC)
          example: '2024-01-01T00:00:00.000Z'
        end_date:
          type: string
          format: date-time
          description: Date de fin du filtre (UTC)
          example: '2024-12-31T23:59:59.999Z'
        models:
          type: array
          description: Filtrer par modèles IA
          items:
            type: string
            enum:
              - chatgpt
              - perplexity
              - gemini
              - google_ai_overview
              - copilot
              - claude
              - ai_mode
              - grok
              - deepseek
              - meta_ai
              - mistral
          example:
            - chatgpt
            - perplexity
        prompt_ids:
          type: array
          description: Filtrer par ID de prompts précis
          items:
            type: string
            format: uuid
        competitor_ids:
          type: array
          description: Filtrer par ID de concurrents précis
          items:
            type: string
            format: uuid
        location_ids:
          type: array
          description: >-
            Filtre par ID d’emplacement dans le corps JSON sous
            `filters.location_ids`, même pour un seul. Utilisez les ID de `GET
            /api/v1/locations`.
          items:
            type: string
            format: uuid
          example:
            - 123e4567-e89b-12d3-a456-426614174111
        prompt_status:
          type: string
          enum:
            - active
            - paused
          description: Filtrer par statut du prompt
        prompt_type:
          type: string
          enum:
            - branded
            - non_branded
          description: Filtrer par type de prompt
    SourcesMentionedFilter:
      type: string
      enum:
        - 'yes'
        - 'no'
      description: >-
        Avec `yes`, compte uniquement les sources dont la réponse citante
        mentionne votre marque. Avec `no`, uniquement celles dont la réponse ne
        la mentionne PAS. Omettez le champ pour compter toutes les sources
        citées.
    SourcePageItem:
      type: object
      description: Une ligne de page citée par URL avec indicateurs et mini-graphique.
      required:
        - normalized_url
        - domain
        - root_domain
        - normalized_root_domain
        - total_mentions
        - estimated_impressions
        - citation_percentage
        - mentions_count
        - competitor_ids
        - default_source_type
        - source_type_ids
        - first_seen
        - daily_mentions
      properties:
        normalized_url:
          type: string
          description: >-
            URL citée après normalisation du protocole, de www et de la barre
            oblique finale. Le domaine est en minuscules ; la casse du chemin
            est conservée.
          example: wikipedia.org/wiki/Customer_Relationship_Management
        domain:
          type: string
          description: Domaine d’affichage, pouvant inclure `www.` et sous-domaines.
          example: en.wikipedia.org
        root_domain:
          type: string
          description: Domaine racine sous forme d’affichage.
          example: wikipedia.org
        normalized_root_domain:
          type: string
          description: >-
            Domaine racine en minuscules, utile pour joindre les lignes de `POST
            /api/v1/sources`.
          example: wikipedia.org
        total_mentions:
          type: number
          description: >-
            Nombre total de citations de cette URL (une par réponse qui la cite)
            dans la période.
          example: 24
        estimated_impressions:
          type: number
          description: Impressions estimées attribuables à cette URL sur la période.
          example: 3400
        citation_percentage:
          type: number
          description: Citations de cette URL en pourcentage des réponses correspondantes.
          example: 2.7
        mentions_count:
          type: number
          description: Nombre de réponses citant cette URL et mentionnant la marque.
          example: 9
        competitor_ids:
          type: array
          items:
            type: string
            format: uuid
          description: Concurrents suivis mentionnés dans les réponses citant cette URL.
          example: []
        default_source_type:
          $ref: '#/components/schemas/SourceTypeClassification'
        source_type_ids:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            UUID d’étiquettes personnalisées de type de source associés à l’URL
            ou son domaine racine.
        first_seen:
          type: string
          description: Première date de citation de l’URL dans la période.
          example: '2024-01-07'
        daily_mentions:
          type: array
          items:
            $ref: '#/components/schemas/SourcePageDailyMention'
          description: >-
            Mini-graphique quotidien du pourcentage de citation de cette URL sur
            la période. Tableau vide en l’absence de citation.
    SourcesPagination:
      type: object
      description: >-
        Métadonnées de pagination. Contrairement à `Pagination` (qui utilise une
        anticipation `has_more`), les vues de sources exposent un nombre `total`
        précis — la requête ClickHouse sous-jacente le calcule comme fonction de
        fenêtre dans le même parcours, sans coût d’aller-retour supplémentaire.
      required:
        - page_num
        - page_size
        - total
      properties:
        page_num:
          type: integer
          description: Numéro de page renvoyé, à partir de zéro.
          example: 0
        page_size:
          type: integer
          description: Maximum d’éléments par page.
          example: 30
        total:
          type: integer
          description: >-
            Nombre total de lignes correspondant aux filtres (toutes pages
            confondues).
          example: 142
    PromptScheduleSelection:
      description: >-
        Sélectionnez une planification de collecte, avec la valeur renvoyée par
        GET /api/v1/prompt-schedules. Par défaut inclut l’historique antérieur à
        la transition et les exécutions ponctuelles ; les planifications
        archivées conservent leurs résultats. L’ancien jeton manual est accepté
        comme alias de default. Ce champ accepte une seule planification ; une
        liste renvoie 400.
      default: default
      oneOf:
        - type: string
          enum:
            - default
            - manual
        - type: string
          format: uuid
    SourceTypeClassification:
      type: string
      enum:
        - owned
        - competitor
        - partner
        - third_party
      description: >-
        Classement de la source par rapport au site. `owned` couvre son hôte,
        les hôtes déclarés propriétaires et leurs sous-domaines ; un motif
        propriétaire avec chemin (comme `reddit.com/user/brand`) ne classe que
        les pages sous ce chemin en `owned`, pas tout l’hôte. `competitor`
        correspond aux domaines racines concurrents suivis ; `partner` aux
        domaines affiliés configurés ; `third_party` au reste (Wikipédia,
        presse, etc.). Priorité des remplacements par site : URL exacte, puis
        hôte/chemin déclaré propriétaire qui reste `owned`, puis règle de
        domaine, y compris pour les hôtes `owned` uniquement comme sous-domaines
        d’un domaine déclaré.
    SourcePageDailyMention:
      type: object
      description: Jour de la mini-courbe de citations par URL.
      required:
        - date
        - citation_percentage
      properties:
        date:
          type: string
          description: Date (YYYY-MM-DD) de mesure du pourcentage de citations.
          example: '2024-01-07'
        citation_percentage:
          type: number
          description: Pourcentage de toutes les réponses de cette date citant l’URL.
          example: 0.4
  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.