---
title: "Service: /members/{member}/projects/{group}/subprojecttree [GET]"
source: https://dev.pageseeder.com/api/services/list-subprojecttree-GET.html
description: "Lists groups and subprojects of a context project in hierarchical form for a specified member or entire server, with filtering options for archived status, name prefix, and result size limits."
last_updated: 2026-09-02T11:36:18+10:00
document_type: api_endpoint
operation_id: group-GET
resource_id: group
path_template: /members/{member}/projects/{group}/subprojecttree
http_method: GET
api_category: group
implementation_version: 6.3000
api_since: 4.9100
deprecated_since: null
obsolete_since: null
api_support: supported
cache_control: null
generated_at: 2026-09-02
tokens: ~987
---

# /members/\{member\}/projects/\{group\}/subprojecttree \[GET\]

## Description

List the [groups](../../reference/glossary/group.md) and [subprojects](../../reference/glossary/sub_project.md) of the context project for either the specified member or the whole server. The context project is specified by the `{group}` parameter in the service URL.

This service returns the list of groups and projects in hierarchical form so that subprojects and groups appear nested correctly within the specified project.

This service is similar to the [/members/\{member\}/projecttree](list-projecttree-GET.md) service, the main difference is that this service returns only the context project and its children.

## Parameters

| Name | Description | Required | Type | Default value |
| --- | --- | --- | --- | --- |
| archived | Whether to return archived projects/groups only | no | boolean | `false` |
| for | If 'server', return all projects/groups for server (Administrator only) \[`member\|server`\] | no | enum | `member` |
| groups | Whether to return groups | no | boolean | `true` |
| nameprefix | Prefix that project/group’s full name must have to be returned | no | string |  |
| resultsize | The max number of results in the entire tree | no | integer | `1000` |

### archived

By default, this service only returns memberships to groups and projects which are not archived.

If the context project is archived (starts with `archive-` ), use `archived=true` to list the groups and projects within that project.

> **Note:** Make sure that the archived parameter is consistent with the context project archived status otherwise, no groups are returned.

### for

This service returns the groups that the specified member is a member of, including subgroups.

If you are an administrator, you can use `for=server` to return all the projects and groups for the server under the context project specified by `{group}` in the service URL.

### groups

This parameter controls whether groups are returned in the response.

If your PageSeeder instance contains many projects or groups, setting this parameter to `false` lets you load the project tree structure gradually.

### nameprefix

This parameter filters the results by only returning the projects and groups which name matches the specified prefix.

If specified, the nameprefix must match the `{group}` specified in the project URL.

### resultsize

This parameter limits the number of groups and projects which are returned. The maximum value allowed is 10000.

> **Note:** The returned tree might have more nodes than the specified result size as ancestor projects are always added.

## Permission

Any member can invoke this service for themselves.

Only an administrator can request the project trees for the entire server with `for=server`. or for another member.

## Response

The returned XML is as follows with `<project>` at the top:

```xml
<project id="[id]" name="[name]" description="[description]" owner="[owner]" ...>

  <!-- sub projects -->
  <project id="[id]" name="[name]" description="[description]" owner="[owner]" ...>
    <group id="[id]" name="[name]" description="[description]" owner="[owner]" ... />
    <group id="[id]" name="[name]" description="[description]" owner="[owner]" ... />
    ...
  </project>
  ...

  <!-- groups -->
  <group id="[id]" name="[name]" description="[description]" owner="[owner]" ... />
  <group id="[id]" name="[name]" description="[description]" owner="[owner]" ... />
  ...
</project>
```

Or in JSON

```json
{
  "id": number,
  "name": string,
  "owner": string,
  "type": string,
  "description": string,
  "groups: [
    ...
  ]
}
```

In JSON, use the `type` property to distinguish groups from projects. The `groups` array property is only specified if `type` is `project`.

## Error Handling

| Code | Cause / Description |
| --- | --- |
| 0x110E | The nameprefix parameter is not valid for project specified in service URL |

