Skip to main content
POST
Record a student's daily attendance

Authorizations

Authorization
string
header
required

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

application/json

One student's attendance for one school day, reported by an attendance vendor.

studentId
string
required

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).

date
string
required

The school day, as YYYY-MM-DD. Must not be in the future.

attendanceCode
string
required

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).

arrivalTime
string | null

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.

comment
string | null

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.

success
boolean
required
status
enum<string>
required

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.

Available options:
recorded,
updated,
duplicate
scoutStudentId
string
required

The Scout id of the matched student.

mappedStatus
enum<string>
required

The Scout status the attendanceCode mapped to.

Available options:
Absent,
ExcusedAbsence,
ExcusedLate,
Late,
LeftEarly,
Present