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

# List daily attendance for a school

> Attendance records for one school on one school day, for kiosks and reconciliation. Covers students with a school enrollment at the school that is active on the date. By default only exceptions are returned (every status except present); pass includePresent=true for the full day. A student with no record has not had attendance taken. Pass `since` to pull only records written after a time (for hourly delta pulls); cleared records drop out of the results rather than being reported. Requires API token authentication with the attendance-daily scope.




## OpenAPI

````yaml /api-reference/openapi.json get /attendance/daily
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:
  /attendance/daily:
    get:
      tags:
        - Attendance
      summary: List daily attendance for a school
      description: >
        Attendance records for one school on one school day, for kiosks and
        reconciliation. Covers students with a school enrollment at the school
        that is active on the date. By default only exceptions are returned
        (every status except present); pass includePresent=true for the full
        day. A student with no record has not had attendance taken. Pass `since`
        to pull only records written after a time (for hourly delta pulls);
        cleared records drop out of the results rather than being reported.
        Requires API token authentication with the attendance-daily scope.
      parameters:
        - name: schoolId
          in: query
          required: true
          description: The Scout school id (the OneRoster `schools` sourcedId).
          schema:
            type: string
        - name: date
          in: query
          required: true
          description: The school day, YYYY-MM-DD.
          schema:
            type: string
        - name: includePresent
          in: query
          required: false
          description: Include present students too. Defaults to false (exceptions only).
          schema:
            type: boolean
        - name: since
          in: query
          required: false
          description: Only records last written after this time (ISO 8601).
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: Page size, 1–1000. Defaults to 100.
          schema:
            type: integer
        - name: offset
          in: query
          required: false
          description: Number of records to skip. Defaults to 0.
          schema:
            type: integer
      responses:
        '200':
          description: >-
            A page of records, ordered by Scout student id. The X-Total-Count
            header carries the total across all pages.
          headers:
            X-Total-Count:
              description: Total matching records across all pages.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DailyAttendanceDayList'
        '400':
          description: Invalid query - a missing or malformed parameter.
          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 school with that id
          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.