Skip to main content

Student Attendance API

Read-only JSON endpoint that returns row-level student attendance records — the same data as the Student Attendance Excel export.

Written by Abdullah Al-Hussein

Overview
Read-only JSON endpoint that returns row-level student attendance — the same data as the Student Attendance Excel export.

Authentication
Authenticate with the school's API key. Pass it either way:
Header: X-API-KEY: <school_api_key>
Query: ?apikey=<school_api_key>

The key identifies the school — responses are automatically scoped to that school. There is no school_id parameter.

Endpoint
GET /globalApis/students_attendance_records

Parameters

Param

Type

Notes

student_id

string

One id or comma-separated. Omit → all students. Invalid (non-numeric) → empty.

start_date

YYYY-MM-DD

Optional. Invalid dates are rejected.

end_date

YYYY-MM-DD

Optional. One-sided ranges allowed.

per_page

int

Optional. Omit → all rows.

page

int

Optional, 1-based. Used with per_page.

Example
curl -H "X-API-KEY: YOUR_KEY" "https://app.teachngo.com/globalApis/students_attendance_records?student_id=12345&start_date=2026-06-01&end_date=2026-06-30"

Response

json

{   "status": "success",   "meta": { "total": 42, "count": 42, "page": 1, "per_page": null, "start_date": "2026-06-01", "end_date": "2026-06-30" },   "data": [{     "student_id": 12345, "student": "Jane Doe",     "class": "Spanish", "subject": "Language", "level": "1|2",     "class_type": "Group", "teacher": "Orla Brady",     "lesson_start_date": "2026-06-03 14:00:00", "lesson_end_date": "2026-06-03 15:00:00",     "duration_minutes": 60, "attendance": "Present", "excused": false, "note": ""   }] }

Field Reference

Field

Meaning

student_id

Student's numeric id

student

Student display name

class / subject / level

Course the lesson belongs to

class_type

Class type name (e.g. Group, Private)

teacher

Teacher(s) for the lesson

lesson_start_date / lesson_end_date

Lesson timestamps

duration_minutes

Lesson length in minutes

attendance

Attendance status (Present, Absent, …)

excused

Boolean — whether absence was excused

note

Attendance note (plain text)

Did this answer your question?