---
title: "Update quiz metadata"
method: PATCH
path: "/api/v1/quizzes/{id}"
tags: ["Quizzes"]
---

# Update quiz metadata

`PATCH /api/v1/quizzes/{id}`

## Request

- Base URL: `https://www.quiz.video`
- URL: `https://www.quiz.video/api/v1/quizzes/{id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://www.quiz.video/api/auth/oauth2/authorize`, token URL `https://www.quiz.video/api/auth/oauth2/token`, scopes: `api:read`)
  - OpenID Connect (`https://www.quiz.video/.well-known/openid-configuration`, scopes: `api:read`)

## Path parameters

- `id` string, required

## Request body

- UpdateQuizRequest
  - `title` string
  - `description` string
  - `format` string
  - `quizType` string
  - `isPublished` boolean
  - `backgroundMusicId` integer, nullable: Omit to leave unchanged; set null for silent.
  - `musicVolume` number
  - `template` string
  - `countdownSeconds` integer
  - `themeDescription` string: Natural-language prompt used to generate and save a custom visual theme.
  - `themeCustomization` ThemeCustomization
    - `name` string
    - `description` string
    - `accentColorOverride` string
    - `backgroundColorOverride` string
    - `secondaryColorOverride` string
    - `fontFamilyOverride` 'Inter' | 'Poppins' | 'Roboto' | 'Montserrat' | 'Open Sans' | 'Lato' | 'Oswald' | 'Raleway' | 'Playfair Display' | 'Source Sans Pro'

## Response `200`

Successful response

- object
  - `data` Quiz, required
    - `id` string
    - `title` string
    - `description` string, nullable
    - `slug` string
    - `format` string
    - `quizType` string
    - `template` string, nullable
    - `themeCustomization` ThemeCustomization
      - `name` string
      - `description` string
      - `accentColorOverride` string
      - `backgroundColorOverride` string
      - `secondaryColorOverride` string
      - `fontFamilyOverride` 'Inter' | 'Poppins' | 'Roboto' | 'Montserrat' | 'Open Sans' | 'Lato' | 'Oswald' | 'Raleway' | 'Playfair Display' | 'Source Sans Pro'
    - `difficulty` string, nullable
    - `backgroundMusicId` integer, nullable
    - `musicVolume` number
    - `isPublished` boolean
    - `publishedAt` string, date-time, nullable
    - `views` integer
    - `plays` integer
    - `thumbnailUrl` string, uri, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400`: Request validation failed (code VALIDATION_ERROR or a field-specific code)
- `401`: Missing or invalid credentials (code UNAUTHORIZED)
- `403`: Credentials are valid but lack access or scope (code FORBIDDEN or INSUFFICIENT_SCOPE)
- `404`: Resource not found (code NOT_FOUND)
- `429`: API key rate limit exceeded (code RATE_LIMITED)
- `500`: Unexpected server error (code INTERNAL_ERROR)

---

[API](https://skmtc.dev/quiz/apis/quiz-video-api.md) · [All operations](https://skmtc.dev/quiz/apis/quiz-video-api/llms.txt) · [OpenAPI document](https://skmtc.dev/quiz/apis/quiz-video-api/revisions/f615216b844d?raw)
