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

# Actualizar sitio web

> Establece, sustituye o borra el `external_id` del socio vinculado a un sitio web. **Solo integraciones de socios:** pasa `external_id` como una cadena no vacía para establecer o sustituir, o `null` para borrar. Requiere una clave global. Funciona también en sitios eliminados, ya que eliminarlos no libera su `external_id`. Si un `external_id` ya está vinculado a otro sitio de tu organización, devuelve `409` identificando al titular; para trasladarlo, bórralo primero en el actual y establécelo después en el nuevo.



## OpenAPI

````yaml es/api-reference/openapi.json patch /api/v1/websites/{website_id}
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/{website_id}:
    parameters:
      - name: website_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: Identificador único del sitio web
        example: 123e4567-e89b-12d3-a456-426614174000
    patch:
      tags:
        - Basics
      summary: Actualizar sitio web
      description: >-
        Establece, sustituye o borra el `external_id` del socio vinculado a un
        sitio web. **Solo integraciones de socios:** pasa `external_id` como una
        cadena no vacía para establecer o sustituir, o `null` para borrar.
        Requiere una clave global. Funciona también en sitios eliminados, ya que
        eliminarlos no libera su `external_id`. Si un `external_id` ya está
        vinculado a otro sitio de tu organización, devuelve `409` identificando
        al titular; para trasladarlo, bórralo primero en el actual y establécelo
        después en el nuevo.
      operationId: updateWebsite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebsiteRequest'
      responses:
        '200':
          description: >-
            Vinculación actualizada. `externalId` siempre aparece en esta
            respuesta: el nuevo valor o `null` tras borrarlo. Como las
            respuestas de búsqueda por `external_id`, y a diferencia de la lista
            de `GET /api/v1/websites`, este endpoint no devuelve `baseCountry`.
          content:
            application/json:
              schema:
                type: object
                required:
                  - website
                properties:
                  website:
                    type: object
                    required:
                      - id
                      - websiteName
                      - websiteUrl
                      - onboardingStep
                      - externalId
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Identificador único del sitio web
                        example: 123e4567-e89b-12d3-a456-426614174000
                      websiteName:
                        type: string
                        description: Nombre visible del sitio web
                        example: My Awesome Blog
                      websiteUrl:
                        type: string
                        description: Dominio del sitio web (sin protocolo)
                        example: example.com
                      onboardingStep:
                        type: integer
                        nullable: true
                        description: >-
                          Paso actual de configuración inicial del sitio web.
                          Null indica que la configuración ha terminado.
                        example: null
                      externalId:
                        type: string
                        nullable: true
                        description: >-
                          Identificador proporcionado por el socio que ahora
                          está vinculado a este sitio web, o `null` si la
                          solicitud ha borrado la vinculación.
                        example: ws_a7f3b2c9
        '400':
          description: >-
            Solicitud incorrecta: error de validación o ID de sitio web no
            válido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_external_id:
                  summary: No se ha enviado external_id
                  value:
                    error: '''external_id'' is required'
                invalid_website_id:
                  summary: El ID del sitio web no es un UUID
                  value:
                    error: Invalid website ID format
                invalid_json:
                  summary: El cuerpo no contiene JSON válido
                  value:
                    error: Invalid JSON body
                unrecognized_field:
                  summary: Las claves desconocidas se rechazan
                  value:
                    error: 'Unrecognized key: "externalId"'
        '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 que pertenezca
            a una organización marcada como 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'
        '404':
          description: >-
            No encontrado: el sitio web no existe o no pertenece a tu
            organización
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Website not found
        '409':
          description: >-
            Conflicto: el `external_id` proporcionado ya está vinculado a otro
            sitio web de tu organización. Borra primero la vinculación en ese
            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:
    UpdateWebsiteRequest:
      type: object
      additionalProperties: false
      description: >-
        Cuerpo de la solicitud para actualizar un sitio web. `external_id` es
        obligatorio; los campos desconocidos se rechazan con `400`.
      required:
        - external_id
      properties:
        external_id:
          type: string
          minLength: 1
          maxLength: 255
          nullable: true
          description: >-
            **Solo socios.** Identificador del socio que se asociará al sitio
            web. Pasa una cadena no vacía para establecer o sustituir la
            vinculación, o `null` para borrarla. Se recortan los espacios de los
            extremos; un valor vacío o de más de 255 caracteres devuelve `400`.
            Solo se admite con una clave de una organización marcada como socio;
            los clientes directos reciben `403 Forbidden`. Debe ser único por
            tipo de recurso en tu organización: un valor ya usado por otro sitio
            devuelve `409` con ese sitio en la respuesta.
          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
  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.