Contests — مسابقات (v1)
Workspace quizzes with a public link, randomized questions/options, timed attempts, and ranked results after the host ends the contest.
Persona access
| Area | Admin | Workspace Owner | Staff | Customer |
|---|---|---|---|---|
Enable menu section (contests) | Yes (businesses.manage) | — | — | — |
| CRUD contests / questions / results | — | Yes | No (section hidden) | — |
| Take contest (public link) | — | — | — | Yes (anonymous) |
Workspace (authenticated)
Actual backend base: /v1/workspace/:workspaceId/contests/...
Documented endpoints:
Additional routes (same auth model): GET/PATCH/DELETE /contests/:contestId, POST .../rotate-token, GET/POST/PATCH/DELETE .../questions (add/update/delete questions allowed in draft, open, or ended — ensure the pool stays at least questionsToShowCount while the contest is open so public starts keep working), GET .../leaderboard (owner response may include attemptId per row), POST/DELETE .../background-image.
Public (no auth)
Actual backend base: /v1/public/contest/... or /v1/public/:workspaceSlug/contest/....