Siren

List Collaborator Group Structure Resolvers

Returns the registry of installed collaborator group structure resolvers.

Last updated: June 7, 2026

GET /siren/v1/collaborator-groups/structures

Returns the registry of installed structure resolvers wrapped in an options envelope. The top-level response is an object with a single options key whose value is the array of resolver entries. Unlike the paginated list endpoints, this is a static options envelope with no total, page, or perPage, because the registry is a fixed in-memory set rather than a queryable collection. Each entry includes id, name, description, and providedWalkerCapabilities, the list of walker capability ids the resolver advertises (for example hasLayer for linearChain and parentChild, and the empty list for flat). A structure that advertises hasLayer has the ordered layers a cascade needs, so the calc picker on the Program and Distributor edit screens uses providedWalkerCapabilities to hide calc strategies the bound group’s structure cannot support. The admin structure picker also uses this endpoint. For how that matching works, see Why some calculation methods disappear.

The registry is the set of resolvers actually installed, so treat both the resolver id and the capability ids as an open set rather than a fixed list of three. The id is the stable contract, so key all logic off id and off the capability ids. The name and description are human-facing display strings, shown here for illustration only, and may be localized or change between releases, so do not match against them.

The linearChain and parentChild resolvers appear only when the Pro tier is active. A Plus-only install returns flat as the single entry. The example response below is from a Pro install, so all three resolvers appear. A group’s currently chosen structure is the structure field on the group itself, covered in Collaborator Groups (REST).

This endpoint takes no request body and no query parameters. It requires authentication and read capability on the CollaboratorGroup resource.

Example Request:

GET /siren/v1/collaborator-groups/structures

Example Response:

{
  "options": [
    {
      "id": "flat",
      "name": "Flat",
      "description": "Every member is a peer.",
      "providedWalkerCapabilities": []
    },
    {
      "id": "linearChain",
      "name": "Linear Chain",
      "description": "Members ordered into a single chain by position.",
      "providedWalkerCapabilities": ["hasLayer"]
    },
    {
      "id": "parentChild",
      "name": "Parent-Child Tree",
      "description": "Members arranged into a parent-child tree.",
      "providedWalkerCapabilities": ["hasLayer"]
    }
  ]
}

Responds 200 with the resolver registry. Responds 401 when the request is not authenticated, and 403 when the current context lacks read capability on CollaboratorGroup.

See also