# Retrieve a team member

Operation ID: `getTeamMember`

Group: PSA › Team Members

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/getTeamMember)

`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"`. |

```json
{
  "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_FOUND
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
