# List check-in responses

`GET https://api.coach-platform.com/api/public/updates`

List submitted update (check-in) form responses across every update form, newest first. Pass traineeId to read one trainee's check-in history. Registration forms are not included here; use GET /forms/registration for those. Trainee personal details and phone number are included only when the key also has trainees:read.

- Resource: Forms
- Authentication: API key in the `Authorization: Bearer cp_live_...` header
- HTML version: https://www.coach-platform.com/docs/api/reference/get-updates
- OpenAPI spec: https://www.coach-platform.com/openapi.json

## Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `traineeId` | string | No | Only responses submitted by this trainee. |
| `escortId` | string | No | Only responses from this coaching period. |
| `status` | string | No | Filter by handling status. Allowed values: `Pending`, `Handled`. |
| `search` | string | No | Search the trainee name or the form title. |
| `gender` | string | No | Filter by trainee gender. Allowed values: `males`, `females`, `allTrainees`. |
| `labels` | string | No | Comma-separated label ids the trainee must carry. |
| `formTargetLabels` | string | No | Comma-separated label ids the form targets. |
| `type` | string | No | Restrict to a form kind. Allowed values: `update`, `dynamic`. |
| `sort` | string | No | Order by submission date. Defaults to desc. Allowed values: `asc`, `desc`. |
| `dateFrom` | string | No | Only responses submitted on or after this date (YYYY-MM-DD). |
| `dateTo` | string | No | Only responses submitted on or before this date (YYYY-MM-DD). |
| `page` | integer | No | Page number (1-based, default 1) Minimum: `1`. |
| `limit` | integer | No | Number of items to return (default 25, max 500) Minimum: `1`. Maximum: `500`. |

## Responses

| Status | Description |
|---|---|
| `200` OK | Successful response |
| `400` Bad Request |  |
| `401` Unauthorized |  |
| `403` Forbidden |  |
| `429` Too Many Requests |  |
| `500` Internal Server Error |  |

### 200 OK

Content type: `application/json`

| Field | Type | Description |
|---|---|---|
| `data` | object[] |   |
| `data[].id` | string |   |
| `data[].formId` | string | Id of the form that was submitted. |
| `data[].formTitle` | string |   |
| `data[].formType` | string | Allowed values: `registration`, `update`. |
| `data[].traineeInfo` | object | The trainee who submitted it. |
| `data[].traineeInfo.id` | string |   |
| `data[].traineeInfo.name` | string |   |
| `data[].traineeInfo.gender` | string |   |
| `data[].status` | string | Allowed values: `Pending`, `Handled`. |
| `data[].createdAt` | string<date-time> |   |
| `pagination` | object |   |
| `pagination.page` | number |   |
| `pagination.limit` | number |   |
| `pagination.total` | number \| null | Total number of matching items. null when the underlying source cannot report an exact count for this page; use hasMore to keep paging. |
| `pagination.hasMore` | boolean |   |
| `pagination.truncated` | boolean | Present and true when the result set exceeded the in-memory scan cap and was truncated. Narrow your filters to page through all items. |

Example:

```json
{
  "data": [
    {
      "id": "<string>",
      "formId": "<string>",
      "formTitle": "<string>",
      "formType": "registration",
      "traineeInfo": {
        "id": "<string>",
        "name": "<string>",
        "gender": "<string>"
      },
      "status": "Pending",
      "createdAt": "<date-time>"
    }
  ],
  "pagination": {
    "page": 123,
    "limit": 123,
    "total": 123,
    "hasMore": true,
    "truncated": true
  }
}
```

### Error responses 400, 401, 403, 429, 500

Content type: `application/json`

| Field | Type | Description |
|---|---|---|
| `error` | object |   |
| `error.code` | string |   |
| `error.message` | string |   |
| `error.fix` | string \| null |   |
| `error.details` | object \| null |   |
| `error.retryAfterMs` | number \| null |   |

Example:

```json
{
  "error": {
    "code": "<string>",
    "message": "<string>",
    "fix": "<string>",
    "details": {},
    "retryAfterMs": 123
  }
}
```

## Examples

### cURL

```bash
curl --request GET \
  --url 'https://api.coach-platform.com/api/public/updates' \
  --header 'Authorization: Bearer cp_live_...'
```

### JavaScript (fetch)

```js
const response = await fetch('https://api.coach-platform.com/api/public/updates', {
  method: 'GET',
  headers: {
    Authorization: 'Bearer cp_live_...',
  },
});

const data = await response.json();
```

## Related endpoints

- [List forms](https://www.coach-platform.com/docs/api/reference/get-forms/index.md): `GET /api/public/forms`. List forms (questionnaires) created by the coach.
- [List registration form responses](https://www.coach-platform.com/docs/api/reference/get-forms-registration/index.md): `GET /api/public/forms/registration`. List submitted registration (intake) form responses across every registration form, newest first.
- [Respond to a check-in](https://www.coach-platform.com/docs/api/reference/post-updates-update-id-respond/index.md): `POST /api/public/updates/{updateId}/respond`. Respond to a submitted check-in.
- [Get a form with its questions](https://www.coach-platform.com/docs/api/reference/get-forms-form-id/index.md): `GET /api/public/forms/{formId}`. Get one form including its full question set.
- [Get a form response](https://www.coach-platform.com/docs/api/reference/get-forms-form-id-response-response-id/index.md): `GET /api/public/forms/{formId}/response/{responseId}`. Get a single submitted form response with its answers.
- [List responses to a form](https://www.coach-platform.com/docs/api/reference/get-forms-form-id-responses/index.md): `GET /api/public/forms/{formId}/responses`. List submitted responses for a form, newest first.
- Previous: [List registration form responses](https://www.coach-platform.com/docs/api/reference/get-forms-registration/index.md): `GET /api/public/forms/registration`. List submitted registration (intake) form responses across every registration form, newest first.
- Next: [Respond to a check-in](https://www.coach-platform.com/docs/api/reference/post-updates-update-id-respond/index.md): `POST /api/public/updates/{updateId}/respond`. Respond to a submitted check-in.
