GET/api/v1/quiz
Lister vos quiz, du plus récemment modifié au plus ancien.
limite paramètre d’URL (facultatif) Nombre maximum de quiz (1 à 200, 100 par défaut).
Réponse 200
{
"quiz": [
{
"id": "javascript-les-bases-k3f9a",
"titre": "JavaScript : les bases",
"description": "Module 3 - variables et types",
"nombreQuestions": 10,
"nombreSessions": 2,
"creeLe": "2026-10-14T09:00:00.000Z",
"modifieLe": "2026-10-14T09:00:00.000Z",
"url": "https://vibe-quiz.fr/quiz/javascript-les-bases-k3f9a"
}
]
}
POST/api/v1/quiz
Créer un quiz.
Le quiz est prêt immédiatement dans le tableau de bord du formateur. L’`id` renvoyé sert à toutes les autres actions.
Corps de la requête
{
"titre": "JavaScript : les bases",
"description": "Module 3 - variables et types",
"questions": [
{
"type": "qcm",
"enonce": "Quel mot-clé déclare une constante en JavaScript ?",
"choix": [
"var",
"let",
"const",
"static"
],
"bonneReponse": 2,
"duree": 20,
"explication": "`const` crée une liaison qui ne peut pas être réaffectée."
}
]
}
Réponse 201
{
"quiz": {
"id": "javascript-les-bases-k3f9a",
"titre": "JavaScript : les bases",
"description": "Module 3 - variables et types",
"nombreQuestions": 1,
"creeLe": "2026-10-14T09:00:00.000Z",
"modifieLe": "2026-10-14T09:00:00.000Z",
"url": "https://vibe-quiz.fr/quiz/javascript-les-bases-k3f9a",
"questions": [
{
"type": "qcm",
"enonce": "Quel mot-clé déclare une constante en JavaScript ?",
"choix": [
"var",
"let",
"const",
"static"
],
"bonneReponse": 2,
"duree": 20,
"explication": "`const` crée une liaison qui ne peut pas être réaffectée."
}
]
}
}
GET/api/v1/quiz/{id}
Lire un quiz complet, avec ses questions et les bonnes réponses.
id dans le chemin Identifiant du quiz (champ `id`).
Réponse 200
{
"quiz": {
"id": "javascript-les-bases-k3f9a",
"titre": "JavaScript : les bases",
"description": "Module 3 - variables et types",
"nombreQuestions": 1,
"creeLe": "2026-10-14T09:00:00.000Z",
"modifieLe": "2026-10-14T09:00:00.000Z",
"url": "https://vibe-quiz.fr/quiz/javascript-les-bases-k3f9a",
"questions": [
{
"type": "qcm",
"enonce": "Quel mot-clé déclare une constante en JavaScript ?",
"choix": [
"var",
"let",
"const",
"static"
],
"bonneReponse": 2,
"duree": 20,
"explication": "`const` crée une liaison qui ne peut pas être réaffectée."
}
]
}
}
PUT/api/v1/quiz/{id}
Remplacer entièrement un quiz (titre, description et toutes les questions).
Même corps que la création. Les sessions déjà jouées gardent leurs questions d’origine.
id dans le chemin Identifiant du quiz.
Corps de la requête
{
"titre": "JavaScript : les bases (v2)",
"description": null,
"questions": [
{
"type": "qcm",
"enonce": "Quel mot-clé déclare une constante en JavaScript ?",
"choix": [
"var",
"let",
"const",
"static"
],
"bonneReponse": 2,
"duree": 20,
"explication": "`const` crée une liaison qui ne peut pas être réaffectée."
}
]
}
Réponse 200
{
"quiz": {
"id": "javascript-les-bases-k3f9a",
"titre": "JavaScript : les bases",
"description": "Module 3 - variables et types",
"nombreQuestions": 1,
"creeLe": "2026-10-14T09:00:00.000Z",
"modifieLe": "2026-10-14T09:00:00.000Z",
"url": "https://vibe-quiz.fr/quiz/javascript-les-bases-k3f9a",
"questions": [
{
"type": "qcm",
"enonce": "Quel mot-clé déclare une constante en JavaScript ?",
"choix": [
"var",
"let",
"const",
"static"
],
"bonneReponse": 2,
"duree": 20,
"explication": "`const` crée une liaison qui ne peut pas être réaffectée."
}
]
}
}
PATCH/api/v1/quiz/{id}
Modifier partiellement un quiz.
Seuls les champs envoyés sont modifiés. Si `questions` est envoyé, la liste complète des questions est remplacée : pour corriger une seule question, lisez le quiz, modifiez la question, puis renvoyez toute la liste.
id dans le chemin Identifiant du quiz.
Corps de la requête
{
"titre": "JavaScript : les fondamentaux"
}
Réponse 200
{
"quiz": {
"id": "javascript-les-bases-k3f9a",
"titre": "JavaScript : les bases",
"description": "Module 3 - variables et types",
"nombreQuestions": 1,
"creeLe": "2026-10-14T09:00:00.000Z",
"modifieLe": "2026-10-14T09:00:00.000Z",
"url": "https://vibe-quiz.fr/quiz/javascript-les-bases-k3f9a",
"questions": [
{
"type": "qcm",
"enonce": "Quel mot-clé déclare une constante en JavaScript ?",
"choix": [
"var",
"let",
"const",
"static"
],
"bonneReponse": 2,
"duree": 20,
"explication": "`const` crée une liaison qui ne peut pas être réaffectée."
}
]
}
}
DELETE/api/v1/quiz/{id}
Supprimer un quiz.
Les résultats des sessions déjà jouées sont conservés.
id dans le chemin Identifiant du quiz.
Réponse 200
{
"supprime": true
}
POST/api/v1/quiz/{id}/dupliquer
Dupliquer un quiz (la copie s’appelle « … (copie) »).
id dans le chemin Identifiant du quiz à copier.
Réponse 201
{
"quiz": {
"id": "javascript-les-bases-copie-p2x7d",
"titre": "JavaScript : les bases (copie)",
"description": "Module 3 - variables et types",
"nombreQuestions": 1,
"creeLe": "2026-10-14T09:00:00.000Z",
"modifieLe": "2026-10-14T09:00:00.000Z",
"url": "https://vibe-quiz.fr/quiz/javascript-les-bases-k3f9a",
"questions": [
{
"type": "qcm",
"enonce": "Quel mot-clé déclare une constante en JavaScript ?",
"choix": [
"var",
"let",
"const",
"static"
],
"bonneReponse": 2,
"duree": 20,
"explication": "`const` crée une liaison qui ne peut pas être réaffectée."
}
]
}
}
GET/api/v1/sessions
Lister vos sessions (parties jouées ou en cours), de la plus récente à la plus ancienne.
quiz paramètre d’URL (facultatif) Ne garder que les sessions de ce quiz (son `id`).depuis paramètre d’URL (facultatif) Sessions créées à partir de cette date (ex. 2026-10-01).jusqua paramètre d’URL (facultatif) Sessions créées jusqu’à cette date incluse.limite paramètre d’URL (facultatif) Nombre maximum de sessions (1 à 200, 50 par défaut).
Réponse 200
{
"sessions": [
{
"code": "K7M2QX",
"quiz": {
"id": "javascript-les-bases-k3f9a",
"titre": "JavaScript : les bases"
},
"statut": "terminee",
"creeLe": "2026-10-14T13:30:00.000Z",
"termineeLe": "2026-10-14T13:48:12.000Z",
"nombreParticipants": 24,
"nombreQuestions": 10,
"scoreMoyen": 6120,
"lienRejoindre": "https://vibe-quiz.fr/rejoindre/K7M2QX"
}
]
}
GET/api/v1/sessions/{code}
Lire une session et ses résultats : classement final, score par participant et par question.
Pour chaque participant : pseudo, identifiant externe `ref` s’il a été fourni dans le lien de connexion, score, rang, et pour chaque question le choix fait, juste ou faux, le temps de réponse et les points. Les résultats sont écrits à la fin de la session (ou 2 heures après la dernière activité si elle n’a pas été terminée). Alias : `/sessions/{code}/resultats`.
code dans le chemin Code de la session (6 caractères).
Réponse 200
{
"session": {
"code": "K7M2QX",
"quiz": {
"id": "javascript-les-bases-k3f9a",
"titre": "JavaScript : les bases"
},
"statut": "terminee",
"creeLe": "2026-10-14T13:30:00.000Z",
"termineeLe": "2026-10-14T13:48:12.000Z",
"nombreParticipants": 24,
"nombreQuestions": 10,
"scoreMoyen": 6120,
"lienRejoindre": "https://vibe-quiz.fr/rejoindre/K7M2QX",
"demarreeLe": "2026-10-14T13:31:02.000Z",
"classement": [
{
"rang": 1,
"pseudo": "Camille",
"ref": "apprenant-4821",
"score": 8740,
"bonnesReponses": 9,
"reponses": [
{
"question": 0,
"choix": 2,
"correcte": true,
"tempsMs": 3120,
"points": 922
}
]
}
],
"questions": [
{
"index": 0,
"enonce": "Quel mot-clé déclare une constante en JavaScript ?",
"choix": [
"var",
"let",
"const",
"static"
],
"bonneReponse": 2,
"nombreReponses": 23,
"nombreBonnesReponses": 19,
"tauxReussite": 0.792,
"repartition": [
1,
3,
19,
0
]
}
]
}
}