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

# Listar fuentes (por dominio raíz)

> Devuelve las principales fuentes citadas de un sitio web agrupadas por dominio raíz. Cada fila incluye métricas de citas, menciones, menciones de marca e impresiones del intervalo solicitado y una clasificación `default_source_type` (`owned` / `competitor` / `partner` / `third_party`).

Complementa a [POST /api/v1/source-pages](/es/api-reference/sources/list-source-pages-per-url), que devuelve los mismos datos por URL (una fila por página citada). La propiedad y las etiquetas utilizan reglas centralizadas de patrones de URL. Los resúmenes de dominio solo consideran reglas de host completo; las de ruta y consulta afectan a resultados por página. Los hosts www explícitos siguen separados cuando sus reglas difieren de las del dominio raíz.



## OpenAPI

````yaml es/api-reference/openapi.json post /api/v1/sources
openapi: 3.1.0
info:
  title: API de AthenaHQ
  description: >-
    La API de AthenaHQ ofrece acceso programático para gestionar tus sitios web
    y consultas para optimizar el contenido con IA.
  version: 1.0.0
  contact:
    email: support@athenahq.ai
servers:
  - url: https://api.athenahq.ai
    description: Servidor de producción
security:
  - apiKey: []
tags:
  - name: Basics
    description: Operaciones principales de la API para gestionar sitios web y consultas
  - name: Metrics
    description: Endpoints de métricas y análisis para monitorizar la visibilidad en IA
  - name: Billing
    description: Endpoints de facturación y créditos para gestionar el uso
  - name: Team Management
    description: Endpoints para gestionar miembros del equipo e invitaciones
  - name: Groups
    description: Endpoints para gestionar grupos de sitios web
  - name: Content
    description: >-
      Endpoints para acceder a los datos del centro de contenidos: pestañas, URL
      monitorizadas y desglose de consultas por URL.
  - name: Pitch Workspace
    description: >-
      Endpoints para acceder a los informes del espacio de propuestas:
      ejecuciones de propuestas con alcance de organización, con competidores,
      consultas, atributos y métricas agregadas.
  - name: Knowledge Base
    description: >-
      Endpoints para leer la base de conocimientos de la marca: datos aprobados
      sobre la marca y los pilares que los organizan.
paths:
  /api/v1/sources:
    post:
      tags:
        - Sources
      summary: Listar fuentes (por dominio raíz)
      description: >-
        Devuelve las principales fuentes citadas de un sitio web agrupadas por
        dominio raíz. Cada fila incluye métricas de citas, menciones, menciones
        de marca e impresiones del intervalo solicitado y una clasificación
        `default_source_type` (`owned` / `competitor` / `partner` /
        `third_party`).


        Complementa a [POST
        /api/v1/source-pages](/es/api-reference/sources/list-source-pages-per-url),
        que devuelve los mismos datos por URL (una fila por página citada). La
        propiedad y las etiquetas utilizan reglas centralizadas de patrones de
        URL. Los resúmenes de dominio solo consideran reglas de host completo;
        las de ruta y consulta afectan a resultados por página. Los hosts www
        explícitos siguen separados cuando sus reglas difieren de las del
        dominio raíz.
      operationId: listSources
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SourcesListRequest'
      responses:
        '200':
          description: Respuesta correcta con la página de fuentes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourcesListResponse'
              example:
                sources:
                  - root_domain: wikipedia.org
                    total_mentions: 124
                    response_count: 86
                    estimated_impressions: 18400
                    domain_count: 31
                    mention_percentage: 12.3
                    citation_percentage: 14.1
                    competitor_mention_percentage: 3.2
                    brand_mention_percentage: 8.9
                    mentions_count: 47
                    responses_mentioned_count: 39
                    competitor_ids: []
                    default_source_type: third_party
                    source_type_ids: []
                    first_seen: '2024-01-04'
                pagination:
                  page_num: 0
                  page_size: 30
                  total: 142
        '400':
          description: 'Solicitud incorrecta: parámetros no válidos.'
          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: 'Sin autorización: falta la clave de API o no es válida.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Acceso denegado: no tienes acceso a este sitio web o un ID de
            subrecurso (`prompt_ids`, `competitor_ids`, `location_ids`)
            pertenece a otro sitio 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: Sitio web no encontrado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Website not found
        '500':
          description: Error interno del servidor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    SourcesListRequest:
      type: object
      description: Cuerpo de la solicitud para listar fuentes agrupadas por dominio.
      required:
        - website_id
        - filters
      properties:
        website_id:
          type: string
          format: uuid
          description: Sitio web del que se listarán las fuentes.
          example: 123e4567-e89b-12d3-a456-426614174000
        filters:
          $ref: '#/components/schemas/ApiFilters'
        page_num:
          type: integer
          minimum: 0
          default: 0
          description: Número de página, empezando en cero.
        page_size:
          type: integer
          minimum: 1
          maximum: 100
          default: 30
          description: Número de filas por página (1–100).
        sort_field:
          type: string
          enum:
            - citation_percentage
            - mention_percentage
            - competitor_mention_percentage
            - brand_mention_percentage
            - estimated_impressions
            - total_mentions
            - domain_count
            - mentions_count
            - root_domain
            - response_count
            - first_seen
          default: citation_percentage
          description: Columna por la que se ordenará.
        sort_direction:
          type: string
          enum:
            - asc
            - desc
          default: desc
        search:
          type: string
          nullable: true
          description: >-
            Filtro de subcadena sobre `normalized_root_domain`. Se eliminan
            protocolo (`https://`), `www.`, ruta, consulta y fragmento antes de
            comparar, por lo que una URL como `https://www.example.com/foo`
            queda en `example.com`.
        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
        sort_field: citation_percentage
        sort_direction: desc
    SourcesListResponse:
      type: object
      required:
        - sources
        - pagination
      properties:
        sources:
          type: array
          items:
            $ref: '#/components/schemas/SourceItem'
        pagination:
          $ref: '#/components/schemas/SourcesPagination'
    Error:
      type: object
      description: Objeto de respuesta de error
      required:
        - error
      properties:
        error:
          type: string
          description: Mensaje de error que describe qué ha fallado
          example: Unauthorized
    ApiFilters:
      type: object
      description: >-
        Filtros para consultar respuestas y métricas. Pasa los filtros de
        ubicación en el cuerpo JSON como `filters.location_ids`.
      required:
        - start_date
      properties:
        schedule_id:
          $ref: '#/components/schemas/PromptScheduleSelection'
        start_date:
          type: string
          format: date-time
          description: Fecha de inicio del filtro (UTC)
          example: '2024-01-01T00:00:00.000Z'
        end_date:
          type: string
          format: date-time
          description: Fecha de fin del filtro (UTC)
          example: '2024-12-31T23:59:59.999Z'
        models:
          type: array
          description: Filtrar por modelos de 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: Filtrar por IDs de consultas concretas
          items:
            type: string
            format: uuid
        competitor_ids:
          type: array
          description: Filtrar por IDs de competidores concretos
          items:
            type: string
            format: uuid
        location_ids:
          type: array
          description: >-
            Filtra por ID de ubicaciones. Pásalo en el cuerpo JSON como
            `filters.location_ids`, incluso para una sola ubicación. Usa los ID
            devueltos por `GET /api/v1/locations`.
          items:
            type: string
            format: uuid
          example:
            - 123e4567-e89b-12d3-a456-426614174111
        prompt_status:
          type: string
          enum:
            - active
            - paused
          description: Filtrar por estado de la consulta
        prompt_type:
          type: string
          enum:
            - branded
            - non_branded
          description: Filtrar por tipo de consulta
    SourcesMentionedFilter:
      type: string
      enum:
        - 'yes'
        - 'no'
      description: >-
        Si es `yes`, cuenta solo las fuentes cuya respuesta citante menciona tu
        marca. Si es `no`, solo aquellas cuya respuesta NO la menciona. Omite el
        campo para contar todas las fuentes citadas.
    SourceItem:
      type: object
      description: >-
        Fila de fuentes agrupadas por dominio. Identifica un dominio raíz citado
        con sus métricas de citas, menciones e impresiones del intervalo
        solicitado.
      required:
        - root_domain
        - total_mentions
        - response_count
        - estimated_impressions
        - domain_count
        - mention_percentage
        - citation_percentage
        - competitor_mention_percentage
        - brand_mention_percentage
        - mentions_count
        - responses_mentioned_count
        - competitor_ids
        - default_source_type
        - source_type_ids
        - first_seen
      properties:
        root_domain:
          type: string
          description: Dominio raíz citado, en formato de presentación.
          example: wikipedia.org
        total_mentions:
          type: number
          description: >-
            Total de citas de este dominio (una por respuesta que lo cita) en el
            intervalo de fechas.
          example: 124
        response_count:
          type: number
          description: Respuestas de IA distintas que citan este dominio.
          example: 86
        estimated_impressions:
          type: number
          description: >-
            Impresiones estimadas atribuibles a este dominio en el intervalo de
            fechas.
          example: 18400
        domain_count:
          type: number
          description: Número de subdominios distintos agrupados bajo este dominio raíz.
          example: 31
        mention_percentage:
          type: number
          description: >-
            Citas de este dominio como porcentaje de todas las respuestas
            coincidentes.
          example: 12.3
        citation_percentage:
          type: number
          description: >-
            Mismo numerador que `mention_percentage`. Se conserva por
            compatibilidad con la estructura de datos actual del panel.
          example: 14.1
        competitor_mention_percentage:
          type: number
          description: >-
            Porcentaje de respuestas que citan este dominio y también mencionan
            a un competidor monitorizado.
          example: 3.2
        brand_mention_percentage:
          type: number
          description: >-
            Porcentaje de respuestas que citan este dominio y mencionan la marca
            del sitio web.
          example: 8.9
        mentions_count:
          type: number
          description: >-
            Agregado por URL: número de URL citadas de este dominio en las que
            se menciona la marca.
          example: 47
        responses_mentioned_count:
          type: number
          description: Número de respuestas que citan la fuente y mencionan la marca.
          example: 39
        competitor_ids:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            Competidores monitorizados mencionados en respuestas que citan este
            dominio.
          example: []
        default_source_type:
          $ref: '#/components/schemas/SourceTypeClassification'
        source_type_ids:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            UUID de etiquetas personalizadas de tipo de fuente asociadas a este
            dominio (además de `default_source_type`).
          example: []
        first_seen:
          type: string
          description: Primera fecha de cita de este dominio en el intervalo de fechas.
          example: '2024-01-04'
    SourcesPagination:
      type: object
      description: >-
        Metadatos de paginación. A diferencia de `Pagination` (que usa consulta
        anticipada con `has_more`), las fuentes muestran un `total` exacto: la
        consulta de ClickHouse lo calcula con una función de ventana en el mismo
        recorrido, sin otra llamada adicional.
      required:
        - page_num
        - page_size
        - total
      properties:
        page_num:
          type: integer
          description: Número de página devuelto, empezando en cero.
          example: 0
        page_size:
          type: integer
          description: Número máximo de elementos por página.
          example: 30
        total:
          type: integer
          description: >-
            Número total de filas que coinciden con los filtros (en todas las
            páginas).
          example: 142
    PromptScheduleSelection:
      description: >-
        Selecciona una programación de recopilación. Usa la selección devuelta
        por GET /api/v1/prompt-schedules. La predeterminada incluye el historial
        anterior al cambio y ejecuciones puntuales; las archivadas conservan
        resultados. El antiguo token manual se admite como alias de default.
        Solo acepta una programación; una lista devuelve 400.
      default: default
      oneOf:
        - type: string
          enum:
            - default
            - manual
        - type: string
          format: uuid
    SourceTypeClassification:
      type: string
      enum:
        - owned
        - competitor
        - partner
        - third_party
      description: >-
        Clasificación de la fuente respecto al sitio web. `owned` incluye el
        host propio, los hosts declarados propios y sus subdominios; un patrón
        de URL con ruta (p. ej., `reddit.com/user/brand`) solo clasifica como
        `owned` las páginas de esa ruta, no todo el host. `competitor` coincide
        con dominios raíz de competidores monitorizados; `partner`, con dominios
        afiliados configurados; `third_party` incluye el resto (Wikipedia,
        noticias, etc.). Las clasificaciones manuales por sitio se aplican en
        este orden: decide la de la URL exacta; un host o ruta declarado propio
        conserva `owned`; después decide la de dominio, incluso para hosts que
        solo son `owned` por ser subdominios de uno declarado.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Clave de API para autenticarse. Puedes crear una
        [aquí](https://app.athenahq.ai/organization?tab=api).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.