API Documentation
Integrate QuickMark's rule-driven presence engine into your own applications.
Base URL
https://yourdomain.com/api
All API requests must include the `Accept: application/json` header. Stateful requests like `POST` and `DELETE` from the browser must also include the `X-CSRF-TOKEN` header if relying on session cookies.
1. Authentication
Authenticate a user and initialize a session. This is an API-first endpoint that uses web middleware for secure cookie-based session persistence.
Request Body
{
"email": "user@example.com",
"password": "yourpassword"
}
Create a new user account.
{
"name": "Jane Doe",
"email": "jane@example.com",
"password": "securepassword",
"password_confirmation": "securepassword"
}
2. List Management
Lists are isolated containers for people (students, team members, etc.). Users can only access and modify their own lists.
Retrieve all lists belonging to the authenticated user.
Response
{
"data": [
{ "id": 1, "name": "BCA 3rd Semester", "created_at": "..." },
{ "id": 2, "name": "Cricket Team", "created_at": "..." }
],
"total": 2
}
Create a new list.
{
"name": "Weekend Workshop"
}
3. People & Roster
Manage the roster of individuals inside a specific list.
Add multiple people to a list at once. Limited to 100 people per request.
{
"names": [
"Alice Smith",
"Bob Johnson",
"Charlie Davis"
]
}
Remove a person from the list. This operation cascades and nullifies their presence history in past sessions to maintain aggregate data integrity.
4. Session Tracking
The core tracking engine. You initialize a session, mark presences, and then finalize and save the record.
Start a new attendance tracking session for today.
{
"title": "DBMS Lecture 5"
}
Record presence for an individual within an active session. When `final_save` is passed as `1`, the session state is locked and marked as completed.
| Parameter | Type | Description |
|---|---|---|
person_id |
Integer | The ID of the person being marked. |
is_present |
Boolean/Int | 1 for Present, 0 for Absent. |
final_save |
Boolean/Int | Send 1 on the last sync to close the session. |
{
"person_id": 142,
"is_present": 1,
"final_save": 0
}