# List exam attempts

`GET https://api.cademi.com.br/api/v3/products/{product_id}/exams/{exam_id}/attempts`

Operation ID: `exams.attempts.list` · API v3

Returns the attempts made on the exam. Requires the `exams.attempts.read` permission.

If the current credentials are restricted to specific users, only attempts made by those users are returned.

Required permissions: `exams.attempts.read`.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `product_id` | path | string | yes |  |
| `exam_id` | path | string | yes |  |
| `limit` | query | integer | no |  |
| `cursor` | query | string | no |  |
| `sort` | query | string, one of `id`, `-id` | no |  |
| `user_id` | query | string | no |  |
| `status` | query | string, one of `open`, `completed`, `discarded`, `timed_out` | no |  |
| `finished_after` | query | string (date-time) | no |  |
| `finished_before` | query | string (date-time) | no |  |

## Responses

### 200

Returns the collection of attempts.

Body: `data`: array of ExamAttempt.

Fields of ExamAttempt:

| Field | Type | Required | Description |
|---|---|---|---|
| `correct_count` | integer | yes |  |
| `exam_id` | string | yes | Public ID of the exam, prefixed with exm_. |
| `finished_at` | string or null (date-time) | yes |  |
| `id` | string | yes | Public ID of the exam attempt, prefixed with exa_. |
| `lesson_id` | string or null | yes | Public ID of the lesson in which the exam was taken. |
| `min_score` | number or null | yes |  |
| `object` | string, one of `exam_attempt` | yes |  |
| `passed` | boolean or null | yes | Whether the attempt reached the passing score. null when the exam has no passing score or the attempt is not finished. |
| `product_id` | string | yes | Public ID of the product, prefixed with prd_. |
| `revision` | string | yes |  |
| `score` | number or null | yes |  |
| `started_at` | string (date-time) | yes |  |
| `status` | string, one of `open`, `completed`, `discarded`, `timed_out` | yes |  |
| `user` | object | yes | The user who made the attempt. The email address is never included. |
| `wrong_count` | integer | yes |  |

### 400

The cursor is invalid or the request contains an unsupported query parameter.

Body: Error.

### 401

The credential is missing, malformed, expired, or revoked.

Body: Error.

### 403

The current credentials do not have the permission required by this operation.

Body: Error.

### 404

The exam was not found in the specified product or is not accessible with the current credentials.

Body: Error.

### 422

The request body or query parameters failed validation.

Body: ValidationFailed.

Full schema: https://cademi.dev/openapi/v3.json
