curl --request GET \
--url https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "quiz_instance",
"id": "sched_xyz789",
"quiz_id": "quiz_abc123",
"status": "active",
"timezone": "America/New_York",
"schedule": {
"days": [
"monday",
"wednesday",
"friday"
],
"time": "09:00"
},
"recipients": {
"type": "slackChannel",
"slackChannelId": "C1234567890",
"excludeUserWithValues": [
{
"key": "team",
"value": "Engineering",
"matchMethod": "equals"
}
],
"includeUserWithValues": [
{
"key": "team",
"value": "Engineering",
"matchMethod": "equals"
}
],
"filters": {
"groups": [
"<string>"
],
"managerStatus": "isManager",
"countries": [
"<string>"
],
"workLocations": [
"<string>"
],
"excludeUsers": [
"<string>"
]
}
},
"schedule_at": "2026-06-15T09:00:00Z",
"play_mode": "one_question_per_day",
"speed": {
"mode": "none",
"cap": 0.5,
"window_minutes": 60
},
"lateness": {
"mode": "none",
"credit": 0.5
},
"participant_standings": "leaderboard",
"challenge_id": "cmp_abc123",
"expiry": {
"amount": 24,
"unit": "hours"
},
"due": {
"amount": 24,
"unit": "hours"
},
"intro_message": "<string>",
"mandatory_completion": {
"enabled": false,
"reminder_interval_days": 3,
"max_reminder_window_days": 30,
"custom_reminder_message": null
},
"feedback_survey": {
"enabled": false,
"question_text": "How was this quiz?",
"question_type": "emoji_1_to_5",
"allow_comments": true,
"question_hint": null,
"choices": [
"Too easy",
"Just right",
"Too hard"
],
"allow_multiple": false
},
"next_trigger_at": "2026-02-01T09:00:00.000Z",
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-01-20T14:00:00.000Z",
"meta": {
"permissions": {
"can_view_results": true,
"can_clone": true,
"can_manage": true,
"can_edit": true,
"can_pause": true,
"can_resume": true,
"can_delete": true,
"can_activate": true,
"can_manage_admins": true
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}Get quiz instance
Retrieve a specific instance by ID.
curl --request GET \
--url https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.doozy.live/v1/quizzes/{quizId}/instances/{instanceId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "quiz_instance",
"id": "sched_xyz789",
"quiz_id": "quiz_abc123",
"status": "active",
"timezone": "America/New_York",
"schedule": {
"days": [
"monday",
"wednesday",
"friday"
],
"time": "09:00"
},
"recipients": {
"type": "slackChannel",
"slackChannelId": "C1234567890",
"excludeUserWithValues": [
{
"key": "team",
"value": "Engineering",
"matchMethod": "equals"
}
],
"includeUserWithValues": [
{
"key": "team",
"value": "Engineering",
"matchMethod": "equals"
}
],
"filters": {
"groups": [
"<string>"
],
"managerStatus": "isManager",
"countries": [
"<string>"
],
"workLocations": [
"<string>"
],
"excludeUsers": [
"<string>"
]
}
},
"schedule_at": "2026-06-15T09:00:00Z",
"play_mode": "one_question_per_day",
"speed": {
"mode": "none",
"cap": 0.5,
"window_minutes": 60
},
"lateness": {
"mode": "none",
"credit": 0.5
},
"participant_standings": "leaderboard",
"challenge_id": "cmp_abc123",
"expiry": {
"amount": 24,
"unit": "hours"
},
"due": {
"amount": 24,
"unit": "hours"
},
"intro_message": "<string>",
"mandatory_completion": {
"enabled": false,
"reminder_interval_days": 3,
"max_reminder_window_days": 30,
"custom_reminder_message": null
},
"feedback_survey": {
"enabled": false,
"question_text": "How was this quiz?",
"question_type": "emoji_1_to_5",
"allow_comments": true,
"question_hint": null,
"choices": [
"Too easy",
"Just right",
"Too hard"
],
"allow_multiple": false
},
"next_trigger_at": "2026-02-01T09:00:00.000Z",
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-01-20T14:00:00.000Z",
"meta": {
"permissions": {
"can_view_results": true,
"can_clone": true,
"can_manage": true,
"can_edit": true,
"can_pause": true,
"can_resume": true,
"can_delete": true,
"can_activate": true,
"can_manage_admins": true
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "No such quiz: quiz_abc123",
"param": "id",
"doc_url": "https://docs.doozy.live/api/errors#resource_not_found"
}
}Authorizations
API key for authentication. Generate keys in the Doozy dashboard.
Path Parameters
The ID of the quiz
1 - 128^[A-Za-z0-9_-]+$"quiz_abc123"
The ID of the instance
1 - 128^[A-Za-z0-9_-]+$"sched_xyz789"
Response
Instance details
Object type identifier
quiz_instance "quiz_instance"
Unique instance identifier
"sched_xyz789"
The quiz this schedule is for
"quiz_abc123"
Current status of the schedule
active, paused, cancelled, completed "active"
IANA timezone identifier
"America/New_York"
Recurring schedule (days + time), or null for full_quiz instances
Show child attributes
Show child attributes
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
Show child attributes
Show child attributes
UTC datetime for one-off schedules (ISO 8601), or null for recurring schedules
"2026-06-15T09:00:00Z"
Controls how quiz questions are delivered: one question per scheduled day, one round per day, or the entire quiz at once.
one_question_per_day, one_round_per_day, full_quiz "one_question_per_day"
Speed bonus for this schedule (off by default).
Show child attributes
Show child attributes
Late-submission penalty for this schedule (off by default).
Show child attributes
Show child attributes
How people see standings. leaderboard: full ranked board for everyone. own_progress: each person sees their own rank (#3 of 24), not the board. hidden: results only — no rank, no board.
leaderboard, own_progress, hidden Challenge this schedule belongs to, or null.
"cmp_abc123"
Question expiry window, or null if no expiry
Show child attributes
Show child attributes
Answer due window, or null if no deadline
Show child attributes
Show child attributes
Intro message sent with the first question
Mandatory completion settings, or null if completion is optional
Show child attributes
Show child attributes
Post-quiz feedback survey config, or null if no feedback is collected
Show child attributes
Show child attributes
When the next question will be delivered (ISO 8601), or null if paused/cancelled
"2026-02-01T09:00:00.000Z"
When the schedule was created (ISO 8601)
"2026-01-15T10:30:00.000Z"
When the schedule was last updated (ISO 8601)
"2026-01-20T14:00:00.000Z"
What the requesting user can do with this quiz instance (edit, pause, resume, delete, activate, manage admins). Use these to drive UI affordances.
Show child attributes
Show child attributes
Was this page helpful?