Returns a list of position assignments on PSA project teams.
GET /psa/team-member-positions
Group: PSA › Team Members · Operation ID: teamMemberPositions
Each row is one position assignment: a person or a placeholder mapped to a project position. To read the team roster regardless of position, use GET psa/team-members. There is no endpoint to match an assignment by position name.
Open in the interactive reference
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | "v1" |
yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
Query surface
psaProjectId— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likeprojectPositionId— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, liketeamMemberId— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likeplaceholderId— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likeinvoiced— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likelastModifiedDate— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like- Orderable: psaProjectId, lastModifiedDate
- Selectable: id, psaProjectId, projectPositionId, positionName, teamMemberId, placeholderId, invoiced, lastModifiedDate
Response
200 Success
Under data, an array of teamMemberPositionsRow:
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | no | The unique identifier for the position assignment. |
psaProjectId |
number | no | The id of the PSA project this record belongs to. It is a numeric package-layer key you can filter on here, not the UUID that GET psa/projects/:id takes. |
projectPositionId |
number or null | no | The id of the project position this row assigns. It is a numeric package-layer key you can filter on here, not the UUID that GET psa/positions/:id takes. |
positionName |
string or null | no | The name of the project position, paired with projectPositionId. It is returned but cannot be filtered or sorted on, and there is no endpoint to find an assignment by position name. |
teamMemberId |
number or null | no | The id of the assigned person's team-roster row. Absent for placeholder-only assignments. It is a numeric package-layer key, not the UUID that GET psa/team-members/:id takes. |
placeholderId |
number or null | no | The id of the placeholder filling this position, when it is filled by a placeholder rather than a person. It is a numeric package-layer key, not the UUID that GET psa/placeholders/:id takes. |
invoiced |
boolean or null | no | Whether this assignment's work has been invoiced. An invoiced assignment cannot be deleted. |
lastModifiedDate |
string (date-time) or null | no | The date and time this assignment last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
Statuses
400— Invalid request or business failure401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error