/applications - List applications

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://api.my.nethesis.it/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "my.nethesis.it MCP server": {
    "url": "https://api.my.nethesis.it/mcp"
  }
}

Close
GET /applications

Get list of system applications visible to the user based on hierarchical organization permissions. Supports filtering by type, version, system, organization, and status.

Query String Examples:

  1. Single type filter: ?type=mail
  2. Multiple types filter: ?type=mail&type=webtop
  3. Status filter: ?status=unassigned
  4. With pagination and sorting: ?page=1&page_size=50&sort_by=instance_of&sort_direction=asc
  5. Combined filters: ?type=mail&status=assigned&organization_id=org_abc123
  6. Free-text search: ?search=cti.acme.example.it matches the application name, its type, the system name and the FQDNs the application is published on (inventory_data.fqdns); % and _ in the term are matched literally

Query parameters

  • page integer

    Page number

    Minimum value is 1. Default value is 1.

  • page_size integer

    Items per page

    Minimum value is 1, maximum value is 200. Default value is 20.

  • include_suggestions boolean

    When true, each unassigned application also carries suggested_organization, the customer of the hosting partner it is named after (hostnames, label or LDAP user domain) when exactly one stands out, otherwise the customer the hosting system belongs to. Nothing is assigned, the user confirms it.

    Default value is false.

  • sort_by string

    Field to sort applications by

    Values are display_name, module_id, instance_of, version, status, created_at, updated_at, last_inventory_at, system_name, organization_name, or certification_level.

  • sort_direction string

    Sort direction

    Values are asc or desc. Default value is asc.

  • type array[string]

    Filter applications by type (instance_of). Supports multiple values.

  • version array[string]

    Filter applications by version. Supports multiple values. Uses prefixed format "application:version" (e.g., "nethvoice:1.5.3") to avoid ambiguity when the same version exists for multiple application types.

  • system_id array[string]

    Filter applications by system ID. Supports multiple values.

  • organization_id array[string]

    Filter applications by organization ID, matching the assigned organization or, for unassigned applications, the organization of the hosting system. Supports multiple values; combine with include_hierarchy to cover a whole subtree.

  • include_hierarchy boolean

    When true (and organization_id is provided), each organization_id is expanded to the organization plus all its descendants (a distributor's resellers and their customers, a reseller's customers) before filtering

    Default value is false.

  • parent_organization_id array[string]

    "Managed by" filter. Keeps the entries whose organization is one of these organization Logto IDs or sits anywhere in their subtree (a distributor's resellers and customers, a reseller's customers), the set the hierarchy counters of an organization count over. For applications, an unassigned application counts with the organization of its system. ANDed with organization_id, so the assigned company and Managed by combine. Supports multiple values. Results always stay within the caller's RBAC scope.

  • status array[string]

    Filter applications by assignment status. Supports multiple values.

    Values are unassigned or assigned.

Responses

  • 200 application/json

    Applications retrieved successfully

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object
      Hide data attributes Show data attributes object
      • applications array[object]

        Simplified application representation for list views

        Hide applications attributes Show applications attributes object

        Simplified application representation for list views

        • id string

          Unique application identifier

        • module_id string

          Module identifier

        • instance_of string

          Application type

        • name string | null

          Human-readable label from inventory (e.g., "Nextcloud")

        • source string | null

          Image source from inventory (e.g., "ghcr.io/nethserver/nextcloud")

        • display_name string | null

          User-friendly name set in NS8 and inherited from inventory

        • version string | null

          Application version

        • status string

          Assignment status

          Values are unassigned or assigned.

        • node_id integer | null

          Node ID within the cluster

        • node_label string | null

          Node label from inventory (e.g., Leader Node, Worker Node)

        • url string | null

          Custom URL for the application

        • notes string | null

          Custom notes or description for the application

        • has_errors boolean

          Whether the application has service errors

        • inventory_data object | null

          Raw inventory data from the module (e.g., NethVoice proxy, Open LDAP domain, etc.)

        • backup_data object | null

          Backup status information

        • services_data object | null

          Service health status information with errors list

        • system object

          Minimal system info for application responses

          Hide system attributes Show system attributes object
          • id string

            System ID

          • name string

            System name

        • organization object

          Simplified organization for selection and assignment

          Hide organization attributes Show organization attributes object
          • id string

            Database UUID of the organization (or "no_org" for unassigned filter)

          • logto_id string

            Logto organization ID (or "no_org" for unassigned filter)

          • name string

            Organization name

          • description string

            Organization description

          • type string

            Organization type ("unassigned" is the special "No organization" filter entry)

            Values are owner, distributor, reseller, customer, or unassigned.

        • suggested_organization object

          Only with include_suggestions=true, on unassigned applications. The customer the application is probably meant for, to confirm with an assignment.

          Hide suggested_organization attributes Show suggested_organization attributes object
          • id string

            Database UUID of the organization (or "no_org" for unassigned filter)

          • logto_id string

            Logto organization ID (or "no_org" for unassigned filter)

          • name string

            Organization name

          • description string

            Organization description

          • type string

            Organization type ("unassigned" is the special "No organization" filter entry)

            Values are owner, distributor, reseller, customer, or unassigned.

          • source string

            Which application name signal matched the customer, or hosting_system when the suggestion is the customer owning the system

            Values are fqdn, display_name, user_domain, or hosting_system.

          • matched string

            The hostname, label or domain the suggestion comes from, or the system name for hosting_system

        • created_at string(date-time)

          Record creation timestamp

        • last_inventory_at string(date-time) | null

          Last inventory collection timestamp

      • pagination object
        Hide pagination attributes Show pagination attributes object
        • page integer

          Current page number

          Minimum value is 1.

        • page_size integer

          Number of items per page

          Minimum value is 1, maximum value is 200.

        • total_count integer

          Total number of items

          Minimum value is 0.

        • total_pages integer

          Total number of pages

          Minimum value is 0.

        • has_next boolean

          Whether there is a next page

        • has_prev boolean

          Whether there is a previous page

        • next_page integer | null

          Next page number if available

        • prev_page integer | null

          Previous page number if available

        • sort_by string | null

          Field used for sorting

        • sort_direction string | null

          Sort direction

          Values are asc or desc.

  • 401 application/json

    Unauthorized - invalid or missing token

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
  • 403 application/json

    Forbidden - insufficient permissions

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
GET /applications
curl \
 --request GET 'https://my.nethesis.it/backend/api/applications' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "code": 200,
  "message": "applications retrieved successfully",
  "data": {
    "applications": [
      {
        "id": "sys_abc123_mail1",
        "module_id": "mail1",
        "instance_of": "mail",
        "name": "Nextcloud",
        "source": "ghcr.io/nethserver/nextcloud",
        "display_name": "Milan Office PBX",
        "version": "1.2.3",
        "status": "assigned",
        "node_id": 1,
        "node_label": "Worker Node",
        "url": "https://cluster.example.com/cluster-admin/#/apps/mail1",
        "notes": "Corporate email server for marketing department",
        "has_errors": false,
        "inventory_data": {
          "nethvoice_proxy": "nethvoice-proxy1",
          "internal_openldap": "mydomain.com"
        },
        "backup_data": {
          "status": "success",
          "destination": "BlackBlaze B1",
          "completed_at": "2025-09-16T12:30:00Z",
          "duration_seconds": 106,
          "total_size_bytes": 9185231897,
          "total_files": 5759
        },
        "services_data": {
          "has_errors": true,
          "error_count": 1,
          "services": [
            {
              "name": "NethVoice CTI server",
              "status": "error",
              "error": "is not running",
              "since": "2025-09-16T23:10:00Z"
            }
          ]
        },
        "system": {
          "id": "sys_abc123",
          "name": "Production Cluster"
        },
        "organization": {
          "id": "4405ffd0-0aca-44ef-bae2-c8545bce94f4",
          "logto_id": "akkbs6x2wo82",
          "name": "ACME Corp",
          "description": "Main customer organization",
          "type": "customer"
        },
        "suggested_organization": {
          "id": "4405ffd0-0aca-44ef-bae2-c8545bce94f4",
          "logto_id": "akkbs6x2wo82",
          "name": "ACME Corp",
          "description": "Main customer organization",
          "type": "customer",
          "source": "fqdn",
          "matched": "cti.rei-srl.it"
        },
        "created_at": "2025-07-01T09:00:00Z",
        "last_inventory_at": "2025-07-21T10:25:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total_count": 156,
      "total_pages": 8,
      "has_next": true,
      "has_prev": false,
      "next_page": 2,
      "prev_page": 42,
      "sort_by": "name",
      "sort_direction": "asc"
    }
  }
}
Response examples (401)
{
  "code": 401,
  "message": "invalid token",
  "data": {}
}
Response examples (403)
{
  "code": 403,
  "message": "insufficient permissions",
  "data": {}
}