Authentication
Most endpoints require header:
X-Admin-Token: <ADMIN_TOKEN from .env>
Public (no auth): GET /api/health, GET /api/branding, GET /api/help, all /help/* pages.
System
| Method | Path | Description |
| GET | /api/health | Health check, version, worker status |
| GET | /api/status | Stats, config, company, profile |
| GET | /api/branding | Public UI branding |
| GET | /api/help | Help article index (JSON) |
Company & profile
| Method | Path |
| GET/POST | /api/company |
| POST | /api/company/logo (multipart) |
| GET/POST | /api/profile |
LRS endpoints
| Method | Path |
| GET | /api/endpoints |
| GET | /api/endpoints/health |
| POST | /api/endpoints/health/check-all |
| POST | /api/endpoints |
| GET/PUT/DELETE | /api/endpoints/{id} |
| POST | /api/endpoints/{id}/activate |
| POST | /api/endpoints/{id}/deactivate |
| POST | /api/endpoints/{id}/health/check |
| GET | /api/environments |
| POST | /api/environments/active |
Integration & worker
| Method | Path |
| POST | /api/test-lrs |
| POST | /api/send-journey |
| POST | /api/bb-test |
| POST | /api/poll-now |
| POST | /api/dispatch-now |
| GET | /api/worker |
Monitoring
| Method | Path |
| GET | /api/outbox?status=&environment= |
| GET | /api/statements?status=&environment= |
| GET | /api/journeys |
| GET | /api/logs?level=&category= |
| GET | /api/quarantine |
| GET | /api/courses |
Example: test LRS
curl -X POST http://localhost:8080/api/test-lrs \
-H "X-Admin-Token: your-token"
Example: send journey
curl -X POST http://localhost:8080/api/send-journey \
-H "Content-Type: application/json" \
-H "X-Admin-Token: your-token" \
-d '{"national_id":"1011223366","course_id":"CR-ELEARN-VALID-001"}'