1. v5
Platform API
  • Введение
  • 00-Templates
  • 01-Documentation
    • API Style Guide
    • Breaking Changes
    • API versioning folder structure
    • Proposals
      • Предложение - Разделение ответственности: `sourceA -> sourceB?ids=...`
    • Architecture Decision Records
      • Формат Response Data
      • Переиспользование ресурсов в микросервисной архитектуре
  • Devices
    • Зарегистрировать устройство
      POST
  • Authentication
    • Получить токен пользователя
      POST
    • Регистрация нового пользователя
      POST
  • Advertising
    • Реклама
  • User (Profile, Levels, Gifts, Awards, Feedbacks, Following)
    • Profile
      • Birthday Greeting
        • Получить поздравление с днем рождения
        • Отметить поздравление с днем рождения как просмотренное
      • Email
        • Сменить почту
        • Подтвердить смену почты по токену
        • Подтвердить почту
        • Подтвердить почту по токену
    • Level Stages
      • Документация
      • Получить список всех стадий
      • Получить данные о текущей стадии пользователя
      • Получить данные о стадии по ID
    • Gifts
      • Документация
      • Получить список всех подарков
      • Получить список всех категорий подарков
      • Получить данные об одном подарке по ID
      • Пометить подарок как полученный
    • Awards
      • Получить награды пользователя
    • Follow
      • Подписывает текущего пользователя на указанный профиль
      • Получение подписчиков пользователя
      • Получение списка подписок
      • Удаляет подписчика пользователя
    • Получить данные о текущем пользователе
      GET
    • Получить публичный профиль пользователя по ID
      GET
    • Удалиться
      POST
  • Samagonka | Sprint | Summarace | Knowledge Sprint
    • Получить саммагонку на текущую неделю
    • Получить календарь саммагонки
    • Получить статистику по спринту
    • Получить Топ пользователей по саммагонке
    • Получить рейтинг по сданным экзаменам
    • Получить историю рейтинга экзаменов
    • Получить топ 20 курсов
  • Categories
    • 2025-08-01 / Иконки категорий
    • Получить список категорий
  • Subscription
    • v5
      • Получить статус подписки
  • Combo Summary
    • Моё
      • Получить список избранных комбо-саммари
      • Получить список начатых комбо-саммари
      • Получить список пройденных комбо-саммари
      • Изменить состояние избранного для комбо-саммари по ID
    • Получить список комбо-саммари
    • Получить комбо-саммари по ID
    • Получить диплом для комбо-саммари по ID
    • Получить список комбо-саммари в которые входит саммари по ID саммари
    • Сгенерировать диплом для комбо-саммари по ID
  • Courses | Summary | Lectures
    • v5
      • Получить случайный саммари
      • Скачать видео из курса
      • Получить список качеств видео из курса
      • Получить список общие качества всех видео из курса
    • v3
      • Моё
        • Получить список просмотренных саммари (Начатые, Пройденные)
      • Получить список саммари
    • unspecified
      • Получить саммари по ID
  • Compilations
    • v3
      • Получить подборки
  • Bookmarks
    • v3
      • Создать закладку в лекции
    • v5
      • Создать закладки в лекции
  • Notifications
    • Получить список уведомлений
    • Получить количество непрочитанных уведомлений
  • Feedbacks
    • Получить мнения для саммари по ID
    • Получить все мнения текущего пользователя
    • Получить все мнения пользователя по User ID
    • Получить комментарии к мнению по ID
    • Получить список мнений для "Сейчас обсуждают"
    • Получить мнение по ID
    • Получить список мнений пользователя
  • Achievements
    • Получить достижение по ID
    • Получить список достижений
    • Установить saluted на true
  • Lecturers
    • Получить список лекторов
    • Получить лектора по ID
  • Tests/Games/Quizzes/Exams
    • Введение
    • Quizzes
      • v5
        • Bookmark Templates
          • Получить шаблон для создания закладки по ID квиза и ID вопроса
      • Получить данные по квизу по ID
      • Получить результат квиза по ID
    • Plays
      • Начать квиз для данного пользователя
      • Получить вопрос теста по ID
      • Завершить текущий квиз
      • Отправить ответ на вопрос
      • [Deprecated] Начать квиз для данного пользователя - V3
    • In-Player Quiz
      • v5
        • In-Player Quiz: описание модуля
        • Get In-Player Quiz questions
          GET
        • Complete In-Player Quiz Question
          POST
  • Playlist
    • v5
      • Документация
      • Summary
        • Получить начальную пагинацию плейлиста саммари.
        • Получить следующую пагинацию плейлиста саммари.
        • Получить информацию о видео из плейлиста.
      • Favorites
        • Получить начальную пагинацию плейлиста избранного.
        • Получить cледующую пагинацию плейлиста избранного.
  • Subscription Certificates
    • Инфа о сетификате
    • Создать подарочный сертификат
    • Получение сертификатов пользователя
    • Активировать сертификат
  • Orders
  • Rating
    • Бусты
    • v5
      • Получить модификаторы для баллов
      • Получить активный буст баллов
    • unspecified
      • Получить топ-100 пользователей рейтинга
      • Получить историю рейтингов
      • Переключает флаг пользователя на отображение топа предыдущего месяца
  • In-Design
    • Messaging
      • Введение
      • Триггеры
      • Сегментация
      • Способы доставки
      • Представление и Виджеты
  • Success-Story
    • Получить историю успеха
  • Intensives
    • Получить все интенсивы
  • Mascot
    • Получить текущий статус маскота
    • Получить прогресс пользователя по текущему статусу маскота
    • Получить все статусы маскота
    • Получить скиллы маскота
    • Получить модификаторы по скиллам маскота
    • Получить график статистики по скиллам маскота
    • Получить скилл, который относится к заданной категории.
  • Animations
    • Получить анимации
    • Получить анимацию по ID
  • Quiz-Card
    • Получить квиз карточки по id саммари или slug для текущего клиента
    • Получить группы квиз карточек по саммари пользователя доступные на текущую дату
    • Отвязать(удалить) выбранные карточки из групп карточек пользователя
  • Files
    • Загрузить файл
  • Mini-Tasks
    • Получить мини-задания
  • Live Activity
    • Зарегистрировать токен LA за пользователем
  • Recommendations
    • AI Рекомендации
    • Получить AI рекомендации
  • Timecodes
    • Получить список аннотаций для лекции/видео
  • Archetypes
    • Эпохи
    • Персонажи
    • Навыки
    • Notifications
      • Получить список уведомлений от Маскота
      • Получить кол-во уведомлений от Маскота
      • Отметить уведомления от Маскота просмотренными
    • Skills
      • SkillLevels
        • Запросить генерацию сертификата по уровню навыка
        • Пометить уровень навыка как просмотренный
        • Получить SkillLevel2DTO по ID уровня
        • Получить список SkillLevel1DTO
      • SkillSuperPowers
        • Получить список всех суперспособностей
        • Пометить суперспособность как просмотренную
      • Получить список SkillProgressDTO
      • Получить SkillProfessionDTO по ID навыка
      • Получить лекцию навыка по ID навыка и индексу
      • Получить навык по идентификатору
      • Получить навык по ID категории
    • Characters
      • Получить диалог с персонажом по его ID
      • Получить персонажа по его ID
      • Получить открытых персонажей
      • Обновить персонажа по ID
    • Получить текущую эпоху
  • Schemas
    • Core
      • LanguageText
      • Metadata
      • ApiError
      • File
      • AnimationProperties
      • Metadata2
    • Basic
      • Ranges
        • DateRange
      • GradientV2
      • Gradient
      • Color
    • Resources
      • Courses
        • Course
        • CourseListItem
      • Recommendations
        • RecommendedCourseListItem
    • Schemas
      • Achievements
        • Achievement
      • Animations
        • Animation
        • AnimationListItem
      • Playlist
        • v5
          • Summary
            • Cursor
          • Favorites
            • Cursor
          • Video
      • Subscription
        • SubscriptionInfo
        • UserSubscriptionInfo
      • Lecturers
        • LecturerListItem.Invalid
        • Lecturer
      • ComboSummary
        • ComboSummaryListItem
        • ComboProgressItem
        • ComboSummary
      • Feedbacks
        • Feedback
        • FeedbackComment
        • UserFeedback
        • FeedbackAchievement
        • FeedbackListItem
        • FeedbackDetails
        • FeedbackUser
      • KnowledgeSprint
        • KnowledgeSprintCalendar
        • KnowledgeSprintTopUser
        • KnowledgeSprintStats
      • MiniTasks
        • MiniTask
      • Level System
        • LevelStage
        • GiftCategory
        • Gift
      • User
        • User
        • ActiveUser
        • Award
      • Tests | Quizzes
        • v5
          • In-Player Quiz
            • InPlayerQuiz
            • InPlayerQuizQuestion
            • InPlayerQuizAnswer
            • InPlayerQuizCompletedState
        • QuizInfo
        • QuestionInfo
        • QuizPlay
        • QuizResult
        • QuizFinishState
      • Subscription Certificates
        • Certificate
        • CreateCertificate
      • Rating
        • RatingInfo
        • RatingTopUsers
        • RatingTopUser
        • ActiveBoost
      • SuccessStory
        • SuccessStory
      • Intensive
        • Intensive
      • Notifications
        • NotificationsUnreadCount
        • Notification
      • Archetypes
        • Notifications
          • ArchetypeNotification
        • Skills
          • SkillProgressDTO
          • SkillProfessionDTO
          • SkillCourseItem
          • Superpower
          • SkillLevel1DTO
          • SkillLevel2DTO
          • Skill
        • Characters
          • Character
          • UnlockedCharacters
          • CharacterChat
          • CharacterChatMessageItem
          • NextCharacterProgress
          • CharacterDetails
        • UserSkillLevel
        • Epoch
      • Samagonka_Duplicate
        • SummaraceDay
        • SummaraceDays
        • SummaraceTarget
        • KnowledgeSprintData
        • SummaraceDataUser
        • SummaraceTopInfo
        • TopHistoryData
        • TopCourse
      • Mascot
        • Graph
        • Skills
          • MascotSkillModifiers
          • MaskotSkill
        • Statuses
          • MaskotStatusListItem
          • MascotStatus
          • MascotStatusProgress
        • MascotStats
      • Quiz-Card
        • QuizCard
        • QuizCardGroup
        • QuizCardGroupSummaryInfo
      • Categories
        • Category
    • Timecodes
      • Timecode
    • Bookmark
    • BookmarkTemplate
  1. v5

In-Player Quiz: описание модуля

Назначение#

In-Player Quiz — это интерактивные вопросы во время просмотра лекции. Модуль помогает удерживать внимание пользователя и закреплять ключевые факты прямо в момент просмотра.
За корректно завершенные вопросы пользователь получает баллы рейтинга. Начисление происходит по каждому вопросу отдельно, сразу после терминального результата.

Где используется#

In-Player Quiz привязан к конкретной лекции/видео.
In-Player Quiz не является экзаменом курса и не заменяет тренажер.
Для одной лекции может быть только один активный In-Player Quiz.
Клиент запрашивает In-Quiz по идентификатору лекции: lectureId.

Основные сущности#

InPlayerQuiz#

Контейнер вопросов для одной лекции.
Содержит:
id;
список вопросов.

InPlayerQuizQuestion#

Вопрос, который нужно показать на конкретном моменте видео.
Содержит:
id
timestamp — позиция на видео, в микросекундах
duration — время показа, в микросекундах
text — текст вопроса
ratingScore — количество баллов рейтинга за правильный ответ
type — тип вопроса: basic или super
state — состояние вопроса для текущего пользователя
answers — список вариантов ответа
Порядок вопросов и ответов определяется порядком элементов в массиве.

InPlayerQuizAnswer#

Вариант ответа.
В клиентском API содержит только:
id
text
Признак правильности ответа не возвращается до завершения вопроса.

InPlayerQuizQuestionState#

Состояние вопроса для текущего пользователя.
Содержит:
status
selectedAnswerId
correctAnswerId
correctAnswerId возвращается только после терминального результата, чтобы клиент мог подсветить правильный ответ.

Статусы вопроса#

pending — вопрос еще не завершен
right — пользователь выбрал правильный ответ
failed — пользователь выбрал неправильный ответ, время закончилось или вопрос смахнули
Все статусы, кроме pending, являются терминальными. Терминальный результат не должен изменяться повторными запросами.

Пропущенные вопросы#

Отдельного статуса missed нет.
Если пользователь перемотал видео, ушел в PiP или по другой причине не увидел вопрос, вопрос остается в статусе pending. В конце просмотра клиент показывает финальную очередь из вопросов, которые все еще находятся в pending.
Финальная очередь запускается:
после последнего вопроса
или при достижении 90% просмотра лекции
Клиент должен запустить финальную очередь только один раз в рамках текущего сценария просмотра.

Пользовательский сценарий#

1.
Клиент запрашивает In-Quiz для лекции
2.
Если In-Quiz не найден, backend возвращает 404
3.
Если In-Quiz есть, клиент отслеживает timestamp вопросов во время просмотра
4.
На нужной позиции видео клиент показывает вопрос
5.
Пользователь выбирает ответ, пропускает вопрос по таймауту или закрывает его
6.
Клиент отправляет терминальный результат вопроса
7.
Backend сохраняет результат и, если ответ правильный, атомарно начисляет баллы рейтинга
8.
Backend возвращает обновленное состояние вопроса
9.
Клиент локально пересчитывает общий прогресс In-Quiz по состояниям вопросов
10.
В конце просмотра клиент показывает финальную очередь оставшихся pending вопросов

Начисление рейтинга#

Баллы рейтинга начисляются только за right
failed завершают вопрос без начисления баллов
Начисление происходит сразу после завершения конкретного вопроса
Повторная отправка результата по уже завершенному вопросу не начисляет баллы повторно

Что считает клиент#

Backend не возвращает агрегированное состояние In-Player Quiz.
Клиент сам выводит из списка вопросов:
завершен ли весь In-Quiz
количество отвеченных вопросов
количество правильных ответов
количество ошибок
количество оставшихся вопросов
сумму набранных баллов рейтинга
данные для финального экрана
Это уменьшает дублирование данных в контракте и убирает риск рассинхронизации агрегатов с состоянием вопросов.

Ответственность backend#

Backend отвечает за:
выдачу активного In-Quiz для лекции
хранение терминальных результатов вопросов
защиту от повторного начисления рейтинга
атомарное сохранение правильного результата и рейтинговой транзакции
возврат correctAnswerId только после терминального результата
валидацию админских данных In-Quiz

Ответственность клиента#

Клиент отвечает за:
локальный onboarding
локальную настройку отключения In-Quiz
показ вопросов по timestamp
обработку таймаута и закрытия вопроса
запуск финальной очереди pending вопросов
расчет агрегатов и финального экрана из списка вопросов

API поверхность#

Клиентские endpoint'ы:
GET /in-player-quiz — получить In-Quiz для лекции и состояния вопросов текущего пользователя
POST /in-player-quiz/questions/{questionId}/result — завершить вопрос

Что намеренно не добавляем#

Отдельный endpoint старта In-Player Quiz
Отдельный endpoint финальной очереди
Отдельный endpoint summary/final screen
Синхронизацию onboarding
Синхронизацию пользовательской настройки отключения In-Player Quiz

Требования#

Для правильной работы API требуется провести миграцию ID лекций. Необходимо сделать так, чтобы ID лекций был глобально уникальным. Источник
Modified at 2026-07-27 14:04:06
Previous
[Deprecated] Начать квиз для данного пользователя - V3
Next
Get In-Player Quiz questions
Built with