All endpoints are JSON. Authenticated routes require a Sanctum token in the Authorization: Bearer <token> header.
https://shater.net/api/v1
| Method | Endpoint | Name | Auth |
|---|---|---|---|
| POST | /api/v1/account/avatar | api.v1.account.avatar.upload | sanctum |
| DELETE | /api/v1/account/avatar | api.v1.account.avatar.delete | sanctum |
| PATCH | /api/v1/account/password | api.v1.account.password | sanctum |
| PATCH | /api/v1/account/preferences | api.v1.account.preferences | sanctum |
| PATCH | /api/v1/account/profile | api.v1.account.profile | sanctum |
| POST | /api/v1/auth/login | api.v1.auth.login | public |
| POST | /api/v1/auth/logout | api.v1.auth.logout | sanctum |
| GET | /api/v1/auth/me | api.v1.auth.me | sanctum |
| POST | /api/v1/auth/register-parent | api.v1.auth.register-parent | public |
| POST | /api/v1/auth/register-student | api.v1.auth.register-student | public |
| GET | /api/v1/chat/attachments | api.v1.chat.attachments.show | sanctum |
| GET | /api/v1/chat/conversations | api.v1.chat.conversations.index | sanctum |
| POST | /api/v1/chat/conversations/direct | api.v1.chat.conversations.direct | sanctum |
| POST | /api/v1/chat/conversations/group | api.v1.chat.conversations.group | sanctum |
| POST | /api/v1/chat/conversations/support | api.v1.chat.conversations.support | sanctum |
| GET | /api/v1/chat/conversations/{uuid}/messages | api.v1.chat.conversations.messages | sanctum |
| POST | /api/v1/chat/conversations/{uuid}/messages | api.v1.chat.messages.store | sanctum |
| GET | /api/v1/chat/peers | api.v1.chat.peers | sanctum |
| GET | /api/v1/chat/socket-config | api.v1.chat.socket-config | sanctum |
| GET | /api/v1/chat/unread-count | api.v1.chat.unread-count | sanctum |
| GET | /api/v1/edu/academic-catalog | api.v1.edu.academic-catalog | sanctum |
| GET | /api/v1/edu/center/context | api.v1.edu.center.context | sanctum |
| GET | /api/v1/edu/center/finance/overview | api.v1.edu.center.finance.overview | sanctum |
| PATCH | /api/v1/edu/center/owner-teaching | api.v1.edu.center.owner-teaching | sanctum |
| POST | /api/v1/edu/location-pins | api.v1.edu.location-pins.store | sanctum |
| GET | /api/v1/edu/materials/{material}/stream | api.v1.edu.materials.stream | sanctum |
| POST | /api/v1/edu/meetings/{meeting}/join | api.v1.edu.meetings.join | sanctum |
| POST | /api/v1/edu/parent/children | api.v1.edu.parent.children.store | sanctum |
| POST | /api/v1/edu/parent/children/link | api.v1.edu.parent.children.link | sanctum |
| GET | /api/v1/edu/parent/children/search | api.v1.edu.parent.children.search | sanctum |
| GET | /api/v1/edu/parent/children/{studentUserId} | api.v1.edu.parent.children.show | sanctum |
| PATCH | /api/v1/edu/parent/children/{studentUserId}/academic-profile | api.v1.edu.parent.children.academic-profile | sanctum |
| GET | /api/v1/edu/parent/children/{studentUserId}/annual-level | api.v1.edu.parent.children.annual-level | sanctum |
| GET | /api/v1/edu/parent/children/{studentUserId}/location-requests | api.v1.edu.parent.children.location-requests.index | sanctum |
| POST | /api/v1/edu/parent/children/{studentUserId}/location-requests | api.v1.edu.parent.children.location-requests.store | sanctum |
| GET | /api/v1/edu/parent/children/{studentUserId}/quran-hifz | api.v1.edu.parent.children.quran-hifz | sanctum |
| GET | /api/v1/edu/parent/children/{studentUserId}/quran-hifz/surahs/{surahId} | api.v1.edu.parent.children.quran-hifz.surah | sanctum |
| GET | /api/v1/edu/parent/children/{studentUserId}/teachers | api.v1.edu.parent.children.teachers | sanctum |
| POST | /api/v1/edu/parent/children/{studentUserId}/teachers/sync | api.v1.edu.parent.children.teachers.sync | sanctum |
| GET | /api/v1/edu/parent/children/{studentUserId}/teachers/{teacherUserId}/review | api.v1.edu.parent.children.teachers.review.show | sanctum |
| POST | /api/v1/edu/parent/children/{studentUserId}/teachers/{teacherUserId}/review | api.v1.edu.parent.children.teachers.review.store | sanctum |
| GET | /api/v1/edu/parent/dashboard | api.v1.edu.parent.dashboard | sanctum |
| GET | /api/v1/edu/parent/payments | api.v1.edu.parent.payments.index | sanctum |
| GET | /api/v1/edu/parent/payments/options | api.v1.edu.parent.payments.options | sanctum |
| GET | /api/v1/edu/payment-contacts | api.v1.edu.payment-contacts | sanctum |
| GET | /api/v1/edu/slides | api.v1.edu.slides.index | sanctum |
| PATCH | /api/v1/edu/student/academic-profile | api.v1.edu.student.academic-profile | sanctum |
| GET | /api/v1/edu/student/annual-level | api.v1.edu.student.annual-level | sanctum |
| GET | /api/v1/edu/student/dashboard | api.v1.edu.student.dashboard | sanctum |
| GET | /api/v1/edu/student/homeworks | api.v1.edu.student.homeworks | sanctum |
| POST | /api/v1/edu/student/homeworks/{homework}/submit | api.v1.edu.student.homeworks.submit | sanctum |
| GET | /api/v1/edu/student/location-requests/pending | api.v1.edu.student.location-requests.pending | sanctum |
| GET | /api/v1/edu/student/locations | api.v1.edu.student.locations | sanctum |
| GET | /api/v1/edu/student/materials | api.v1.edu.student.materials | sanctum |
| GET | /api/v1/edu/student/meetings | api.v1.edu.student.meetings | sanctum |
| GET | /api/v1/edu/student/parent-links | api.v1.edu.student.parent-links.index | sanctum |
| POST | /api/v1/edu/student/parent-links | api.v1.edu.student.parent-links.store | sanctum |
| DELETE | /api/v1/edu/student/parent-links/{link} | api.v1.edu.student.parent-links.destroy | sanctum |
| GET | /api/v1/edu/student/payments | api.v1.edu.student.payments.index | sanctum |
| GET | /api/v1/edu/student/payments/options | api.v1.edu.student.payments.options | sanctum |
| GET | /api/v1/edu/student/private-sessions | api.v1.edu.student.private-sessions.index | sanctum |
| POST | /api/v1/edu/student/private-sessions | api.v1.edu.student.private-sessions.store | sanctum |
| POST | /api/v1/edu/student/private-sessions/{booking}/cancel | api.v1.edu.student.private-sessions.cancel | sanctum |
| POST | /api/v1/edu/student/private-sessions/{booking}/join | api.v1.edu.student.private-sessions.join | sanctum |
| GET | /api/v1/edu/student/quizzes | api.v1.edu.student.quizzes.index | sanctum |
| GET | /api/v1/edu/student/quizzes/{quiz} | api.v1.edu.student.quizzes.show | sanctum |
| POST | /api/v1/edu/student/quizzes/{quiz}/submit | api.v1.edu.student.quizzes.submit | sanctum |
| GET | /api/v1/edu/student/teachers | api.v1.edu.student.teachers | sanctum |
| POST | /api/v1/edu/student/teachers/sync | api.v1.edu.student.teachers.sync | sanctum |
| GET | /api/v1/edu/student/teachers/{teacherUserId}/private-session-settings | api.v1.edu.student.teachers.private-session-settings | sanctum |
| GET | /api/v1/edu/student/teachers/{teacherUserId}/review | api.v1.edu.student.teachers.review.show | sanctum |
| POST | /api/v1/edu/student/teachers/{teacherUserId}/review | api.v1.edu.student.teachers.review.store | sanctum |
| GET | /api/v1/edu/teacher/chat/peers | api.v1.edu.teacher.chat.peers | sanctum |
| GET | /api/v1/edu/teacher/context | api.v1.edu.teacher.context | sanctum |
| GET | /api/v1/edu/teacher/dashboard | api.v1.edu.teacher.dashboard | sanctum |
| GET | /api/v1/edu/teacher/finance/ledger | api.v1.edu.teacher.finance.ledger.index | sanctum |
| POST | /api/v1/edu/teacher/finance/ledger | api.v1.edu.teacher.finance.ledger.store | sanctum |
| GET | /api/v1/edu/teacher/finance/ledger/options | api.v1.edu.teacher.finance.ledger.options | sanctum |
| DELETE | /api/v1/edu/teacher/finance/ledger/{entry} | api.v1.edu.teacher.finance.ledger.destroy | sanctum |
| GET | /api/v1/edu/teacher/groups | api.v1.edu.teacher.groups.index | sanctum |
| POST | /api/v1/edu/teacher/groups | api.v1.edu.teacher.groups.store | sanctum |
| GET | /api/v1/edu/teacher/groups/{group} | api.v1.edu.teacher.groups.show | sanctum |
| PATCH | /api/v1/edu/teacher/groups/{group} | api.v1.edu.teacher.groups.update | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group} | api.v1.edu.teacher.groups.destroy | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/annual-level | api.v1.edu.teacher.groups.annual-level | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/attendance | api.v1.edu.teacher.groups.attendance.overview | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/attendance/sessions/start | api.v1.edu.teacher.groups.attendance.sessions.start | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/attendance/sessions/{session} | api.v1.edu.teacher.groups.attendance.sessions.show | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/attendance/sessions/{session}/close | api.v1.edu.teacher.groups.attendance.sessions.close | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/attendance/sessions/{session}/scan | api.v1.edu.teacher.groups.attendance.sessions.scan | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/chat | api.v1.edu.teacher.groups.chat | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/grades | api.v1.edu.teacher.groups.grades.index | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/grades | api.v1.edu.teacher.groups.grades.store | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group}/grades/{grade} | api.v1.edu.teacher.groups.grades.destroy | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/homeworks | api.v1.edu.teacher.groups.homeworks.index | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/homeworks | api.v1.edu.teacher.groups.homeworks.store | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group}/homeworks/{homework} | api.v1.edu.teacher.groups.homeworks.destroy | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/materials | api.v1.edu.teacher.groups.materials.index | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/materials | api.v1.edu.teacher.groups.materials.store | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group}/materials/{material} | api.v1.edu.teacher.groups.materials.destroy | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/meetings | api.v1.edu.teacher.groups.meetings.index | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/meetings | api.v1.edu.teacher.groups.meetings.store | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group}/meetings/{meeting} | api.v1.edu.teacher.groups.meetings.destroy | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group}/members/{member} | api.v1.edu.teacher.groups.students.remove | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/quizzes | api.v1.edu.teacher.groups.quizzes.index | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/quizzes | api.v1.edu.teacher.groups.quizzes.store | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/quizzes/{quiz} | api.v1.edu.teacher.groups.quizzes.show | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group}/quizzes/{quiz} | api.v1.edu.teacher.groups.quizzes.destroy | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/quizzes/{quiz}/questions | api.v1.edu.teacher.groups.quizzes.questions.store | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group}/quizzes/{quiz}/questions/{question} | api.v1.edu.teacher.groups.quizzes.questions.destroy | sanctum |
| GET | /api/v1/edu/teacher/groups/{group}/student-ratings | api.v1.edu.teacher.groups.student-ratings.index | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/student-ratings | api.v1.edu.teacher.groups.student-ratings.store | sanctum |
| DELETE | /api/v1/edu/teacher/groups/{group}/student-ratings/{rating} | api.v1.edu.teacher.groups.student-ratings.destroy | sanctum |
| POST | /api/v1/edu/teacher/groups/{group}/students | api.v1.edu.teacher.groups.students.add | sanctum |
| GET | /api/v1/edu/teacher/leave-days | api.v1.edu.teacher.leave-days.index | sanctum |
| POST | /api/v1/edu/teacher/leave-days | api.v1.edu.teacher.leave-days.store | sanctum |
| DELETE | /api/v1/edu/teacher/leave-days/{leave} | api.v1.edu.teacher.leave-days.destroy | sanctum |
| GET | /api/v1/edu/teacher/parent-links | api.v1.edu.teacher.parent-links.index | sanctum |
| POST | /api/v1/edu/teacher/parent-links | api.v1.edu.teacher.parent-links.store | sanctum |
| DELETE | /api/v1/edu/teacher/parent-links/{link} | api.v1.edu.teacher.parent-links.destroy | sanctum |
| GET | /api/v1/edu/teacher/payments | api.v1.edu.teacher.payments.index | sanctum |
| POST | /api/v1/edu/teacher/payments/manual | api.v1.edu.teacher.payments.manual | sanctum |
| GET | /api/v1/edu/teacher/payments/options | api.v1.edu.teacher.payments.options | sanctum |
| POST | /api/v1/edu/teacher/payments/{payment}/approve | api.v1.edu.teacher.payments.approve | sanctum |
| GET | /api/v1/edu/teacher/payments/{payment}/receipt | api.v1.edu.teacher.payments.receipt | sanctum |
| POST | /api/v1/edu/teacher/payments/{payment}/reject | api.v1.edu.teacher.payments.reject | sanctum |
| GET | /api/v1/edu/teacher/plan-quota | api.v1.edu.teacher.plan-quota | sanctum |
| GET | /api/v1/edu/teacher/planner | api.v1.edu.teacher.planner.index | sanctum |
| POST | /api/v1/edu/teacher/planner/events | api.v1.edu.teacher.planner.events.store | sanctum |
| POST | /api/v1/edu/teacher/planner/events/reorder | api.v1.edu.teacher.planner.events.reorder | sanctum |
| DELETE | /api/v1/edu/teacher/planner/events/{event} | api.v1.edu.teacher.planner.events.destroy | sanctum |
| GET | /api/v1/edu/teacher/private-sessions | api.v1.edu.teacher.private-sessions.index | sanctum |
| PATCH | /api/v1/edu/teacher/private-sessions/settings | api.v1.edu.teacher.private-sessions.settings | sanctum |
| POST | /api/v1/edu/teacher/private-sessions/{booking}/approve | api.v1.edu.teacher.private-sessions.approve | sanctum |
| POST | /api/v1/edu/teacher/private-sessions/{booking}/reject | api.v1.edu.teacher.private-sessions.reject | sanctum |
| GET | /api/v1/edu/teacher/profile/catalogs | api.v1.edu.teacher.profile.catalogs | sanctum |
| PATCH | /api/v1/edu/teacher/profile/catalogs | api.v1.edu.teacher.profile.catalogs.update | sanctum |
| GET | /api/v1/edu/teacher/secretaries | api.v1.edu.teacher.secretaries.index | sanctum |
| POST | /api/v1/edu/teacher/secretaries | api.v1.edu.teacher.secretaries.store | sanctum |
| GET | /api/v1/edu/teacher/secretaries/options | api.v1.edu.teacher.secretaries.options | sanctum |
| PATCH | /api/v1/edu/teacher/secretaries/{secretary} | api.v1.edu.teacher.secretaries.update | sanctum |
| DELETE | /api/v1/edu/teacher/secretaries/{secretary} | api.v1.edu.teacher.secretaries.destroy | sanctum |
| GET | /api/v1/edu/teacher/students | api.v1.edu.teacher.students.index | sanctum |
| POST | /api/v1/edu/teacher/students | api.v1.edu.teacher.students.store | sanctum |
| GET | /api/v1/edu/teacher/students-map | api.v1.edu.teacher.students-map.index | sanctum |
| POST | /api/v1/edu/teacher/students-map/pins | api.v1.edu.teacher.students-map.pins.store | sanctum |
| POST | /api/v1/edu/teacher/students/link-existing | api.v1.edu.teacher.students.link-existing | sanctum |
| GET | /api/v1/edu/teacher/students/search-existing | api.v1.edu.teacher.students.search-existing | sanctum |
| GET | /api/v1/edu/teacher/students/{student}/qr-code | api.v1.edu.teacher.students.qr.show | sanctum |
| POST | /api/v1/edu/teacher/students/{student}/qr-code/regenerate | api.v1.edu.teacher.students.qr.regenerate | sanctum |
| GET | /api/v1/edu/teacher/teaching/materials | api.v1.edu.teacher.teaching.materials | sanctum |
| GET | /api/v1/edu/teacher/teaching/quizzes | api.v1.edu.teacher.teaching.quizzes | sanctum |
| GET | /api/v1/geo/catalog | api.v1.geo.catalog | public |
| GET | /api/v1/health | api.v1.health | public |
| GET | /api/v1/internal/chat/can-join | api.v1.internal.chat.can-join | public |
| GET | /api/v1/memorization | api.v1.memorization.index | sanctum |
| POST | /api/v1/memorization | api.v1.memorization.store | sanctum |
| POST | /api/v1/memorization/ayah | api.v1.memorization.ayah | sanctum |
| POST | /api/v1/memorization/current | api.v1.memorization.current | sanctum |
| GET | /api/v1/memorization/summary | api.v1.memorization.summary | sanctum |
| GET | /api/v1/memorization/surah/{surahId} | api.v1.memorization.surah | sanctum |
| PUT | /api/v1/memorization/{userMemorization} | api.v1.memorization.update | sanctum |
| DELETE | /api/v1/memorization/{userMemorization} | api.v1.memorization.destroy | sanctum |
| GET | /api/v1/notifications | api.v1.notifications.index | sanctum |
| POST | /api/v1/notifications/device | api.v1.notifications.device | sanctum |
| GET | /api/v1/notifications/poll | api.v1.notifications.poll | sanctum |
| POST | /api/v1/notifications/read-all | api.v1.notifications.read-all | sanctum |
| POST | /api/v1/notifications/{notification}/read | api.v1.notifications.read | sanctum |
| POST | /api/v1/payments | api.v1.payments.store | sanctum |
| GET | /api/v1/plans | api.v1.plans.index | public |
| GET | /api/v1/quran/audio/{reciterId}/{surahId} | api.v1.quran.audio.show | sanctum |
| GET | /api/v1/quran/ayahs/{surahId} | api.v1.quran.ayahs.by-surah | sanctum |
| GET | /api/v1/quran/favorites | api.v1.quran.favorites.index | sanctum |
| POST | /api/v1/quran/favorites | api.v1.quran.favorites.store | sanctum |
| DELETE | /api/v1/quran/favorites/{favorite} | api.v1.quran.favorites.destroy | sanctum |
| GET | /api/v1/quran/last-read | api.v1.quran.last-read.show | sanctum |
| POST | /api/v1/quran/last-read | api.v1.quran.last-read.store | sanctum |
| GET | /api/v1/quran/offline/surah/{surahId} | api.v1.quran.offline.surah | sanctum |
| GET | /api/v1/quran/reciters | api.v1.quran.reciters.index | sanctum |
| GET | /api/v1/quran/reciters/{id} | api.v1.quran.reciters.show | sanctum |
| GET | /api/v1/quran/reciters/{id}/recitations | api.v1.quran.reciters.recitations | sanctum |
| GET | /api/v1/quran/reciters/{reciterId}/surahs/{surahId}/ayahs/{ayahNumber}/audio | api.v1.quran.audio.ayah | sanctum |
| GET | /api/v1/quran/search | api.v1.quran.search | sanctum |
| GET | /api/v1/quran/subscription | api.v1.quran.subscription.show | sanctum |
| GET | /api/v1/quran/surahs | api.v1.quran.surahs.index | sanctum |
| GET | /api/v1/quran/surahs/{id} | api.v1.quran.surahs.show | sanctum |
| GET | /api/v1/slides/marketing | api.v1.slides.marketing | public |
curl -X POST https://shater.net/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"secret"}'
curl https://shater.net/api/v1/auth/me -H "Authorization: Bearer <token>"