> ## Documentation Index
> Fetch the complete documentation index at: https://docs.youka.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List presets



## OpenAPI

````yaml /openapi.json get /presets
openapi: 3.1.0
info:
  title: Youka REST API
  version: v1
  description: REST API for project-based karaoke creation, styling, media, and exports.
servers:
  - url: https://api.youka.io/api/v1
    description: Production
  - url: http://localhost:3003/api/v1
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Account
    description: Inspect the API key's account identity.
  - name: Uploads
    description: Upload source audio or video before creating a project.
  - name: Credits
    description: Inspect available credit balance.
  - name: Billing
    description: Create checkout sessions and manage billing.
  - name: Projects
    description: Create projects and read the long-lived project state.
  - name: Tasks
    description: Poll async task progress until it reaches a terminal state.
  - name: Exports
    description: Create exports and fetch fresh download URLs.
  - name: Presets
    description: Manage reusable karaoke styling presets.
  - name: Media
    description: Manage uploaded reusable media.
  - name: Project Settings
    description: Read and update a project's active settings.
paths:
  /presets:
    get:
      tags:
        - Presets
      summary: List presets
      operationId: listPresets
      responses:
        '200':
          description: Preset list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Preset'
components:
  schemas:
    Preset:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        isDefault:
          type: boolean
        preset:
          type: object
          properties:
            aspectRatio:
              default: '16:9'
              type: string
              enum:
                - '16:9'
                - '9:16'
                - '4:3'
                - '1:1'
            layout:
              default:
                type: karaoke
                autoSplitLongLines: true
                linesPerScreen: 2
                alignment: bottom
                paddingHorizontal: 0
                paddingVertical: 5
                languageSpacing: 5
                containerHeight: 100
                scrollingFadeStrength: 0.5
                lineTransition: fade
                anticipationBuffer: 3
              type: object
              properties:
                type:
                  default: karaoke
                  type: string
                  enum:
                    - single
                    - duet
                    - karaoke
                    - scrolling
                    - multilingual
                    - chords
                autoSplitLongLines:
                  default: true
                  type: boolean
                linesPerScreen:
                  default: 2
                  anyOf:
                    - type: number
                      const: 2
                    - type: number
                      const: 3
                    - type: number
                      const: 4
                    - type: number
                      const: 5
                    - type: number
                      const: 6
                    - type: number
                      const: 7
                    - type: number
                      const: 8
                alignment:
                  default: bottom
                  type: string
                  enum:
                    - top
                    - center
                    - bottom
                paddingHorizontal:
                  default: 0
                  type: number
                paddingVertical:
                  default: 5
                  type: number
                languageSpacing:
                  default: 5
                  type: number
                  minimum: 0
                  maximum: 10
                containerHeight:
                  default: 100
                  type: number
                  minimum: 20
                  maximum: 100
                scrollingFadeStrength:
                  default: 0.5
                  type: number
                  minimum: 0
                  maximum: 1
                lineTransition:
                  default: fade
                  type: string
                  enum:
                    - none
                    - fade
                    - slide
                    - dim
                duetSettings:
                  type: object
                  properties:
                    overlapBehavior:
                      default: all-style
                      type: string
                      enum:
                        - both
                        - all-style
                  required:
                    - overlapBehavior
                  additionalProperties: false
                multilingualSettings:
                  type: object
                  properties: {}
                  additionalProperties: false
                anticipationBuffer:
                  default: 3
                  type: number
                  minimum: 0
                  maximum: 10
              required:
                - type
                - autoSplitLongLines
                - linesPerScreen
                - alignment
                - paddingHorizontal
                - paddingVertical
                - languageSpacing
                - containerHeight
                - scrollingFadeStrength
                - lineTransition
                - anticipationBuffer
              additionalProperties: false
            background:
              default:
                type: auto
              oneOf:
                - type: object
                  properties:
                    type:
                      type: string
                      const: auto
                  required:
                    - type
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      const: color
                    color:
                      default: '#000000'
                      type: string
                  required:
                    - type
                    - color
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      const: gradient
                    angle:
                      default: 0
                      type: number
                    colors:
                      default:
                        - '#000000'
                        - '#333333'
                      type: array
                      items:
                        type: string
                  required:
                    - type
                    - angle
                    - colors
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      const: image
                    url:
                      type: string
                    objectFit:
                      default: cover
                      type: string
                      enum:
                        - contain
                        - cover
                        - fill
                    blur:
                      type: number
                    dim:
                      type: number
                  required:
                    - type
                    - url
                    - objectFit
                  additionalProperties: false
                - type: object
                  properties:
                    type:
                      type: string
                      const: video
                    url:
                      type: string
                    objectFit:
                      default: cover
                      type: string
                      enum:
                        - contain
                        - cover
                        - fill
                    dim:
                      type: number
                  required:
                    - type
                    - url
                    - objectFit
                  additionalProperties: false
            singerTextStyles:
              default: {}
              type: object
              propertyNames:
                type: number
              additionalProperties:
                type: object
                properties:
                  fontFamily:
                    default: Arimo
                    type: string
                  fontSize:
                    default: 96
                    type: number
                  fontWeight:
                    default: 700
                    type: number
                  textColor:
                    default: '#FFFFFF'
                    type: string
                  outlineColor:
                    default: '#000000'
                    type: string
                  outlineWidth:
                    default: 20
                    type: number
                  textEffect:
                    default: karaoke
                    type: string
                    enum:
                      - none
                      - karaoke
                      - highlight
                  activeLineColor:
                    default: '#fff09a'
                    type: string
                  effectColor:
                    default: '#2185D0'
                    type: string
                  backgroundColor:
                    default: transparent
                    type: string
                  letterSpacing:
                    default: 0
                    type: number
                  lineSpacing:
                    default: 1.2
                    type: number
                  textCase:
                    default: none
                    type: string
                    enum:
                      - none
                      - uppercase
                      - lowercase
                      - capitalize
                  textDirection:
                    default: auto
                    type: string
                    enum:
                      - auto
                      - ltr
                      - rtl
                  shadowColor:
                    default: rgba(0,0,0,0.5)
                    type: string
                  shadowBlur:
                    default: 4
                    type: number
                  shadowOffsetX:
                    default: 0
                    type: number
                  shadowOffsetY:
                    default: 0
                    type: number
                  shadowOpacity:
                    type: number
                  duetPosition:
                    default: center
                    type: string
                    enum:
                      - top
                      - center
                      - bottom
                required:
                  - fontFamily
                  - fontSize
                  - fontWeight
                  - textColor
                  - outlineColor
                  - outlineWidth
                  - textEffect
                  - activeLineColor
                  - effectColor
                  - backgroundColor
                  - letterSpacing
                  - lineSpacing
                  - textCase
                  - textDirection
                  - shadowColor
                  - shadowBlur
                  - shadowOffsetX
                  - shadowOffsetY
                  - duetPosition
                additionalProperties: false
            languageTextStyles:
              default: {}
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: object
                properties:
                  fontFamily:
                    default: Arimo
                    type: string
                  fontSize:
                    default: 96
                    type: number
                  fontWeight:
                    default: 700
                    type: number
                  textColor:
                    default: '#FFFFFF'
                    type: string
                  outlineColor:
                    default: '#000000'
                    type: string
                  outlineWidth:
                    default: 20
                    type: number
                  textEffect:
                    default: karaoke
                    type: string
                    enum:
                      - none
                      - karaoke
                      - highlight
                  activeLineColor:
                    default: '#fff09a'
                    type: string
                  effectColor:
                    default: '#2185D0'
                    type: string
                  backgroundColor:
                    default: transparent
                    type: string
                  letterSpacing:
                    default: 0
                    type: number
                  lineSpacing:
                    default: 1.2
                    type: number
                  textCase:
                    default: none
                    type: string
                    enum:
                      - none
                      - uppercase
                      - lowercase
                      - capitalize
                  textDirection:
                    default: auto
                    type: string
                    enum:
                      - auto
                      - ltr
                      - rtl
                  shadowColor:
                    default: rgba(0,0,0,0.5)
                    type: string
                  shadowBlur:
                    default: 4
                    type: number
                  shadowOffsetX:
                    default: 0
                    type: number
                  shadowOffsetY:
                    default: 0
                    type: number
                  shadowOpacity:
                    type: number
                  duetPosition:
                    default: center
                    type: string
                    enum:
                      - top
                      - center
                      - bottom
                required:
                  - fontFamily
                  - fontSize
                  - fontWeight
                  - textColor
                  - outlineColor
                  - outlineWidth
                  - textEffect
                  - activeLineColor
                  - effectColor
                  - backgroundColor
                  - letterSpacing
                  - lineSpacing
                  - textCase
                  - textDirection
                  - shadowColor
                  - shadowBlur
                  - shadowOffsetX
                  - shadowOffsetY
                  - duetPosition
                additionalProperties: false
            chordTextStyle:
              type: object
              properties:
                fontFamily:
                  default: Arimo
                  type: string
                fontSize:
                  default: 96
                  type: number
                fontWeight:
                  default: 700
                  type: number
                textColor:
                  default: '#FFFFFF'
                  type: string
                outlineColor:
                  default: '#000000'
                  type: string
                outlineWidth:
                  default: 20
                  type: number
                textEffect:
                  default: karaoke
                  type: string
                  enum:
                    - none
                    - karaoke
                    - highlight
                activeLineColor:
                  default: '#fff09a'
                  type: string
                effectColor:
                  default: '#2185D0'
                  type: string
                backgroundColor:
                  default: transparent
                  type: string
                letterSpacing:
                  default: 0
                  type: number
                lineSpacing:
                  default: 1.2
                  type: number
                textCase:
                  default: none
                  type: string
                  enum:
                    - none
                    - uppercase
                    - lowercase
                    - capitalize
                textDirection:
                  default: auto
                  type: string
                  enum:
                    - auto
                    - ltr
                    - rtl
                shadowColor:
                  default: rgba(0,0,0,0.5)
                  type: string
                shadowBlur:
                  default: 4
                  type: number
                shadowOffsetX:
                  default: 0
                  type: number
                shadowOffsetY:
                  default: 0
                  type: number
                shadowOpacity:
                  type: number
                duetPosition:
                  default: center
                  type: string
                  enum:
                    - top
                    - center
                    - bottom
              required:
                - fontFamily
                - fontSize
                - fontWeight
                - textColor
                - outlineColor
                - outlineWidth
                - textEffect
                - activeLineColor
                - effectColor
                - backgroundColor
                - letterSpacing
                - lineSpacing
                - textCase
                - textDirection
                - shadowColor
                - shadowBlur
                - shadowOffsetX
                - shadowOffsetY
                - duetPosition
              additionalProperties: false
            overlays:
              default:
                branding:
                  logo:
                    enabled: false
                    position: bottom-right
                    paddingX: 20
                    paddingY: 20
                    scale: 0.1
                    opacity: 1
                  intro:
                    enabled: false
                    durationSeconds: 0
                    effect: fade
                    effectDuration: 0.5
                  outro:
                    enabled: false
                    durationSeconds: 0
                    effect: fade
                    effectDuration: 0.5
                titleCard:
                  enabled: true
                  duration: 5
                  autoHideBeforeLyrics: true
                  titleStyle:
                    fontFamily: Arimo
                    fontSize: 200
                    fontWeight: 700
                    textColor: '#2185D0'
                    outlineColor: '#000000'
                    outlineWidth: 30
                  artistStyle:
                    fontFamily: Arimo
                    fontSize: 150
                    fontWeight: 700
                    textColor: '#FFFFFF'
                    outlineColor: '#000000'
                    outlineWidth: 30
                leadIn:
                  enabled: true
                  beats: 4
                  minGap: 3
                  useNextSingerStyle: true
                  style:
                    color: '#2185D0'
                    outlineColor: '#000000'
                    outlineWidth: 3
                  width: 0.2
                  height: 1
                  offsetX: -2
                  offsetY: 0
                instrumentalBreak:
                  hideLyrics: true
                  minGap: 5
                  displayDuration: 3
                breakCountdown:
                  enabled: true
                  maxDuration: 3
                  animation: fade
                  useNextSingerStyle: false
                  style:
                    color: '#FFFFFF'
                    outlineColor: '#000000'
                    outlineWidth: 14.5
                  textSize: 80
                  hideBeforeEnd: 0
                breakProgressBar:
                  enabled: true
                  maxDuration: 10
                  useNextSingerStyle: false
                  style:
                    color: '#2185D0'
                    outlineColor: '#000000'
                    outlineWidth: 5
                    backgroundColor: '#FFFFFF'
                    fillColor: '#2185D0'
                  width: 47
                  height: 7.5
                  position: center
                  cornerRadius: 0
                  hideBeforeEnd: 0
              type: object
              properties:
                branding:
                  default:
                    logo:
                      enabled: false
                      position: bottom-right
                      paddingX: 20
                      paddingY: 20
                      scale: 0.1
                      opacity: 1
                    intro:
                      enabled: false
                      durationSeconds: 0
                      effect: fade
                      effectDuration: 0.5
                    outro:
                      enabled: false
                      durationSeconds: 0
                      effect: fade
                      effectDuration: 0.5
                  type: object
                  properties:
                    logo:
                      default:
                        enabled: false
                        position: bottom-right
                        paddingX: 20
                        paddingY: 20
                        scale: 0.1
                        opacity: 1
                      type: object
                      properties:
                        enabled:
                          default: false
                          type: boolean
                        url:
                          type: string
                        position:
                          default: bottom-right
                          type: string
                          enum:
                            - top-left
                            - top-right
                            - bottom-left
                            - bottom-right
                        paddingX:
                          default: 20
                          type: number
                        paddingY:
                          default: 20
                          type: number
                        scale:
                          default: 0.1
                          type: number
                        opacity:
                          default: 1
                          type: number
                      required:
                        - enabled
                        - position
                        - paddingX
                        - paddingY
                        - scale
                        - opacity
                      additionalProperties: false
                    intro:
                      default:
                        enabled: false
                        durationSeconds: 0
                        effect: fade
                        effectDuration: 0.5
                      type: object
                      properties:
                        enabled:
                          default: false
                          type: boolean
                        url:
                          type: string
                        durationSeconds:
                          default: 0
                          type: number
                        effect:
                          default: fade
                          type: string
                          enum:
                            - fade
                            - crossfade
                            - slide-left
                            - slide-right
                            - slide-up
                            - slide-down
                            - zoom-in
                            - zoom-out
                            - blur
                        effectDuration:
                          default: 0.5
                          type: number
                      required:
                        - enabled
                        - durationSeconds
                        - effect
                        - effectDuration
                      additionalProperties: false
                    outro:
                      default:
                        enabled: false
                        durationSeconds: 0
                        effect: fade
                        effectDuration: 0.5
                      type: object
                      properties:
                        enabled:
                          default: false
                          type: boolean
                        url:
                          type: string
                        durationSeconds:
                          default: 0
                          type: number
                        effect:
                          default: fade
                          type: string
                          enum:
                            - fade
                            - crossfade
                            - slide-left
                            - slide-right
                            - slide-up
                            - slide-down
                            - zoom-in
                            - zoom-out
                            - blur
                        effectDuration:
                          default: 0.5
                          type: number
                      required:
                        - enabled
                        - durationSeconds
                        - effect
                        - effectDuration
                      additionalProperties: false
                  required:
                    - logo
                    - intro
                    - outro
                  additionalProperties: false
                titleCard:
                  default:
                    enabled: true
                    duration: 5
                    autoHideBeforeLyrics: true
                    titleStyle:
                      fontFamily: Arimo
                      fontSize: 200
                      fontWeight: 700
                      textColor: '#2185D0'
                      outlineColor: '#000000'
                      outlineWidth: 30
                    artistStyle:
                      fontFamily: Arimo
                      fontSize: 150
                      fontWeight: 700
                      textColor: '#FFFFFF'
                      outlineColor: '#000000'
                      outlineWidth: 30
                  type: object
                  properties:
                    enabled:
                      default: true
                      type: boolean
                    duration:
                      default: 5
                      type: number
                    autoHideBeforeLyrics:
                      default: true
                      type: boolean
                    titleStyle:
                      default:
                        fontFamily: Arimo
                        fontSize: 200
                        fontWeight: 700
                        textColor: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 30
                      type: object
                      properties:
                        fontFamily:
                          default: Arimo
                          type: string
                        fontSize:
                          default: 150
                          type: number
                        fontWeight:
                          default: 700
                          type: number
                        textColor:
                          default: '#FFFFFF'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 4
                          type: number
                      required:
                        - fontFamily
                        - fontSize
                        - fontWeight
                        - textColor
                        - outlineColor
                        - outlineWidth
                      additionalProperties: false
                    artistStyle:
                      default:
                        fontFamily: Arimo
                        fontSize: 150
                        fontWeight: 700
                        textColor: '#FFFFFF'
                        outlineColor: '#000000'
                        outlineWidth: 30
                      type: object
                      properties:
                        fontFamily:
                          default: Arimo
                          type: string
                        fontSize:
                          default: 150
                          type: number
                        fontWeight:
                          default: 700
                          type: number
                        textColor:
                          default: '#FFFFFF'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 4
                          type: number
                      required:
                        - fontFamily
                        - fontSize
                        - fontWeight
                        - textColor
                        - outlineColor
                        - outlineWidth
                      additionalProperties: false
                  required:
                    - enabled
                    - duration
                    - autoHideBeforeLyrics
                    - titleStyle
                    - artistStyle
                  additionalProperties: false
                leadIn:
                  default:
                    enabled: true
                    beats: 4
                    minGap: 3
                    useNextSingerStyle: true
                    style:
                      color: '#2185D0'
                      outlineColor: '#000000'
                      outlineWidth: 3
                    width: 0.2
                    height: 1
                    offsetX: -2
                    offsetY: 0
                  type: object
                  properties:
                    enabled:
                      default: true
                      type: boolean
                    beats:
                      default: 4
                      type: number
                    minGap:
                      default: 3
                      type: number
                    useNextSingerStyle:
                      default: true
                      type: boolean
                    style:
                      default:
                        color: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 3
                      type: object
                      properties:
                        color:
                          default: '#2185D0'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 3
                          type: number
                      required:
                        - color
                        - outlineColor
                        - outlineWidth
                      additionalProperties: false
                    width:
                      default: 0.2
                      type: number
                    height:
                      default: 1
                      type: number
                    offsetX:
                      default: -2
                      type: number
                    offsetY:
                      default: 0
                      type: number
                  required:
                    - enabled
                    - beats
                    - minGap
                    - useNextSingerStyle
                    - style
                    - width
                    - height
                    - offsetX
                    - offsetY
                  additionalProperties: false
                instrumentalBreak:
                  default:
                    hideLyrics: true
                    minGap: 5
                    displayDuration: 3
                  type: object
                  properties:
                    hideLyrics:
                      default: true
                      type: boolean
                    minGap:
                      default: 5
                      type: number
                    displayDuration:
                      default: 3
                      type: number
                  required:
                    - hideLyrics
                    - minGap
                    - displayDuration
                  additionalProperties: false
                breakCountdown:
                  default:
                    enabled: true
                    maxDuration: 3
                    animation: fade
                    useNextSingerStyle: false
                    style:
                      color: '#FFFFFF'
                      outlineColor: '#000000'
                      outlineWidth: 14.5
                    textSize: 80
                    hideBeforeEnd: 0
                  type: object
                  properties:
                    enabled:
                      default: true
                      type: boolean
                    maxDuration:
                      default: 3
                      type: number
                    animation:
                      default: spring
                      type: string
                      enum:
                        - spring
                        - fade
                    useNextSingerStyle:
                      default: false
                      type: boolean
                    style:
                      default:
                        color: '#FFFFFF'
                        outlineColor: '#000000'
                        outlineWidth: 3
                      type: object
                      properties:
                        color:
                          default: '#FFFFFF'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 3
                          type: number
                      required:
                        - color
                        - outlineColor
                        - outlineWidth
                      additionalProperties: false
                    textSize:
                      default: 80
                      type: number
                    hideBeforeEnd:
                      default: 1
                      type: number
                  required:
                    - enabled
                    - maxDuration
                    - animation
                    - useNextSingerStyle
                    - style
                    - textSize
                    - hideBeforeEnd
                  additionalProperties: false
                breakProgressBar:
                  default:
                    enabled: true
                    maxDuration: 10
                    useNextSingerStyle: false
                    style:
                      color: '#2185D0'
                      outlineColor: '#000000'
                      outlineWidth: 5
                      backgroundColor: '#FFFFFF'
                      fillColor: '#2185D0'
                    width: 47
                    height: 7.5
                    position: center
                    cornerRadius: 0
                    hideBeforeEnd: 0
                  type: object
                  properties:
                    enabled:
                      default: true
                      type: boolean
                    maxDuration:
                      default: 10
                      type: number
                    useNextSingerStyle:
                      default: false
                      type: boolean
                    style:
                      default:
                        color: '#2185D0'
                        backgroundColor: '#FFFFFF'
                        fillColor: '#2185D0'
                        outlineColor: '#000000'
                        outlineWidth: 5
                      type: object
                      properties:
                        color:
                          default: '#2185D0'
                          type: string
                        outlineColor:
                          default: '#000000'
                          type: string
                        outlineWidth:
                          default: 5
                          type: number
                        backgroundColor:
                          default: rgba(255, 255, 255, 0.2)
                          type: string
                        fillColor:
                          default: '#2185D0'
                          type: string
                      required:
                        - color
                        - outlineColor
                        - outlineWidth
                        - backgroundColor
                        - fillColor
                      additionalProperties: false
                    width:
                      default: 47
                      type: number
                    height:
                      default: 7.5
                      type: number
                    position:
                      default: center
                      type: string
                      enum:
                        - top
                        - center
                        - bottom
                    cornerRadius:
                      default: 0
                      type: number
                      minimum: 0
                      maximum: 50
                    hideBeforeEnd:
                      default: 0
                      type: number
                  required:
                    - enabled
                    - maxDuration
                    - useNextSingerStyle
                    - style
                    - width
                    - height
                    - position
                    - cornerRadius
                    - hideBeforeEnd
                  additionalProperties: false
              required:
                - branding
                - titleCard
                - leadIn
                - instrumentalBreak
                - breakCountdown
                - breakProgressBar
              additionalProperties: false
            trim:
              default:
                startSeconds: 0
                endSeconds: 0
              type: object
              properties:
                startSeconds:
                  default: 0
                  type: number
                endSeconds:
                  default: 0
                  type: number
              required:
                - startSeconds
                - endSeconds
              additionalProperties: false
          required:
            - aspectRatio
            - layout
            - background
            - singerTextStyles
            - overlays
            - trim
          additionalProperties: false
        createdAt:
          type: string
        updatedAt:
          type: string
      required:
        - id
        - name
        - isDefault
        - preset
        - createdAt
        - updatedAt
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key

````