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