REST v1 · Token-authenticated · JSON-in / JSON-out
Stable Base URL: https://www.itschronos.com/api/v1
All endpoints (except /ping) require a Bearer token. Admins create tokens in Admin → API Tokens.
curl https://www.itschronos.com/api/v1/me \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
{ data: [...], meta: { total, per_page, current_page, last_page } }.{ error: "..." } or Laravel validation { errors: {...} }.{
"name": "Jane Doe",
"email": "jane.doe@acme.com",
"role": "student",
"external_id": "EMP-000123",
"phone": "+1 555 0100",
"timezone": "America/New_York",
"status": "active"
}
{
"user_email": "jane.doe@acme.com",
"course_slug": "workplace-safety-101",
"expires_at": "2026-12-31"
}
{
"users": [
{
"external_id": "EMP-000123",
"email": "jane.doe@acme.com",
"name": "Jane Doe",
"role": "student",
"status": "active",
"phone": "+1 555 0100",
"timezone": "America/New_York"
}
]
}
| Slug | Purpose |
|---|---|
super_admin | Root access |
admin | Platform management |
hr | Workforce visibility + enrollment + compliance |
supervisor | Team compliance oversight |
instructor | Course creation + grading |
student | Learner |
A new hire is added in your HR system. Your HR system calls three Chronos endpoints:
# 1. Sync the new employee into Chronos
POST /api/v1/webhooks/hr-sync
{ "users": [{ "external_id": "EMP-000456", "email": "new.hire@acme.com",
"name": "Alex Kim", "role": "student" }] }
# 2. Enroll them in mandatory onboarding
POST /api/v1/enrollments
{ "user_email": "new.hire@acme.com", "course_slug": "workplace-onboarding" }
# 3. Later, pull their progress for dashboards
GET /api/v1/users/{id}/progress
Chronos LMS · Home · API Tokens