Solution Members
REST endpoints for solution members. Bearer-auth required.
GET /api/solution-members
List solution members.
Query parameters
limit(optional): Page size (1–100, default 100).after(optional): Keyset cursor — return the page after this row (next page).before(optional): Keyset cursor — return the page before this row (prev page).ids(optional): Comma-separated list of IDs. Narrows results to these IDs within the caller's accessible scope (does not bypass access checks).filter(optional): Nested filter expression (<Entity>Filter): AND/OR/NOT + per-field comparison operators + relation traversal. JSON-encoded on the query string.orderBy(optional): Multi-key sort (<Entity>OrderBy[]): array of{ field: direction }applied in order. Directions: asc/desc plus the four explicit nulls variants. JSON-encoded on the query string.solution_id(optional): Filter to members of this solution. When omitted, returns members across every solution the caller can access (admins see all).added_by(optional): Shorthand: filter whereaddedByequals this value.retention_tier(optional): Shorthand: filter whereretentionTierequals this value.
Response
JSON
{
"data": [
{
"id": "<...>",
"solutionId": "<...>",
"entityId": "<...>",
"addedBy": "<...>",
"deletedAt": "<...>",
"retentionTier": "<...>",
"addedAt": "<...>"
}
],
"pageInfo": {
"total": "number",
"hasNextPage": "boolean",
"hasPreviousPage": "boolean",
"startCursor": "string",
"endCursor": "string"
}
}POST /api/solution-members
Add an entity to a solution
Request body
JSON
{
"solutionId": "string",
"entityId": "string"
}Response
JSON
{
"id": "string",
"solutionId": "string",
"entityId": "string",
"addedBy": "string",
"deletedAt": "string",
"retentionTier": "any",
"addedAt": "string"
}DELETE /api/solution-members/{id}
Soft-remove an entity from its solution.
Path parameters
id(required): Member row to soft-remove from its solution.
Response
JSON
{
"success": "boolean"
}POST /api/solution-members/bulk
Bulk-add entities to a solution
Adds multiple entities in one call. Cross-workspace and duplicate entries are silently skipped.
Request body
JSON
{
"solutionId": "string",
"entityIds": ["string"]
}Response
JSON
{
"ok": "true",
"affectedCount": "number"
}