# getColleague

Source: /openapi/thomas-federated.openapi.json

## Operation

| Method | URL |
|---|---|
| GET | https://staging-api.thomas.co/v1/colleagues/{id} |

| Field | Value |
|---|---|
| operationId | getColleague |
| method | GET |
| server | https://staging-api.thomas.co/v1 |
| path | /colleagues/{id} |
| tags | `Colleagues & Profiles` |
| summary | Get colleague profile detail |
| badges | `{"name":"Viewer"}`, `{"name":"Admin"}`, `{"name":"Owner"}` |

## Request Parameters

| Name | In | Required | Schema | Description |
|---|---|---|---|---|
| id | path | true | string |  |

## Request Body

None.

## Responses

| Status | Description | Schema refs |
|---|---|---|
| 200 | Full colleague profile detail for a human caller; the partner employee projection for a Partner API client reading by its own reference | #/components/schemas/CompanyIndividualDetailResponseDto, #/components/schemas/PartnerEmployeeResponseDto |
| 400 | Invalid UUID format for id parameter, or malformed partner reference | #/components/schemas/ApiErrorResponseDto |
| 401 | Invalid or missing authentication token (AUTH_TOKEN_INVALID) | #/components/schemas/ApiErrorResponseDto |
| 403 | For an API client: not the tenant's active `users` source of record (AUTH_SOURCE_OF_RECORD_REQUIRED), no active Grant carrying `users:r` on this tenant (AUTH_TENANT_NOT_GRANTED), or a caller whose kind this operation could not resolve | #/components/schemas/ApiErrorResponseDto |
| 404 | Colleague not found (IDENTITY_COMPANY_INDIVIDUAL_NOT_FOUND), or no colleague in this tenant/API-client namespace (PARTNER_EMPLOYEE_NOT_FOUND) | #/components/schemas/ApiErrorResponseDto |
| 429 | Rate limit exceeded. | #/components/schemas/ApiErrorResponseDto |

### Response 429 headers

| Name | Description | Schema |
|---|---|---|
| Retry-After | Seconds until the rate-limit block expires before retrying. | {"type":"integer","minimum":0} |
| RateLimit-Limit | Configured request limit for the active rate-limit window. | {"type":"integer"} |
| RateLimit-Remaining | Requests remaining in the active rate-limit window; zero when blocked. | {"type":"integer"} |
| RateLimit-Reset | Seconds until the rate-limit block expires. | {"type":"integer","minimum":0} |

## Artifact Examples

### Response 401 example

```json
{
  "statusCode": 401,
  "message": "Invalid or missing authentication token",
  "error": "AUTH_TOKEN_INVALID"
}
```

### Response 403 example

```json
{
  "statusCode": 403,
  "message": "API client is not the source of record for this data domain in this tenant",
  "error": "AUTH_SOURCE_OF_RECORD_REQUIRED"
}
```

### Response 429 example

```json
{
  "statusCode": 429,
  "message": "ThrottlerException: Too Many Requests",
  "error": "HTTP_TOO_MANY_REQUESTS"
}
```
