> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ugps.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Deliver a website visit

> Recibe la visita en curso, completa, de un navegador del sitio web (ugps.cl o ugps.io) que ya envió un formulario comercial, y la deja como «Visita al sitio web» en la ficha de su contacto. Responde igual a un navegador conocido y a uno desconocido: la visita de un navegador sin vincular se descarta sin guardarse.



## OpenAPI

````yaml /generated/specs/sales.json post /api/v1/public/website-visits
openapi: 3.0.0
info:
  title: Raul API - Ventas
  description: >-
    Cotizaciones, pipeline, outreach comercial, equipos cotizables y ventas de
    equipamiento.
  version: 2.0.0
  contact: {}
servers:
  - url: https://api.raul.ugps.io
    description: Production
security: []
tags: []
paths:
  /api/v1/public/website-visits:
    post:
      tags:
        - Website Visits
      summary: Deliver a website visit
      description: >-
        Recibe la visita en curso, completa, de un navegador del sitio web
        (ugps.cl o ugps.io) que ya envió un formulario comercial, y la deja como
        «Visita al sitio web» en la ficha de su contacto. Responde igual a un
        navegador conocido y a uno desconocido: la visita de un navegador sin
        vincular se descarta sin guardarse.
      operationId: WebsiteVisitsController_deliverVisit
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebsiteVisitDeliveryDto'
      responses:
        '204':
          description: Entrega recibida, sea el visitante conocido o no
        '400':
          description: El cuerpo no valida o trae un campo desconocido
        '429':
          description: 'Sobre el cupo: 60 por minuto por IP o 20 por minuto por visitante'
components:
  schemas:
    WebsiteVisitDeliveryDto:
      type: object
      properties:
        visitanteId:
          type: string
          description: >-
            Id del visitante web (UUID que el sitio genera por navegador y por
            sitio)
          format: uuid
        visita:
          description: >-
            La visita en curso, completa: una entrega perdida la corrige la
            siguiente
          allOf:
            - $ref: '#/components/schemas/WebsiteVisitDto'
      required:
        - visitanteId
        - visita
    WebsiteVisitDto:
      type: object
      properties:
        id:
          type: string
          description: >-
            Id de la visita (UUID que genera el sitio); Raúl la guarda una sola
            vez
          format: uuid
        inicio:
          type: string
          description: Hora de la primera página (ISO 8601 con zona horaria)
          format: date-time
        referrer:
          type: string
          description: Página externa que trajo la visita, sin query ni fragmento
          format: uri
          maxLength: 500
          example: https://www.google.com/
        utmSource:
          type: string
          maxLength: 200
        utmMedium:
          type: string
          maxLength: 200
        utmCampaign:
          type: string
          maxLength: 200
        utmTerm:
          type: string
          maxLength: 200
        utmContent:
          type: string
          maxLength: 200
        gclid:
          type: string
          description: Google Click ID de la URL con que empezó la visita
          maxLength: 200
        fbclid:
          type: string
          description: Facebook Click ID de la URL con que empezó la visita
          maxLength: 200
        paginas:
          description: Páginas vistas, en orden (de 1 a 50)
          minItems: 1
          maxItems: 50
          type: array
          items:
            $ref: '#/components/schemas/WebsiteVisitPageDto'
      required:
        - id
        - inicio
        - paginas
    WebsiteVisitPageDto:
      type: object
      properties:
        id:
          type: string
          description: >-
            Id de la vista (UUID que genera el sitio): Raúl la combina sin
            duplicarla
          format: uuid
        ruta:
          type: string
          description: Ruta pública, con / inicial y sin dominio, query ni fragmento
          pattern: ^\/(?![/\\])[^\s\\?#]{0,499}$
          maxLength: 500
          example: /unificador
        titulo:
          type: string
          description: Título de la página; puede venir vacío
          maxLength: 200
          example: Unificador | UGPS
        entrada:
          type: string
          description: Hora de entrada a la página (ISO 8601 con zona horaria)
          format: date-time
        segundos:
          type: number
          description: Segundos con la pestaña a la vista
          minimum: 0
          maximum: 86400
      required:
        - id
        - ruta
        - titulo
        - entrada
        - segundos

````

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