Skip to content

Use Waqar API resources

All resource identifiers are tenant-bound. Read them from the authenticated school’s responses and never construct or reuse an identifier from another school.

  • GET /school returns the school attached to the key.
  • GET /semesters lists planned, active, or archived semesters.
  • GET /semesters/{id} returns one semester.

Use the active semester for current work, but retain archived IDs when syncing history.

  • GET /halqas supports active state, semester, and synchronization filters.
  • GET /halqas/{id} returns one semester-specific halqa.
  • GET /sheikhs is a current eligibility lookup and can filter by halqa.
  • GET /sheikhs/{id} returns one currently eligible sheikh.

Halqa lineage_id connects carried-forward records across semesters. Sheikh discovery is not an incremental synchronization feed.

  • GET /students supports status, halqa, semester, and sync filters.
  • GET /students/{id} returns one student.
  • POST /students creates a student when write access is effective.
  • PATCH /students/{id} updates documented fields.

Student lineage_id connects semester-specific records. API v1 omits sensitive student fields. Use null only where the update schema explicitly permits it.

  • GET /sessions and GET /sessions/{id} read sessions.
  • POST /sessions, PATCH /sessions/{id}, and POST /sessions/{id}/end perform supported lifecycle changes.
  • GET /sessions/{id}/attendance reads session attendance.
  • PUT /sessions/{id}/attendance creates or updates the supplied students’ rows; omitted attendance rows remain unchanged.
  • GET /sessions/{id}/recitations lists session recitations.
  • GET /students/{id}/recitations lists a student’s recitations.
  • POST /sessions/{id}/recitations records a session recitation.

A session mutation must use an eligible halqa and sheikh. An attendance or recitation learner must be eligible for that session. Rating and Quran ranges are validated against the current contract and school context.

  • GET /surahs returns the complete bounded Surah collection.
  • GET /surahs/{number} returns Surah 1–114.

These operations need an authenticated key but no extra resource scope. They do not accept collection filters or cursor pagination.

Single resources use {"data": {...}}; collections use {"data": [...], "pagination": {...}}. Preserve exact IDs and timestamps. Never rely on display names as identifiers.

Learning Plans have a separate read-only guide. For every method and scope, use the endpoint reference.