> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scoutforschools.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a student's daily attendance

> One student's attendance records for a date range (at most 366 days), ordered by date. The student is matched like POST /attendance/daily: by OneRoster identifier (student number), state identifier, or Scout student id. Days with no record are omitted. Requires API token authentication with the attendance-daily scope.




## OpenAPI

````yaml /api-reference/openapi.json get /students/{studentId}/attendance
openapi: 3.1.0
info:
  title: Scout API
  version: 1.0.0
  description: >-
    Programmatic access to Scout rostering data (IMS OneRoster 1.1 & 1.2) and
    related endpoints, authenticated with an API access token.
servers:
  - url: https://api.teachwithscout.com/v1
    description: Production
security: []
tags:
  - name: Access tokens
  - name: Attendance
  - name: Enrollment invitations
  - name: OneRoster 1.1
  - name: OneRoster 1.2
paths:
  /students/{studentId}/attendance:
    get:
      tags:
        - Attendance
      summary: Get a student's daily attendance
      description: >
        One student's attendance records for a date range (at most 366 days),
        ordered by date. The student is matched like POST /attendance/daily: by
        OneRoster identifier (student number), state identifier, or Scout
        student id. Days with no record are omitted. Requires API token
        authentication with the attendance-daily scope.
      parameters:
        - name: studentId
          in: path
          required: true
          description: OneRoster identifier, state identifier, or Scout student id.
          schema:
            type: string
        - name: startDate
          in: query
          required: true
          description: First day of the range, YYYY-MM-DD.
          schema:
            type: string
        - name: endDate
          in: query
          required: true
          description: Last day of the range (inclusive), YYYY-MM-DD.
          schema:
            type: string
      responses:
        '200':
          description: The student's records in the range.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DailyAttendanceDayList'
        '400':
          description: >-
            Invalid query - a missing or malformed date, a range over 366 days,
            or an identifier matching more than one student.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 400
                  message:
                    type: string
        '403':
          description: Forbidden - requires an API token, and in-person attendance enabled
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 403
                  message:
                    type: string
        '404':
          description: No student matched the provided identifier
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    example: 404
                  message:
                    type: string
      security:
        - accessToken: []
components:
  schemas:
    DailyAttendanceDayList:
      type: object
      description: A page of daily attendance records.
      properties:
        records:
          type: array
          items:
            type: object
            description: >-
              One student's attendance for one school day, as reported to
              vendors.
            properties:
              studentId:
                type: string
                description: >-
                  The student's SIS identifier (OneRoster `identifier`) — the id
                  vendors post with. Falls back to the Scout id when the student
                  has none.
              scoutStudentId:
                type: string
                description: The Scout id of the student.
              date:
                type: string
                description: The school day, YYYY-MM-DD.
              attendanceCode:
                type: string
                description: >-
                  The letter code for the status (P, T, ET, A, E, LE) — the same
                  codes POST /attendance/daily accepts.
              attendanceCodeDescription:
                type: string
                description: A human-readable description of the attendance code.
              status:
                type: string
                description: >-
                  Present, absent, or tardy. A student who left early counts as
                  present.
                enum:
                  - present
                  - absent
                  - tardy
              excused:
                type: boolean
                description: Whether the absence or tardy is excused.
              minutesLate:
                type: integer
                nullable: true
                description: Minutes late, when known (tardy statuses only).
              arrivalTime:
                type: string
                nullable: true
                description: >-
                  When the student arrived, as reported by a vendor scan (ISO
                  8601 timestamp), when provided.
              source:
                type: string
                nullable: true
                description: >-
                  Who last wrote the record — vendor (an API client), staff (the
                  office or a teacher in Scout), or system (derived by Scout).
                  Empty for records written before this was tracked.
                enum:
                  - vendor
                  - staff
                  - system
              enteredBy:
                type: string
                nullable: true
                description: >-
                  For a manual entry by school staff, the Scout staff member id
                  (OneRoster users sourcedId) of the person who entered it.
                  Empty for vendor and system writes — `source` tells those
                  apart.
              lastModified:
                type: string
                description: When the record was last written (ISO 8601).
            required:
              - studentId
              - scoutStudentId
              - date
              - attendanceCode
              - attendanceCodeDescription
              - status
              - excused
              - lastModified
      required:
        - records
  securitySchemes:
    accessToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        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.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.