# Guided Tours

The caller's own progress through the in-app guided tours (started, finished, dismissed).

Generated from `apps/api/openapi.json`. HTML version: https://docs.institflow.com/en/reference/tours

2 operations.

## GET /api/v1/me/tours

Every guided tour the caller has started, finished or dismissed.

- Operation id: `ToursController_list_v1`
- Permission: —
- Auth: credential required
- `Idempotency-Key`: not required

### Responses

**200** — Success.

| Property | Type | Required | Constraints |
| --- | --- | --- | --- |
| `tours` | array<object> | yes |  |

Every other status answers with the shared `ErrorEnvelope` — see
https://docs.institflow.com/md/en/error-codes.md

### Example request

```bash
curl -X GET "https://your-institute.example/api/v1/me/tours" \
  -H "Authorization: Bearer $INSTITFLOW_API_KEY"
```

## PUT /api/v1/me/tours/{tourId}

Saves the caller's own progress in one tour (also used to restart a finished or dismissed one).

- Operation id: `ToursController_save_v1`
- Permission: —
- Auth: credential required
- `Idempotency-Key`: required for API-key callers

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `tourId` | path | string | yes |  |

### Request body

| Property | Type | Required | Constraints |
| --- | --- | --- | --- |
| `status` | enum: "started" \| "completed" \| "dismissed" | yes |  |
| `lastStep` | integer | yes | 0–49 |

```json
{
  "status": "started",
  "lastStep": 0
}
```

### Responses

**200** — Success.

| Property | Type | Required | Constraints |
| --- | --- | --- | --- |
| `tourId` | enum: "first-login.owner" \| "first-login.teacher" \| "first-login.student" \| "first-login.guardian" \| "task.add-student" \| "task.add-student-to-course" \| "task.invite-student" \| "task.course-video-quiz" \| "task.lesson-files" \| "task.take-attendance" \| "task.issue-invoice" \| "task.message-parents" | yes |  |
| `status` | enum: "started" \| "completed" \| "dismissed" | yes |  |
| `lastStep` | integer | yes | 0–9007199254740991 |
| `updatedAt` | string (date-time) | yes |  |

Every other status answers with the shared `ErrorEnvelope` — see
https://docs.institflow.com/md/en/error-codes.md

### Example request

```bash
curl -X PUT "https://your-institute.example/api/v1/me/tours/1de6160e-1de6-7de6-8e61-1de6160e1de6" \
  -H "Authorization: Bearer $INSTITFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "status": "started",
    "lastStep": 0
  }'
```
