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

# Llistar arrendataris

> Recupera una llista paginada de tenants que pertanyen a l'organització especificada. Suport filtratge i ordenació sobre propietats del tenant. Els filtres es proporcionen com una cadena JSON que segueix l'estructura AST de FilterNode. Els resultats es retornen en pàgines amb metadades de paginació.



## OpenAPI

````yaml /ca/api-reference/openapi.ca-v1.json get /v1/organizations/{organization_id}/tenants
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 (production)
security:
  - bearerAuth: []
tags: []
paths:
  /v1/organizations/{organization_id}/tenants:
    get:
      tags:
        - Llogaters
      summary: Llistar arrendataris
      description: >-
        Recupera una llista paginada de tenants que pertanyen a l'organització
        especificada. Suport filtratge i ordenació sobre propietats del tenant.
        Els filtres es proporcionen com una cadena JSON que segueix l'estructura
        AST de FilterNode. Els resultats es retornen en pàgines amb metadades de
        paginació.
      operationId: listTenants
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            maxLength: 24
            pattern: ^[0-9a-f]{24}$
          description: El identificador únic de l'organització
          example: 507f1f77bcf86cd799439011
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
            minimum: 1
          description: 'Número de pàgina (predeterminat: 1)'
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            default: 100
            maximum: 100
            minimum: 1
          description: Número d'elements per pàgina
        - name: sort
          in: query
          required: false
          schema:
            type: string
          description: >-
            Camp de ordenació amb sufix opcional d'ordre (:asc o :desc), p. ex.,
            "name", "name:asc", "create_date:desc". Usa ordre ascendent per
            defecte si no es proporciona sufix. Camps vàlids: id, create_date,
            name, region, product_id, policy_id
        - name: fields
          in: query
          required: false
          schema:
            type: string
            maxLength: 2048
          description: >-
            Llista separada per comes de camps a incloure en cada element de
            tenant. Camps seleccionables: id, organization_id, create_date,
            name, region, product_id, policy_id. El camp id sempre s'inclou.
          example: name,region,product_id
        - name: filters
          in: query
          required: false
          schema:
            type: string
            maxLength: 5120
            description: >-
              Filtra tenants usant un objecte JSON. Especifica el camp a
              filtrar, l'operador de comparació i el valor. Exemple: {"field":
              "name", "op": "eq", "value": "Tenant 1"}
            example: '{"field": "name", "op": "eq", "value": "Tenant 1"}'
          description: >-
            Filtra tenants per un o més criteris. Proporciona un objecte JSON
            amb condicions de filtratge. Pots filtrar per qualsevol camp
            retornat en la resposta. Usa operadors de comparació (eq, ne, gt,
            gte, lt, lte, in, nin, contains, startsWith, endsWith, between) i
            combina diverses condicions amb operadors lògics (and, or). Longitud
            màxima: 5120 caràcters.
          examples:
            simple:
              summary: Filtre simple
              description: Filtra tenants per nom que conté text.
              value: '{"field": "name", "op": "contains", "value": "production"}'
            complex-and:
              summary: Filtre complex amb AND
              description: Filtra tenants per regió i producte al mateix temps.
              value: >-
                {"and": [{"field": "region", "op": "eq", "value": "us-east"},
                {"field": "product_id", "op": "eq", "value":
                "507f1f77bcf86cd799439030"}]}
            complex-or-and:
              summary: Combina condicions OR i AND
              description: Coincideix amb múltiples regions i aplica una restricció de nom.
              value: >-
                {"and": [{"or": [{"field": "region", "op": "eq", "value":
                "us-east"}, {"field": "region", "op": "eq", "value":
                "eu-west"}]}, {"field": "name", "op": "contains", "value":
                "tenant"}]}
      responses:
        '200':
          description: >-
            Llista paginada de tenants recuperada correctament. La resposta
            inclou la bandera de paginació i l'arranjament de dades de tenants.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantListItemV1ListResponseV1'
        '400':
          $ref: '#/components/responses/BadRequest'
          description: >-
            Sol·licitud incorrecta. Causes comunes: - Paràmetres de paginació no
            vàlids - Paràmetre de ordenació no vàlid - Paràmetres de filtre no
            vàlids
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: No autoritzat - es requereix autenticació
        '404':
          $ref: '#/components/responses/NotFound'
          description: Organització no trobada
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    TenantListItemV1ListResponseV1:
      type: object
      properties:
        has_next:
          type: boolean
          description: Indica si hi ha més pàgines disponibles
        data:
          type: array
          items:
            $ref: '#/components/schemas/TenantListItemV1'
      required:
        - has_next
        - data
    TenantListItemV1:
      type: object
      properties:
        id:
          type: string
          description: ID de l'arrendatari
        organization_id:
          type: string
          description: ID de l'organització del tenant
        create_date:
          type: string
          format: date-time
          description: Data de creació (data i hora ISO 8601)
        name:
          type: string
          description: Nom del tenant
        region:
          type: string
          description: Regió/ID de regió
        product_id:
          type: string
          nullable: true
          description: >-
            Identificador del producte (nullable si el tenant no té producte
            assignat)
        policy_id:
          type: string
          nullable: true
          description: >-
            Identificador de la política (nullable si el tenant no té política
            assignada)
      required:
        - id
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
            details:
              type: string
          required:
            - message
            - code
      required:
        - error
  responses:
    BadRequest:
      description: Sol·licitud incorrecta
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: No autoritzat
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: No trobat
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Masses sol·licituds
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Error intern del servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````