> For the complete documentation index, see [llms.txt](https://developers.jarsave.com/llms.txt)

# Attendance

## The attendance object

One class session and whether the student came. Send one for every session on the student's timetable, including absences, so the parent sees the whole term. In JarSave a session the child attended counts as a practice day for that subject.

### Attributes

- `session_id` string required: Your id for this session. Sending it again replaces the item (see [idempotent requests](https://developers.jarsave.com/index.md)).
- `course_id` string required: Your id for the course.
- `course_name` string required: The course as the parent knows it, for example `Junior Coding 2`.
- `subject` string required: What the course teaches, in one or two words: `Coding`, `English`, `Piano`.
- `starts_at` timestamp required: When the session started, with its offset, for example `2026-11-26T15:00:00+07:00`.
- `ends_at` timestamp required: When it ended.
- `mode` enum required: `in_person` or `online`.
- `status` enum required: `present`, `late`, `absent` or `excused`.
- `meeting_no` integer, nullable: The session's number in the course, for example `14` of 21.

**The attendance object**

```json
{
  "session_id": "ses_55120",
  "course_id": "crs_junior_coding_2",
  "course_name": "Junior Coding 2",
  "subject": "Coding",
  "starts_at": "2026-11-26T15:00:00+07:00",
  "ends_at": "2026-11-26T16:30:00+07:00",
  "mode": "in_person",
  "status": "present",
  "meeting_no": 6
}
```

## Send attendance

`POST /v1/links/:id/attendance`

Send each session once attendance is taken, the same day. For the history, send the past sessions of the current course when the link becomes `active`.

### Parameters

The attendance object's attributes. To send up to 100 at once, put them in an `items` array.

### Returns

The item with its JarSave `id`, the `link`, `status` `pending` (waiting for the parent) and `received`. With `items`, a list: `{"object": "list", "data": [...]}`, one entry per item in the order sent.

**Request**

```sh
curl https://api.jarsave.com/v1/links/lnk_8Gm2QxT4/attendance \
  -H "Authorization: Bearer $JARSAVE_SECRET_KEY" \
  -H "JarSave-Version: 2026-10-29" \
  -H "Content-Type: application/json" \
  -d @session.json
```

**Response**

```json
{
  "id": "itm_3Rk9Vb2W",
  "object": "attendance",
  "link": "lnk_8Gm2QxT4",
  "session_id": "ses_55120",
  "status": "pending",
  "received": "2026-11-26T16:41:02+07:00"
}
```
