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

# Listar actividades comerciales de una empresa, contacto u oportunidad

> Devuelve fecha, tipo, resultado, contenido y participantes de las actividades del registro indicado, de la más reciente a la más antigua.



## OpenAPI

````yaml /generated/specs/sales.json get /api/v1/sales/activities
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/sales/activities:
    get:
      tags:
        - Sales Activities
      summary: Listar actividades comerciales de una empresa, contacto u oportunidad
      description: >-
        Devuelve fecha, tipo, resultado, contenido y participantes de las
        actividades del registro indicado, de la más reciente a la más antigua.
      operationId: SalesActivityListController_list
      parameters:
        - name: client_id
          required: false
          in: query
          description: Empresa cliente
          schema:
            type: string
            format: uuid
        - name: contact_id
          required: false
          in: query
          description: Contacto vinculado o participante
          schema:
            type: string
            format: uuid
        - name: opportunity_id
          required: false
          in: query
          description: Oportunidad
          schema:
            type: string
            format: uuid
        - name: invoice_id
          required: false
          in: query
          description: Factura
          schema:
            type: string
            format: uuid
        - name: activity_type
          required: false
          in: query
          schema:
            type: string
            enum:
              - nota
              - whatsapp
              - correo
              - linkedin
              - llamada
              - reunion
        - name: from
          required: false
          in: query
          description: Desde (inclusive), RFC 3339 con offset
          schema:
            type: string
            format: date-time
        - name: to
          required: false
          in: query
          description: Hasta (inclusive), RFC 3339 con offset
          schema:
            type: string
            format: date-time
        - name: page
          required: false
          in: query
          schema:
            minimum: 1
            default: 1
            type: integer
        - name: limit
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 50
            default: 20
            type: integer
      responses:
        '200':
          description: Página de actividades con proyección mínima
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesActivityListResponseDto'
      security:
        - bearerAuth: []
components:
  schemas:
    SalesActivityListResponseDto:
      type: object
      properties:
        activities:
          maxItems: 50
          type: array
          items:
            $ref: '#/components/schemas/SalesActivityItemResponseDto'
        pagination:
          $ref: '#/components/schemas/SalesActivityListPaginationResponseDto'
      required:
        - activities
        - pagination
    SalesActivityItemResponseDto:
      type: object
      properties:
        activity_id:
          type: string
          format: uuid
        activity_type:
          type: string
          enum:
            - nota
            - whatsapp
            - correo
            - linkedin
            - llamada
            - reunion
            - otro
        occurred_at:
          type: string
          format: date-time
          description: Fecha real declarada o, si falta, la de registro (UTC)
        outcome:
          type: string
          nullable: true
        content:
          type: string
          maxLength: 10000
        content_truncated:
          type: boolean
        origin:
          type: string
          enum:
            - registro
            - bandeja
            - importado
        contact:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/SalesActivityContactResponseDto'
        participants:
          maxItems: 50
          type: array
          items:
            $ref: '#/components/schemas/SalesActivityContactResponseDto'
        client_id:
          type: string
          nullable: true
          format: uuid
        opportunity_id:
          type: string
          nullable: true
          format: uuid
        quote_id:
          type: string
          nullable: true
          format: uuid
        invoice_id:
          type: string
          nullable: true
          format: uuid
        file_count:
          type: integer
          minimum: 0
      required:
        - activity_id
        - activity_type
        - occurred_at
        - outcome
        - content
        - content_truncated
        - origin
        - contact
        - participants
        - client_id
        - opportunity_id
        - quote_id
        - invoice_id
        - file_count
    SalesActivityListPaginationResponseDto:
      type: object
      properties:
        total:
          type: integer
          minimum: 0
        page:
          type: integer
          minimum: 1
        limit:
          type: integer
          minimum: 1
          maximum: 50
        total_pages:
          type: integer
          minimum: 0
        has_more:
          type: boolean
      required:
        - total
        - page
        - limit
        - total_pages
        - has_more
    SalesActivityContactResponseDto:
      type: object
      properties:
        contact_id:
          type: string
          format: uuid
        name:
          type: string
          nullable: true
          maxLength: 255
      required:
        - contact_id
        - name
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token de sesión Better Auth para rutas de backoffice; las rutas de
        portal usan su token propio.

````

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