Record a student's daily attendance
Record one student’s attendance for one school day. Requires an access token from an API client with the attendance-daily scope (see Authentication). The student is matched by OneRoster identifier (student number), state identifier, or Scout student id. The attendanceCode accepts Scout status names or common letter codes (P, T, A, E, ET, LE). Writes are idempotent: re-sending an unchanged record is reported as a duplicate, and a changed status overwrites the day (last write wins). Tardy statuses record no late minutes (keeping any lateness staff already recorded on a tardy day); arrivalTime is stored on the day but not used to compute lateness.
Authorizations
Bearer access token from POST /oauth/token (OAuth 2.0 client credentials; the OneRoster /ims/oneroster/v1p1/token and /v1p2/token URLs are aliases). Send it as Authorization: Bearer <access_token>. Tokens expire after 1 hour and carry your API client's granted scopes — an endpoint outside them returns 403.
Body
One student's attendance for one school day, reported by an attendance vendor.
The student the record is for. Accepts the OneRoster identifier (student number), the state identifier (e.g. SSID), or the Scout student id (OneRoster sourcedId).
The school day, as YYYY-MM-DD. Must not be in the future.
The day's attendance status. Accepts Scout status names (case-insensitive) — Present, Late, ExcusedLate, Absent, ExcusedAbsence, LeftEarly — or common letter codes: P, T/L (tardy), A, E/EA (excused absence), ET/TE (excused tardy), LE (left early).
When the student arrived, as 24-hour local time (HH:mm or HH:mm:ss) on the record's date, read as Pacific time. Stored as a timestamp and returned by the attendance reads; also used as the attendance log description when no comment is given. Not used to compute late minutes.
Free-text note, stored as the attendance log description.
Response
The attendance day was recorded, updated, or already current.
Outcome of ingesting one daily-attendance record.
recorded — a new attendance day was written; updated — an existing day's status was overwritten (last write wins); duplicate — the day already held this status, nothing changed.
recorded, updated, duplicate The Scout id of the matched student.
The Scout status the attendanceCode mapped to.
Absent, ExcusedAbsence, ExcusedLate, Late, LeftEarly, Present