# listCoachingCards

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

## Operation

| Method | URL |
|---|---|
| GET | https://api.thomas.co/v1/ai-coaching/cards |

| Field | Value |
|---|---|
| operationId | listCoachingCards |
| method | GET |
| server | https://api.thomas.co/v1 |
| path | /ai-coaching/cards |
| tags | `Coaching Cards` |
| summary | Get contextual coaching cards |
| badges | None |

## Request Parameters

| Name | In | Required | Schema | Description |
|---|---|---|---|---|
| pageId | query | true | string |  |

## Request Body

None.

## Responses

| Status | Description | Schema refs |
|---|---|---|
| 200 | Contextual coaching cards for the page | #/components/schemas/CxiCardsResponseDto |
| 400 | Invalid pageId or query parameters | #/components/schemas/ApiErrorResponseDto |
| 401 | Invalid or missing authentication token (AUTH_TOKEN_INVALID) | #/components/schemas/ApiErrorResponseDto |
| 403 | Gate-1 re-authorization denial | #/components/schemas/ApiErrorResponseDto |
| 429 | Per-individual AI-coaching rate limit exceeded | #/components/schemas/ApiErrorResponseDto |

## Artifact Examples

### Response 400 example

```json
{
  "statusCode": 400,
  "message": "Validation failed",
  "error": "HTTP_BAD_REQUEST"
}
```

### Response 401 example

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

### Response 403 example

```json
{
  "statusCode": 403,
  "message": "AI coaching authorization denied",
  "error": "THOMAI_AUTHORIZATION_DENIED"
}
```

### Response 429 example

```json
{
  "statusCode": 429,
  "message": "Too many coaching requests",
  "error": "THROTTLED"
}
```
