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

# Llistar auditories

> Retorna els esdeveniments d'auditoria de l'organització indicada per consultar quina acció es va realitzar, sobre quina entitat, quan va ocórrer i qui la va desencadenar. Quan `trigger_type` és `user`, `trigger_id` correspon a l'identificador de l'usuari i es pot consultar mitjançant l'endpoint d'usuaris. Quan `trigger_type` és `api`, `trigger_id` correspon a l'identificador de l'API key; actualment les API keys no són consultables des d'aquesta API pública.



## OpenAPI

````yaml /ca/api-reference/openapi.ca-v1.json get /v1/organizations/{organization_id}/audits
openapi: 3.0.3
info:
  title: API Publica Portal
  version: 1.0.0
  description: API pública REST per al portal
servers:
  - url: https://api.flexxible.net/
    description: Portal API
security:
  - bearerAuth: []
tags: []
paths:
  /v1/organizations/{organization_id}/audits:
    get:
      tags:
        - Auditoria
      summary: Llistar auditories
      description: >-
        Retorna els esdeveniments d'auditoria de l'organització indicada per
        consultar quina acció es va realitzar, sobre quina entitat, quan va
        ocórrer i qui la va desencadenar. Quan `trigger_type` és `user`,
        `trigger_id` correspon a l'identificador de l'usuari i es pot consultar
        mitjançant l'endpoint d'usuaris. Quan `trigger_type` és `api`,
        `trigger_id` correspon a l'identificador de l'API key; actualment les
        API keys no són consultables des d'aquesta API pública.
      operationId: get_audits
      parameters:
        - name: organization_id
          in: path
          required: true
          description: Identificador de l'organització.
          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: Quantitat d'elements per pàgina.
          schema:
            type: integer
            default: 100
            maximum: 100
            minimum: 1
        - name: fields
          in: query
          required: false
          description: Llista separada per comes amb els camps de resposta a incloure.
          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: >-
            Expressió d'ordenació amb el format <field>:asc|desc. En mode
            agregat, només accepta camps de `group_by` o àlies agregats
            (`count`, `<function>_<field>`).
          schema:
            type: string
            pattern: ^([a-z_]+):(asc|desc)$
        - name: filters
          in: query
          required: false
          description: Expressió JSON de filtrat sobre camps filtrables de la resposta.
          schema:
            type: string
          examples:
            simple:
              summary: Filtre simple per tipus d'entitat
              value: '{"field":"entity_type","op":"eq","value":"workspace"}'
            complex-and:
              summary: Combinació AND per acció i tipus d'entitat
              value: >-
                {"and":[{"field":"action","op":"eq","value":"update"},{"field":"entity_type","op":"eq","value":"workspace"}]}
            complex-or-and:
              summary: Combinació OR dins de AND amb actor i acció
              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: >-
            Expressió JSON per a agregació. Estructura:
            {"group_by":["field"],"aggregates":[{"field":"*","function":"count"}]}.
            No es pot combinar amb `fields`.
          schema:
            type: string
            maxLength: 1024
          examples:
            group-by-action-count:
              summary: Agrupar per acció i comptar
              value: >-
                {"group_by":["action"],"aggregates":[{"field":"*","function":"count"}]}
            group-by-entity-type-count:
              summary: Agrupar per tipus d'entitat i comptar
              value: >-
                {"group_by":["entity_type"],"aggregates":[{"field":"*","function":"count"}]}
      responses:
        '200':
          description: Llistat d'auditories obtingut correctament.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuditsResponseV1'
              examples:
                list-mode:
                  summary: Resposta en mode llistat
                  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àmetres de sol·licitud no vàlids.
          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 autoritzat per accedir a l'organització sol·licitada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: No autorizado para acceder a la organización solicitada.
        '404':
          description: Recurs no trobat dins de l'organització autoritzada.
          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 intern 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 existeix una pàgina següent.
        data:
          type: array
          description: Llistat d'auditories.
          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 l'auditoria.
          pattern: ^[0-9a-f]{24}$
          minLength: 24
          maxLength: 24
        audited_at:
          type: string
          format: date-time
          description: Data en la qual es registra l'auditoria.
        organization_id:
          type: string
          nullable: true
          description: Identificador de l'organització associada al registre.
          pattern: ^[0-9a-f]{24}$
          minLength: 24
          maxLength: 24
        action:
          type: string
          description: Acció auditada.
          enum:
            - insert
            - update
            - delete
            - recover
            - soft_delete
        entity_type:
          type: string
          description: Tipus d'entitat sobre la qual s'executa l'acció.
        entity_id:
          type: string
          description: Identificador de l'entitat afectada.
        trigger_type:
          type: string
          description: Tipus d'actor que desencadena l'acció.
          enum:
            - api
            - user
        trigger_id:
          type: string
          description: Identificador de l'actor.
          pattern: ^[0-9a-f]{24}$
          minLength: 24
          maxLength: 24
        trigger_name:
          type: string
          description: Nom visible de l'actor.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````