Evolve Candidate Frontend API Reference
The frontend consumes the Evolve backend API (per the repo's swagger.json) plus one same-origin proxy route of its own for the n8n auto-assign webhook.
Authentication
Session via /auth/login, refreshed via /auth/refresh. Backend-issued token, not PocketBase.
Base URL
Configured via env - see Getting Started.
Backend endpoints used
| Method | Path | Purpose |
|---|---|---|
| POST | /auth/login | Candidate login |
| POST | /auth/refresh | Refresh session token |
| POST | /auth/logout | Log out |
| POST | /candidate/register | Candidate registration |
| POST | /candidate/request-password-reset | Start reset-password flow |
| POST | /candidate/reset-password | Complete reset-password flow |
| GET | /candidate/email/{email} | Look up candidate by email (used for the pre-filled/locked login flow) |
| POST | /candidate/help-request | Candidate support/help request |
| GET | /test/available-rounds | List rounds available to the candidate |
| POST | /test/personality/schedule | Schedule the personality round |
| POST | /test/candidates/auto-schedule | Auto-schedule a candidate into a round |
| GET | /test/instance/{testInstanceId} | Fetch a specific test instance |
| GET | /exam | Fetch current exam data |
| PUT | /exam/begin/{testInstanceId} | Mark an exam instance as started |
| PUT | /exam/submit | Submit exam answers |
| POST | /user-activity/event/loggedin | Activity logging: login event |
| POST | /user-activity/event/loggedout | Activity logging: logout event |
Own routes
| Method | Path | Purpose |
|---|---|---|
| POST | /api/webhook/auto-assign | Server-side proxy: forwards MCQ-submission auto-assign events to the n8n webhook using NEXT_PUBLIC_AUTO_ASSIGN_WEBHOOK_URL + basic auth (NEXT_PUBLIC_N8N_BASIC_AUTH_USER/PASS) |
Env-gated webhook
/api/webhook/auto-assign returns HTTP 500 if NEXT_PUBLIC_AUTO_ASSIGN_WEBHOOK_URL isn't set - check .env before assuming auto-assign is broken.
Next Steps
- Architecture
- Getting Started
- Admin app docs: Evolve Admin Frontend