Quest evidence
Video evidence
API type: video. Reward attention followed by a comprehension check.
On this page
Connect playback to verification
The participant starts the quest, watches the required media, answers the question and submits completion. In a custom player, startQuest(id, { watchDuration }) marks the session as media-driven. Feed actual player progress to syncMediaProgress(currentTime, duration); do not advance it with an unrelated timer or allow seeking to count as watching.
The public progress endpoint accepts watch_duration with external_user_id. Report actual watched time during playback, and include the applicable watch evidence on completion. Retain any delivery token from start when your environment requires it.
Headless progress — using questRequest from the Quest evidence overview
// Call from your playback integration with measured watch time.
await questRequest(config, questId, "progress", { watch_duration: watchedSeconds });
// After the required watch and the user's answer:
await questRequest(config, questId, "complete", {
question_id: question.id,
user_input: selectedOptionId,
watch_duration: watchedSeconds,
});Verify before publishing
- Confirm the cover, playback and audio work on desktop and mobile.
- A correct answer after sufficient watching can complete; an incorrect answer or insufficient watch evidence must not reward.
- Test pause, seek, app backgrounding, expired sessions and a repeated completion. Do not grant rewards just because the video ended.