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

# Update Theme

> Update a theme.



## OpenAPI

````yaml https://api.oviond.com/openapi.json put /v1/themes/{id}
openapi: 3.1.0
info:
  title: Oviond Backend API
  version: 1.0.0
  description: Authentication, account management, billing, and media services for Oviond.
  x-logo:
    url: https://app.oviond.com/img/oviond-full-logo.svg
    altText: Oviond
servers:
  - url: https://api.oviond.com
    description: Production
security:
  - ApiKeyAuth: []
  - BearerAuth: []
paths:
  /v1/themes/{id}:
    put:
      tags:
        - Themes
      summary: Update Theme
      description: Update a theme.
      operationId: update_theme
      parameters:
        - schema:
            type: string
          required: true
          name: id
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateThemeRequest'
      responses:
        '200':
          description: Theme updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '404':
          description: Theme not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
components:
  schemas:
    UpdateThemeRequest:
      type: object
      properties:
        name:
          type: string
        tokens:
          type: object
          additionalProperties:
            type:
              - string
              - 'null'
        cover_page:
          allOf:
            - $ref: '#/components/schemas/CoverPageConfig'
            - type: object
        thank_you_page:
          allOf:
            - $ref: '#/components/schemas/ThankYouPageConfig'
            - type: object
        is_default:
          type: boolean
    SuccessResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
      required:
        - success
    CoverPageConfig:
      type:
        - object
        - 'null'
      properties:
        pattern_id:
          type:
            - string
            - 'null'
        bg_image_url:
          type:
            - string
            - 'null'
        show_cover_design:
          type: boolean
        show_client_logo:
          type: boolean
        show_agency_logo:
          type: boolean
        show_title:
          type: boolean
        show_subtitle:
          type: boolean
        title:
          type: string
        subtitle:
          type: string
        layout:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GeneratedPageElementLayout'
        widgets:
          type: array
          items: {}
          default: []
    ThankYouPageConfig:
      type:
        - object
        - 'null'
      properties:
        pattern_id:
          type:
            - string
            - 'null'
        bg_image_url:
          type:
            - string
            - 'null'
        show_logo:
          type: boolean
        show_client_logo:
          type: boolean
        show_agency_logo:
          type: boolean
        show_title:
          type: boolean
        show_message:
          type: boolean
        title:
          type: string
        subtitle:
          type: string
        layout:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GeneratedPageElementLayout'
        widgets:
          type: array
          items: {}
          default: []
    GeneratedPageElementLayout:
      type: object
      properties:
        x:
          type: number
        'y':
          type: number
        width:
          type: number
        height:
          type: number
      required:
        - x
        - 'y'
        - width
        - height
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      description: >-
        Oviond API key (prefix `oviond_`) sent as a Bearer token — the
        credential for REST/programmatic and headless integrations. Manage keys
        in Settings → API Keys. API keys do NOT authenticate the MCP endpoint
        (/mcp), which uses OAuth 2.1 + PKCE.
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Supabase-issued JWT used by the Oviond web app session. External API
        consumers should authenticate with an Oviond API key (ApiKeyAuth)
        instead.

````