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

> Recupera una lista paginada de tenants que pertenecen a la organización especificada. Admite filtrado y ordenación sobre propiedades del tenant. Los filtros se proporcionan como una cadena JSON que sigue la estructura AST de FilterNode. Los resultados se devuelven en páginas con metadatos de paginación.



## OpenAPI

````yaml /api-reference/openapi-v2.json get /v2/organizations/{organization_id}/tenants
openapi: 3.0.3
info:
  title: API Pública Portal
  version: 2.0.0
  description: API pública REST para Portal
servers:
  - url: https://api.flexxible.net
    description: Portal API (production)
security:
  - bearerAuth: []
tags:
  - name: Actividad digital
    description: Creación de grupos de procesos core por organización
  - name: Roles
    description: Endpoint de creaciÓn de roles de organización
  - name: Usuarios
    description: Endpoint de creación de usuarios de organización
  - name: Grupos de workspaces
    description: Endpoints de gestión de grupos de workspaces
  - name: Workspaces
    description: Endpoint de eliminacion de workspaces de la organización
  - name: Aplicaciones instaladas
    description: Endpoint de detalle de aplicación instalada de la organización
  - name: Autenticación
    description: Endpoints de autenticación y contexto de sesión
  - name: Microservicios
    description: Detalle de microservicios por organización
  - name: Operaciones
    description: Consulta de detalle de operaciones por organización
  - name: Organización
    description: Operaciones de organización
  - name: Objetivos de política de parches
    description: Endpoints de gestión de objetivos de política de parches
  - name: Configuraciones de producto
    description: Endpoints de gestión de configuraciones de producto
  - name: Grupos de reporte
    description: Operaciones sobre grupos de reporte
  - name: Sesiones
    description: Endpoint de detalle de sesión de la organización
  - name: Tenants
    description: Endpoints de gestión de tenants
paths:
  /v2/organizations/{organization_id}/tenants:
    get:
      tags:
        - Tenants
      summary: Listar tenants
      description: >-
        Recupera una lista paginada de tenants que pertenecen a la organización
        especificada. Admite filtrado y ordenación sobre propiedades del tenant.
        Los filtros se proporcionan como una cadena JSON que sigue la estructura
        AST de FilterNode. Los resultados se devuelven en páginas con metadatos
        de paginación.
      operationId: listTenants
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            maxLength: 24
            pattern: ^[0-9a-f]{24}$
          description: El identificador único de la organización
          example: 507f1f77bcf86cd799439011
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
            minimum: 1
          description: 'Número de página (predeterminado: 1)'
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 100
          description: Número de elementos por página
        - name: sort
          in: query
          required: false
          schema:
            type: string
          description: >-
            Campo de ordenación con sufijo opcional de orden (:asc o :desc), p.
            ej., "name", "name:asc", "created_at:desc". Usa orden ascendente de
            forma predeterminada si no se proporciona sufijo. Campos válidos:
            id, created_at, name, region, product_id, policy_id
        - name: fields
          in: query
          required: false
          schema:
            type: string
            maxLength: 2048
          description: >-
            Lista separada por comas de campos a incluir en cada elemento de
            tenant. Campos seleccionables: id, organization_id, created_at,
            name, region, product_id, policy_id. El campo id siempre se incluye.
          example: name,region,product_id
        - name: filters
          in: query
          required: false
          schema:
            type: string
            maxLength: 5120
            description: >-
              Filtra tenants usando un objeto JSON. Especifica el campo a
              filtrar, el operador de comparación y el valor. Ejemplo: {"field":
              "name", "op": "eq", "value": "Tenant 1"}
            example: '{"field": "name", "op": "eq", "value": "Tenant 1"}'
          description: >-
            Filtra tenants por uno o más criterios. Proporciona un objeto JSON
            con condiciones de filtro. Puedes filtrar por cualquier campo
            devuelto en la respuesta. Usa operadores de comparación (eq, ne, gt,
            gte, lt, lte, in, nin, contains, startsWith, endsWith, between) y
            combina varias condiciones con operadores lógicos (and, or).
            Longitud máxima: 5120 caracteres.
          examples:
            simple:
              summary: Filtro simple
              description: Filtra tenants por nombre que contiene texto.
              value: '{"field": "name", "op": "contains", "value": "production"}'
            complex-and:
              summary: Filtro complejo con AND
              description: Filtra tenants por region y producto al mismo tiempo.
              value: >-
                {"and": [{"field": "region", "op": "eq", "value": "us-east"},
                {"field": "product_id", "op": "eq", "value":
                "507f1f77bcf86cd799439030"}]}
            complex-or-and:
              summary: Combinar condiciones OR y AND
              description: >-
                Coincide con múltiples regiones y aplica una restricción de
                nombre.
              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: >-
            Lista paginada de tenants recuperada correctamente. La respuesta
            incluye la bandera de paginación y el arreglo de datos de tenants.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenantListItemV2ListResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
          description: >-
            Solicitud incorrecta. Causas comunes: - Parámetros de paginación no
            válidos - Parámetro de ordenación no válido - Parámetros de filtro
            no válidos
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: No autorizado - se requiere autenticación
        '404':
          $ref: '#/components/responses/NotFound'
          description: Organización no encontrada
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    TenantListItemV2ListResponseV2:
      type: object
      properties:
        has_next:
          type: boolean
          description: Indica si hay mas páginas disponibles
        data:
          type: array
          items:
            $ref: '#/components/schemas/TenantListItemV2'
      required:
        - has_next
        - data
    TenantListItemV2:
      type: object
      properties:
        id:
          type: string
          description: ID del tenant
        organization_id:
          type: string
          description: ID de la organización del tenant
        created_at:
          type: string
          format: date-time
          description: Fecha de creación (fecha y hora ISO 8601)
        name:
          type: string
          description: Nombre del tenant
        region:
          type: string
          description: Región/ID de región
        product_id:
          type: string
          nullable: true
          description: >-
            Identificador del producto (nullable si el tenant no tiene producto
            asignado)
        policy_id:
          type: string
          nullable: true
          description: >-
            Identificador de la política (nullable si el tenant no tiene
            política asignada)
      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: Solicitud incorrecta
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: No autorizado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: No encontrado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Demasiadas solicitudes
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Error interno del servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````