Mobile API Reference
The route catalogue is defined by routes/api.php and routes/api/{auth,guest,user,instructor}.php. Laravel adds /api and the route group adds /development, producing the base prefix /api/development. This is a route-level reference, not a guarantee that every declared handler is production-supported.
Live screenshot from the SOQ beauty demo (aiacademy.aiee.dev).
Surfaces, roles and current terminology
| Surface | Current navigation terminology | Status |
|---|---|---|
| Health and configuration | GET /; GET /config; GET /config/register/{type} | Public under the base prefix |
| Authentication | POST /register/step/{step}, /login, /forget-password, /reset-password/{token}, /verification; social redirect/callback routes; POST /logout | Auth operations are public with request-type handling; logout requires api.auth |
| Public course discovery | GET /courses, /courses/{id}, /courses/{id}/content, quizzes, certificates; featured-courses, categories, search | Public reads; course report and learning-status toggle require api.auth |
| Public providers and meetings | GET /providers/*, /instructors, /organizations, /users/{id}/profile, /users/{id}/meetings; POST /meetings/reserve | Public discovery; reservation requires api.auth and request type |
| Public content and commerce | GET /blogs*, /bundles*, /products*, /product_categories, /subscribe, advertising-banner; POST /newsletter, /contact | Mostly public; controller rules still apply |
| Public reference data | GET /regions/countries, provinces, cities, districts, countries/code; /timezones; /currency/list | Public |
| Panel account and engagement | Under /panel: quick-info, comments, reviews, support, notifications, favorites, meetings, rewards, profile-setting, follow, login history | Entire primary Panel group requires api.auth |
| Panel learning and evaluation | Under /panel: purchases, organization courses, quizzes/results/certificates, assignments/messages, webinar content, forums/answers, personal notes, noticeboards, statistics | api.auth; selected routes additionally require teacher level |
| Panel cart and finance | Under /panel: cart, subscribe, financial sales/charge/summary/payout/offline-payments, payments request/credit/verify | api.auth; payment/provider configuration and controller validation apply |
| Panel store and publishing | Under /panel: store products/sales/purchases, blog resources, bundles, delete-account and content-delete requests | api.auth; store management and blog resources require teacher level |
| Public content-item reads from user routes | Under /panel: GET /files/{file}, /sessions/{session}, /text-lessons/{lesson}*, /assignments/{assignment}, /quizzes/{quiz} | Declared outside the api.auth group; review controller authorization before treating content as public |
| Instructor catalogue | Under /instructor: bundles resources/export, webinar create, quizzes CRUD/results, meeting requests/actions, comments, assignments/grading | Global api.auth plus api.level-access:teacher |
Permissions, settings and activation
- Public means no
api.authmiddleware is declared at the route level; controller checks, request-type middleware, entitlement, and data visibility can still restrict a response. api.authprotects the main/panelgroup. A subset also usesapi.level-access:teacherfor teacher-level operations.- All
/instructorroutes inherit bothapi.authandapi.level-access:teacherfrom the parent group. - Document each concrete endpoint with method, full path, access/middleware, purpose, path/query/body fields, response fields, state/error semantics, side effects, idempotency expectations, and review/support status.
- Use the exact controller response as the authority for payload shape. The route declarations do not define a universal JSON schema.
Core workflows
Build an endpoint reference entry
- Start with the base prefix
/api/developmentand append the exact declared route, including/panelor/instructorwhere applicable. - Record the HTTP method and every path parameter; inspect the controller/request validator for query and body fields.
- Record route middleware as Public,
api.auth, orapi.auth + teacher, plus request-type/format middleware where declared. - Capture representative success and error response fields from the controller and tests rather than assuming a common envelope.
- Mark side effects and whether retrying can create duplicate carts, payments, messages, notifications, reservations, or submissions.
Authenticate and call protected families
- Use the declared login or registration flow and retain the credential/token format returned by the active controller.
- Send the authentication data expected by
api.authand the request type expected byapi.request.typewhere required. - Call Panel routes only for the authenticated account and Instructor routes only for teacher-level accounts.
- Treat 401/403-style outcomes and controller-specific denied responses as access failures, not empty data.
Review routes before claiming support
- Review
POST /notification/new: it is declared in the public guest group and directly targets a supplied device token; do not publish it as a supported client feature without an explicit security/support decision. - Review
GET /instructor/meetings: its current closure contains a debug dump, so the route declaration is not evidence of a functioning endpoint. - Review public content-item reads declared after the authenticated Panel group, especially files, sessions, lessons, assignments, and quizzes, for controller-level entitlement checks.
- Review duplicate/legacy-looking families such as Panel reviews and account/content deletion routes before choosing the canonical mobile call.
- Verify social callbacks, payment verification, downloads, and live-session launch behavior on the target deployment because redirects and provider setup affect API suitability.
Result states
- Success: The endpoint matches its documented method/path, access boundary, validated fields, and observed controller response; side effects occur once.
- Pending: A payment, offline approval, support reply, assignment grade, reservation, notification, or deletion request is accepted but not complete.
- Denied: Authentication is missing/invalid, teacher access is absent, entitlement or ownership fails, or controller policy rejects the request.
- Error: Validation, unavailable provider/configuration, debug handler, controller exception, or unsupported legacy route prevents a reliable response; mark the endpoint for review rather than promising support.
Operational notes
- Source catalogue reviewed:
routes/api.php,routes/api/auth.php,routes/api/guest.php,routes/api/user.php, androutes/api/instructor.php. - Route presence proves registration only. Production support also requires a working controller, validation, authorization, dependencies, stable response contract, and deployment configuration.
- The literal
developmentsegment is part of the current source prefix despite the API serving application features.