Retrieve a team member
Operation ID: getTeamMember
Group: PSA › Team Members
Open in the interactive reference
GET /psa/team-members/{id}
Read-only: Reads and returns; changes nothing.
Retrieves a team member. A team member is one person on one PSA project's team. The response does not include the person's position assignments. To get those, use GET psa/team-member-positions.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | string · 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. |
id |
path | string | yes | The unique identifier of the team-roster record you want to retrieve. Example: "5f2e1c40-9a3b-4d71-8e05-6b4c2d1a7f93". |
Response
200 Success
Under data (getTeamMemberOutput):
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The unique identifier for the team-roster row. Example: "5f2e1c40-9a3b-4d71-8e05-6b4c2d1a7f93". |
psaProjectId |
number | no | The id of the PSA project this record belongs to. It is a numeric key you can filter on here, not the UUID that GET psa/projects/:id takes. Example: 32341. |
employeeId |
number | yes | The id of the employee this roster record is for. It is a numeric key, not a UUID any public endpoint returns as a fetchable id. Example: 3845142. |
isTeamLead |
boolean | no | Whether this team member is the team lead. Example: false. |
startDate |
date | no | The first day of this person's membership of the team. Format YYYY-MM-DD. Absent when not set. Example: "2026-01-06". |
endDate |
date | no | The last day of this person's membership of the team. Format YYYY-MM-DD. Absent when not set. Example: "2026-12-31". |
allocation |
decimal | no | The share of the person's capacity allocated to this team, as a percentage. For example, 50 means 50%. Example: "50". |
name |
string | no | The full name of the team member. It is returned but cannot be filtered or sorted on, and there is no endpoint to find a member by name. Example: "Alex Moreau". |
displayName |
string | no | The preferred display name of the team member. Like name, it cannot be filtered or sorted on. Example: "Alex". |
lastModifiedDate |
date-time | yes | The date and time this roster row last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Example: "2026-05-12T09:30:00.000Z". |
{
"data": {
"id": "5f2e1c40-9a3b-4d71-8e05-6b4c2d1a7f93",
"psaProjectId": 32341,
"employeeId": 3845142,
"isTeamLead": false,
"startDate": "2026-01-06",
"endDate": "2026-12-31",
"allocation": "50",
"name": "Alex Moreau",
"displayName": "Alex",
"lastModifiedDate": "2026-05-12T09:30:00.000Z"
},
"diagnostics": [
{
"code": "<code>",
"message": "<message>",
"severity": "error",
"path": [
"<path>"
],
"details": "<details>"
}
]
}
Errors
| Code | Status |
|---|---|
NOT_FOUND |
400 |
Statuses
400— Invalid request or business failure. Codes: NOT_FOUND401— The request carries no valid access token.403— Not authorized404— Not found429— Too many requests from this client address. The response has no body and noRetry-Afterheader.500— Internal server error