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

# Listar auditorías

> Devuelve los eventos de auditoría de la organización indicada para consultar qué acción se realizó, sobre qué entidad, cuándo ocurrió y quién la desencadenó. Cuando `trigger_type` es `user`, `trigger_id` corresponde al identificador del usuario y puede consultarse mediante el endpoint de usuarios. Cuando `trigger_type` es `api`, `trigger_id` corresponde al identificador de la API key; por ahora las API keys no son consultables desde esta API pública.



## OpenAPI

````yaml /api-reference/openapi-v1.json get /v1/organizations/{organization_id}/audits
openapi: 3.0.3
info:
  title: API Pública Portal
  version: 1.0.0
  description: API pública REST para Portal
servers:
  - url: https://api.flexxible.net/
    description: Portal API
security:
  - bearerAuth: []
tags: []
paths:
  /v1/organizations/{organization_id}/audits:
    get:
      tags:
        - Auditoría
      summary: Listar auditorías
      description: >-
        Devuelve los eventos de auditoría de la organización indicada para
        consultar qué acción se realizó, sobre qué entidad, cuándo ocurrió y
        quién la desencadenó. Cuando `trigger_type` es `user`, `trigger_id`
        corresponde al identificador del usuario y puede consultarse mediante el
        endpoint de usuarios. Cuando `trigger_type` es `api`, `trigger_id`
        corresponde al identificador de la API key; por ahora las API keys no
        son consultables desde esta API pública.
      operationId: get_audits
      parameters:
        - name: organization_id
          in: path
          required: true
          description: Identificador de la organización.
          schema:
            type: string
            pattern: ^[0-9a-f]{24}$
            minLength: 24
            maxLength: 24
        - name: page
          in: query
          required: false
          description: Número de página a consultar.
          schema:
            type: integer
            default: 1
            minimum: 1
        - name: per_page
          in: query
          required: false
          description: Cantidad de elementos por página.
          schema:
            type: integer
            default: 100
            maximum: 100
            minimum: 1
        - name: fields
          in: query
          required: false
          description: Lista separada por comas con los campos de respuesta a incluir.
          schema:
            type: string
            example: >-
              id,audited_at,action,entity_type,entity_id,trigger_type,trigger_id,trigger_name
        - name: sort
          in: query
          required: false
          description: >-
            Expresión de ordenación con el formato <field>:asc|desc. En modo
            agregado, solo acepta campos de `group_by` o aliases agregados
            (`count`, `<function>_<field>`).
          schema:
            type: string
            pattern: ^([a-z_]+):(asc|desc)$
        - name: filters
          in: query
          required: false
          description: Expresión JSON de filtrado sobre campos filtrables de la respuesta.
          schema:
            type: string
          examples:
            simple:
              summary: Filtro simple por tipo de entidad
              value: '{"field":"entity_type","op":"eq","value":"workspace"}'
            complex-and:
              summary: Combinación AND por acción y tipo de entidad
              value: >-
                {"and":[{"field":"action","op":"eq","value":"update"},{"field":"entity_type","op":"eq","value":"workspace"}]}
            complex-or-and:
              summary: Combinación OR dentro de AND con actor y acción
              value: >-
                {"and":[{"or":[{"field":"trigger_id","op":"eq","value":"8c1a7e2b9f4d3c6e0a5b1d2f"},{"field":"trigger_id","op":"eq","value":"f0b9c3d7a1e5f8b2c4d6e9a0"}]},{"field":"action","op":"eq","value":"delete"}]}
        - name: aggregate
          in: query
          required: false
          description: >-
            Expresión JSON para agregación. Estructura:
            {"group_by":["field"],"aggregates":[{"field":"*","function":"count"}]}.
            No se puede combinar con `fields`.
          schema:
            type: string
            maxLength: 1024
          examples:
            group-by-action-count:
              summary: Agrupar por acción y contar
              value: >-
                {"group_by":["action"],"aggregates":[{"field":"*","function":"count"}]}
            group-by-entity-type-count:
              summary: Agrupar por tipo de entidad y contar
              value: >-
                {"group_by":["entity_type"],"aggregates":[{"field":"*","function":"count"}]}
      responses:
        '200':
          description: Listado de auditorías obtenido correctamente.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuditsResponseV1'
              examples:
                list-mode:
                  summary: Respuesta en modo listado
                  value:
                    has_next: true
                    data:
                      - id: b7e4c2a9d1f6038e5a2c9b4d
                        audited_at: '2026-06-30T11:45:12.000Z'
                        organization_id: a9d3f1b7c4e8026d5f0a3c8e
                        action: update
                        entity_type: workspace
                        entity_id: c2f8a1d4b9e3067f5c0d2a8e
                        trigger_type: api
                        trigger_id: 8c1a7e2b9f4d3c6e0a5b1d2f
                        trigger_name: Api Key
        '400':
          description: Parámetros de solicitud no válidos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: BAD_REQUEST
                  message: Invalid request data
                  details: fields and aggregate cannot be combined.
        '401':
          description: No autorizado para acceder a la organización solicitada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: No autorizado para acceder a la organización solicitada.
        '404':
          description: Recurso no encontrado dentro de la organización autorizada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: not_found
                  message: El recurso solicitado no existe en la organización indicada.
        '500':
          description: Error interno del servidor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Se ha producido un error interno.
components:
  schemas:
    GetAuditsResponseV1:
      type: object
      required:
        - has_next
        - data
      properties:
        has_next:
          type: boolean
          description: Indica si existe una página siguiente.
        data:
          type: array
          description: Listado de auditorías.
          items:
            $ref: '#/components/schemas/AuditItemV1'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
            details:
              type: string
          required:
            - message
            - code
      required:
        - error
    AuditItemV1:
      type: object
      required:
        - id
        - audited_at
        - action
        - entity_type
        - entity_id
        - trigger_type
        - trigger_id
        - trigger_name
      properties:
        id:
          type: string
          description: Identificador de la auditoría.
          pattern: ^[0-9a-f]{24}$
          minLength: 24
          maxLength: 24
        audited_at:
          type: string
          format: date-time
          description: Fecha en la que se registra la auditoría.
        organization_id:
          type: string
          nullable: true
          description: Identificador de la organización asociada al registro.
          pattern: ^[0-9a-f]{24}$
          minLength: 24
          maxLength: 24
        action:
          type: string
          description: Acción auditada.
          enum:
            - insert
            - update
            - delete
            - recover
            - soft_delete
        entity_type:
          type: string
          description: Tipo de entidad sobre la que se ejecuta la acción.
        entity_id:
          type: string
          description: Identificador de la entidad afectada.
        trigger_type:
          type: string
          description: Tipo de actor que desencadena la acción.
          enum:
            - api
            - user
        trigger_id:
          type: string
          description: Identificador del actor.
          pattern: ^[0-9a-f]{24}$
          minLength: 24
          maxLength: 24
        trigger_name:
          type: string
          description: Nombre visible del actor.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````