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

# Configurar sitio web

> Crea un sitio web totalmente configurado en una llamada, omitiendo el asistente inicial. Opcionalmente configura competidores, consultas y programación de procesamiento. Requiere una clave global. Las **integraciones de socios** pueden incluir `external_id` para vincular su identificador al nuevo sitio de Athena. La creación también aprovisiona su programación predeterminada de consultas en la misma transacción.

> **Beta**: Este endpoint está en beta. Los esquemas de solicitud y respuesta pueden cambiar. Los patrones de monitorización del sitio y competidores conservan host, mayúsculas de ruta y restricciones de consulta. Los dominios raíz incluyen su forma www; los hosts www explícitos siguen siendo distintos. Las rutas delimitan secciones por barras.



## OpenAPI

````yaml es/api-reference/openapi.json post /api/v1/websites/provision
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/websites/provision:
    post:
      tags:
        - Basics
      summary: Configurar sitio web
      description: >-
        Crea un sitio web totalmente configurado en una llamada, omitiendo el
        asistente inicial. Opcionalmente configura competidores, consultas y
        programación de procesamiento. Requiere una clave global. Las
        **integraciones de socios** pueden incluir `external_id` para vincular
        su identificador al nuevo sitio de Athena. La creación también
        aprovisiona su programación predeterminada de consultas en la misma
        transacción.


        > **Beta**: Este endpoint está en beta. Los esquemas de solicitud y
        respuesta pueden cambiar. Los patrones de monitorización del sitio y
        competidores conservan host, mayúsculas de ruta y restricciones de
        consulta. Los dominios raíz incluyen su forma www; los hosts www
        explícitos siguen siendo distintos. Las rutas delimitan secciones por
        barras.
      operationId: provisionWebsite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProvisionWebsiteRequest'
      responses:
        '201':
          description: Sitio web configurado correctamente
          content:
            application/json:
              schema:
                type: object
                properties:
                  website:
                    $ref: '#/components/schemas/ProvisionedWebsite'
                  billingEntityCreated:
                    type: boolean
                    description: >-
                      Indica si existe la entidad de facturación tras el
                      aprovisionamiento. Si es false, su creación ha fallado
                      incluso tras reintentar: el sitio existe sin créditos y
                      configurarlos devuelve 400 hasta repararlo. En ese caso,
                      contacta con soporte de AthenaHQ.
                required:
                  - website
                  - billingEntityCreated
              example:
                website:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  url: acme.com
                  name: Acme Corp
                  orgId: 987e6543-e21b-12d3-a456-426614174000
                  promptCount: 2
                  competitorCount: 1
                  hasSchedule: true
                billingEntityCreated: true
        '400':
          description: 'Solicitud incorrecta: parámetros no válidos'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalid_json:
                  value:
                    error: Invalid JSON body
                missing_url:
                  value:
                    error: 'url: String must contain at least 1 character(s)'
                missing_name:
                  value:
                    error: 'name: String must contain at least 1 character(s)'
                invalid_prompt_type:
                  value:
                    error: >-
                      prompts.0.type: Invalid enum value. Expected 'discovery' |
                      'high_intent', received 'invalid'
                email_as_url:
                  value:
                    error: 'url: Enter your website address, not an email address.'
        '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: se requiere una clave de API global o, para el
            campo exclusivo de socios `external_id`, la clave no tiene identidad
            de socio.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                global_required:
                  summary: Se requiere una clave de API global
                  value:
                    error: 'Forbidden: global API key required'
                partner_required:
                  summary: Se requiere una clave de API de partner para external_id
                  value:
                    error: 'Forbidden: partner API key required'
        '409':
          description: >-
            Conflicto (solo socios): el `external_id` proporcionado ya está
            vinculado a otro sitio web.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalIdConflictError'
              examples:
                external_id_conflict:
                  summary: El external_id del partner ya está asociado
                  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: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    ProvisionWebsiteRequest:
      type: object
      description: >-
        Cuerpo de la solicitud para aprovisionar un sitio web totalmente
        configurado
      required:
        - url
        - name
      properties:
        url:
          type: string
          description: >-
            URL del sitio web. El protocolo (https://) se elimina
            automáticamente. Las direcciones de correo y otras URL con nombre de
            usuario (`name@example.com`) se rechazan con `400`.
          example: acme.com
          maxLength: 2048
        name:
          type: string
          description: Nombre de la marca
          example: Acme Corp
          maxLength: 255
        description:
          type: string
          description: Descripción de la marca
          default: ''
          example: Enterprise widgets company
        country:
          type: string
          description: País de base del sitio web
          default: United States
          example: United States
        language:
          type: string
          description: >-
            Idioma predeterminado. Si se omite, se deduce del país (p. ej.,
            Alemania → alemán). Como alternativa, se utiliza el inglés.
          example: English
        industry:
          type: string
          description: >-
            Categoría del sector. Valores habituales: `SaaS & Software`,
            `E-commerce & Retail`, `Healthcare & Medical`, `Information
            Technology`, `Banking & Financial Services`, `Education &
            E-learning`, `Consulting`, `Manufacturing`, `Hospitality & Travel`,
            `Real Estate`, entre otros. Acepta cualquier cadena.
          example: SaaS & Software
        identifiers:
          type: array
          items:
            type: string
            maxLength: 500
          description: >-
            Nombres, alias y abreviaturas de marca utilizados para detectar
            menciones. Si está vacío, la IA los genera automáticamente en la
            primera ejecución del procesamiento.
          default: []
          example:
            - Acme
            - Acme Corp
          maxItems: 200
        competitors:
          type: array
          items:
            $ref: '#/components/schemas/CompetitorInput'
          description: >-
            Competidores que se monitorizarán. Se eliminan duplicados por URL.
            Se omiten las entradas con la URL del propio sitio web o una ruta
            suya.
          default: []
          maxItems: 500
        prompts:
          type: array
          items:
            $ref: '#/components/schemas/PromptInput'
          description: >-
            Consultas que se monitorizarán en los modelos de IA. Se eliminan
            duplicados por texto.
          default: []
          maxItems: 10000
        schedule:
          $ref: '#/components/schemas/ScheduleInput'
        external_id:
          type: string
          minLength: 1
          description: >-
            **Solo socios.** Identificador de tu sistema que se vinculará a este
            sitio web de Athena. Solo se admite con una clave de API de una
            organización marcada como socio. Los clientes directos reciben `403
            Forbidden`. Debe ser único por tipo de recurso en tu organización;
            los duplicados devuelven `409` con el recurso existente en los datos
            de respuesta.
          example: ws_a7f3b2c9
    ProvisionedWebsite:
      type: object
      description: Respuesta del sitio web configurado
      required:
        - id
        - url
        - name
        - orgId
        - promptCount
        - competitorCount
        - hasSchedule
      properties:
        id:
          type: string
          format: uuid
          description: Identificador único del sitio web
          example: 123e4567-e89b-12d3-a456-426614174000
        url:
          type: string
          description: URL del sitio web depurada (sin protocolo)
          example: acme.com
        name:
          type: string
          description: Nombre de la marca
          example: Acme Corp
        orgId:
          type: string
          format: uuid
          description: ID de la organización a la que pertenece el sitio web
          example: 987e6543-e21b-12d3-a456-426614174000
        promptCount:
          type: integer
          description: Número de consultas creadas
          example: 2
        competitorCount:
          type: integer
          description: Número de competidores creados
          example: 1
        hasSchedule:
          type: boolean
          description: Indica si se ha configurado una programación de procesamiento
          example: true
        externalId:
          type: string
          nullable: true
          description: >-
            **Solo socios.** Repite el `external_id` de la solicitud de
            aprovisionamiento si se ha indicado, o `null` si no. Solo aparece en
            respuestas a claves de API de socios; las respuestas a clientes
            directos omiten el campo.
          example: ws_a7f3b2c9
    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
    ExternalIdConflictError:
      type: object
      description: >-
        Se devuelve si un socio intenta establecer un `external_id` ya vinculado
        a otro recurso del mismo tipo en la organización. `existing` identifica
        el recurso que ya tiene el ID para que el socio pueda recuperarse de un
        reintento o conciliar su vinculación.
      required:
        - error
        - message
        - existing
      properties:
        error:
          type: string
          enum:
            - external_id_conflict
          description: >-
            Código de error legible por máquinas. Siempre es
            `external_id_conflict`.
          example: external_id_conflict
        message:
          type: string
          description: Explicación del conflicto en lenguaje comprensible.
          example: external_id ws_a7f3b2c9 is already mapped to a website
        existing:
          type: object
          required:
            - id
            - externalId
          description: Recurso que actualmente tiene el `external_id` en conflicto.
          properties:
            id:
              type: string
              format: uuid
              description: ID de Athena del recurso existente.
              example: 123e4567-e89b-12d3-a456-426614174000
            externalId:
              type: string
              description: El external_id que ya está asociado.
              example: ws_a7f3b2c9
    CompetitorInput:
      type: object
      description: Un competidor al que seguir
      required:
        - name
        - url
      properties:
        name:
          type: string
          description: Nombre del competidor
          example: WidgetCo
          maxLength: 255
        url:
          type: string
          description: URL del sitio web del competidor
          example: widgetco.com
          maxLength: 2048
        identifiers:
          type: array
          items:
            type: string
            maxLength: 500
          description: >-
            Alias adicionales al nombre y al dominio (que se incluyen
            automáticamente). Si está vacío, se generan automáticamente en la
            primera ejecución del procesamiento.
          default: []
          example:
            - WidgetCo
          maxItems: 200
    PromptInput:
      type: object
      description: Una consulta que se seguirá en los modelos de IA
      required:
        - text
      properties:
        text:
          type: string
          description: Texto de la consulta que se enviará a los modelos de IA
          example: best widget software
          maxLength: 2000
        topic:
          type: string
          description: >-
            Nombre del tema bajo el que se agrupará la consulta. Se crea si no
            existe. Omítelo para dejar la consulta sin categoría.
          example: Products
        type:
          type: string
          enum:
            - discovery
            - high_intent
          description: >-
            Tipo de consulta. `discovery` para consultas informativas y
            `high_intent` para consultas con intención de compra.
          default: discovery
          example: discovery
    ScheduleInput:
      type: object
      description: >-
        Configuración de la programación del procesamiento. Si se omite por
        completo, no se crea ninguna programación; el usuario puede configurarla
        en la interfaz. Todos sus campos son opcionales y tienen valores
        predeterminados adecuados.
      properties:
        days:
          type: object
          description: >-
            Días en los que se ejecutará el procesamiento. Las claves son
            nombres de días (Monday–Sunday) y los valores son booleanos.
          additionalProperties:
            type: boolean
          default:
            Monday: true
            Tuesday: true
            Wednesday: true
            Thursday: true
            Friday: true
            Saturday: true
            Sunday: true
          example:
            Monday: true
            Wednesday: true
            Friday: true
        models:
          type: object
          description: >-
            Modelos de IA que se consultarán. ID disponibles: `chatgpt`,
            `ai_overview`, `perplexity`, `gemini`, `copilot`, `grok`, `ai_mode`,
            `claude`.
          additionalProperties:
            type: boolean
          default:
            chatgpt: true
            gemini: true
            copilot: true
            perplexity: true
            ai_overview: true
          example:
            chatgpt: true
            gemini: true
            perplexity: true
        isActive:
          type: boolean
          description: Indica si están activadas las ejecuciones programadas automáticas
          default: true
        processingHour:
          type: integer
          minimum: 0
          maximum: 23
          description: >-
            Hora UTC de ejecución del procesamiento programado. Si se omite, se
            asigna aleatoriamente entre 0 y 17.
  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.