Raw schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Human-readable quiz title."
},
"description": {
"type": "string",
"description": "Optional longer description shown on the quiz page."
},
"format": {
"type": "string",
"enum": [
"tiktok",
"youtube"
],
"description": "Output aspect ratio: \"tiktok\" (9:16 vertical) or \"youtube\" (16:9 horizontal)."
},
"quizType": {
"type": "string",
"enum": [
"multiple_choice",
"reveal_answer",
"picture_guess"
],
"description": "Quiz mechanic: multiple_choice, reveal_answer, or picture_guess."
},
"template": {
"type": "string",
"description": "Visual template id (e.g. \"neon\", \"minimal\")."
},
"countdownSeconds": {
"type": "number",
"minimum": 3,
"maximum": 15,
"description": "Seconds of countdown shown before each question (3–15)."
},
"difficulty": {
"type": "string",
"enum": [
"easy",
"medium",
"hard",
"rising"
],
"description": "Target difficulty level for the generated/created quiz."
},
"backgroundMusicId": {
"type": [
"number",
"null"
],
"description": "Background music track id from /api/v1/music. Omit to use the default YouTube-safe shared track; set null for silent."
},
"musicVolume": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Background music volume from 0 (silent) to 1 (full). Default 0.15."
},
"questions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"questionText": {
"type": "string",
"minLength": 1,
"description": "The question prompt shown to viewers."
},
"ttsText": {
"type": "string",
"description": "Optional exact narration line for this question."
},
"imagePath": {
"type": "string",
"description": "Optional primary image URL shown with the question (used by picture_guess quizzes)."
},
"order": {
"type": "number",
"description": "1-indexed display order of the question within the quiz."
},
"duration": {
"type": "number",
"minimum": 1,
"description": "Seconds viewers have to answer this question (must be >= 1)."
},
"answers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"answerText": {
"type": "string",
"minLength": 1,
"description": "Answer text shown to viewers."
},
"isCorrect": {
"type": "boolean",
"description": "Whether this answer is the correct one for the question."
},
"order": {
"type": "number",
"description": "1-indexed display order of the answer within the question."
},
"additionalInfo": {
"type": "string",
"description": "Optional explanation or trivia shown after the answer is revealed."
},
"ttsText": {
"type": "string",
"description": "Optional exact narration line for the answer reveal."
}
},
"required": [
"answerText",
"isCorrect"
],
"additionalProperties": false
},
"description": "Answer options for this question; exactly one should be marked isCorrect=true."
},
"images": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Absolute URL of the image asset."
},
"alt": {
"type": "string",
"description": "Alt text describing the image for accessibility."
},
"source": {
"type": "string",
"description": "Image source label, e.g. \"upload\", \"unsplash\", \"generated\"."
},
"sourceUrl": {
"type": "string",
"description": "Original attribution URL for the image, if any."
},
"width": {
"type": "number",
"description": "Image width in pixels."
},
"height": {
"type": "number",
"description": "Image height in pixels."
}
},
"required": [
"url"
],
"additionalProperties": true
},
"description": "Additional images attached to the question (in addition to imagePath)."
}
},
"required": [
"questionText"
],
"additionalProperties": true
},
"description": "Optional initial questions with their answers and images."
},
"themeDescription": {
"type": "string",
"description": "Natural-language custom visual theme prompt. Example: \"golden luxury game show\", \"ocean glass\", or \"cyber neon\". The server saves the generated themeCustomization and applies it automatically."
},
"themeCustomization": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Optional saved theme label, e.g. \"Golden Theme\"."
},
"description": {
"type": "string",
"description": "Optional natural-language source description for the custom theme."
},
"accentColorOverride": {
"type": "string",
"pattern": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
"description": "Primary accent hex color, e.g. \"#F6C945\"."
},
"secondaryColorOverride": {
"type": "string",
"pattern": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
"description": "Secondary accent hex color."
},
"backgroundColorOverride": {
"type": "string",
"pattern": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
"description": "Solid background hex color."
},
"fontFamilyOverride": {
"type": "string",
"enum": [
"Inter",
"Poppins",
"Roboto",
"Montserrat",
"Open Sans",
"Lato",
"Oswald",
"Raleway",
"Playfair Display",
"Source Sans Pro"
],
"description": "Approved font family used for question and answer text."
}
},
"additionalProperties": false,
"description": "Explicit custom theme to save and apply to the quiz. Invalid colors/fonts are ignored by the API sanitizer."
}
},
"required": [
"title"
],
"additionalProperties": true
}