Skip to main content
PATCH
/
api
/
v1
/
themes
/
{id}
Update a theme
curl --request PATCH \
  --url https://quizquail.com/api/v1/themes/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Midnight Neon",
  "primaryColor": "#3B82F6",
  "secondaryColor": "#6366F1",
  "backgroundColor": "#0A0F1C",
  "textColor": "#F1F5F9",
  "accentColor": "#38BDF8",
  "fontFamily": "Inter",
  "backgroundImageUrl": "<string>",
  "isPublic": false,
  "soundPack": "default",
  "effects": {
    "backgroundImageOpacity": 0.4,
    "backgroundStyle": "blobs",
    "backgroundBlobCount": 3,
    "backgroundBlobOpacity": 0.24,
    "backgroundAnimationSpeed": 1,
    "backgroundGradientIntensity": 0.13,
    "backgroundVignetteIntensity": 0.7,
    "gradientAngle": 135,
    "gradientAnimation": true,
    "backgroundPattern": "none",
    "backgroundPatternOpacity": 0.12,
    "backgroundPatternScale": 1,
    "particleStyle": "none",
    "particleDensity": 0.3,
    "particleSpeed": 1,
    "particleColor": "theme",
    "optionCardVariant": "standard",
    "optionCardOpacity": 0.33,
    "optionStripeWidth": 4,
    "titleLetterSpacing": "-0.02em",
    "textStyle": "solid",
    "titleTextStyle": "solid",
    "textShadowStyle": "subtle",
    "optionFontWeight": 400,
    "frameStyle": "none",
    "frameColor": "#FFFFFF",
    "frameOpacity": 0.5,
    "introRingCount": 3,
    "introParticleCount": 8,
    "outroConfettiCount": 12,
    "outroBurstCount": 3,
    "celebrationStyle": "pulse",
    "celebrationIntensity": 0.7,
    "correctAnswerGlowSize": 30,
    "revealSuspenseFrames": 45,
    "revealDimIntensity": 0.3,
    "urgencyStyle": "vignette",
    "urgencyThreshold": 3,
    "urgencyColor": "#EF4444",
    "transitionStyle": "fade",
    "grainOverlay": "none",
    "grainStyle": "film",
    "audioReactive": false,
    "audioReactiveIntensity": 0.5,
    "audioReactiveBpm": 120
  }
}
'
{
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "primaryColor": "<string>",
    "secondaryColor": "<string>",
    "backgroundColor": "<string>",
    "textColor": "<string>",
    "accentColor": "<string>",
    "fontFamily": "<string>",
    "backgroundImageUrl": "<string>",
    "isPublic": true,
    "effects": {
      "backgroundImageOpacity": 0.4,
      "backgroundStyle": "blobs",
      "backgroundBlobCount": 3,
      "backgroundBlobOpacity": 0.24,
      "backgroundAnimationSpeed": 1,
      "backgroundGradientIntensity": 0.13,
      "backgroundVignetteIntensity": 0.7,
      "gradientAngle": 135,
      "gradientAnimation": true,
      "backgroundPattern": "none",
      "backgroundPatternOpacity": 0.12,
      "backgroundPatternScale": 1,
      "particleStyle": "none",
      "particleDensity": 0.3,
      "particleSpeed": 1,
      "particleColor": "theme",
      "optionCardVariant": "standard",
      "optionCardOpacity": 0.33,
      "optionStripeWidth": 4,
      "titleLetterSpacing": "-0.02em",
      "textStyle": "solid",
      "titleTextStyle": "solid",
      "textShadowStyle": "subtle",
      "optionFontWeight": 400,
      "frameStyle": "none",
      "frameColor": "#FFFFFF",
      "frameOpacity": 0.5,
      "introRingCount": 3,
      "introParticleCount": 8,
      "outroConfettiCount": 12,
      "outroBurstCount": 3,
      "celebrationStyle": "pulse",
      "celebrationIntensity": 0.7,
      "correctAnswerGlowSize": 30,
      "revealSuspenseFrames": 45,
      "revealDimIntensity": 0.3,
      "urgencyStyle": "vignette",
      "urgencyThreshold": 3,
      "urgencyColor": "#EF4444",
      "transitionStyle": "fade",
      "grainOverlay": "none",
      "grainStyle": "film",
      "audioReactive": false,
      "audioReactiveIntensity": 0.5,
      "audioReactiveBpm": 120
    },
    "userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "soundPack": "<unknown>"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.quiz-quail.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key authentication. Prefix your key with Bearer in the Authorization header.

Keys follow the format qq_... and can be scoped to specific permissions.

Path Parameters

id
string<uuid>
required

Resource UUID

Example:

"550e8400-e29b-41d4-a716-446655440000"

Body

application/json
name
string
Required string length: 1 - 100
Example:

"Midnight Neon"

primaryColor
string
default:#3B82F6
Pattern: ^#[0-9a-fA-F]{6}$
secondaryColor
string
default:#6366F1
Pattern: ^#[0-9a-fA-F]{6}$
backgroundColor
string
default:#0A0F1C
Pattern: ^#[0-9a-fA-F]{6}$
textColor
string
default:#F1F5F9
Pattern: ^#[0-9a-fA-F]{6}$
accentColor
string
default:#38BDF8
Pattern: ^#[0-9a-fA-F]{6}$
fontFamily
string
default:Inter
backgroundImageUrl
string<uri> | null
isPublic
boolean
default:false
soundPack
enum<string>
default:default
Available options:
default,
none
effects
object

Visual effects configuration — all 42 fields are optional with sensible defaults

Response

Updated theme

data
object
required