openapi: 3.1.0
info:
  title: ShortGenius API
  version: 1.0.0
  description: Generate AI-based videos, images, and audio, and manage your
    ShortGenius account.
servers:
  - url: https://api.shortgenius.com/v1
security:
  - bearerAuth: []
paths:
  /music/genres:
    get:
      operationId: getMusicGenres
      summary: List music genres
      description: Gets a list of all music genres available.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MusicGenre'
  /music/genres/{id}:
    get:
      operationId: getMusic
      summary: List music
      description: Gets a list of all music tracks available for the specified genre.
      parameters:
        - in: path
          name: id
          description: The unique ID of the music genre.
          schema:
            type: string
            description: The unique ID of the music genre.
          required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Song'
                description: A list of music tracks in the specified genre.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /videos/drafts:
    post:
      operationId: draftVideo
      summary: Draft video
      description: Write a video on the provided topic. After calling this endpoint,
        call [Create Video](#tag/videos/POST/videos) with the results to create
        the video.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                topic:
                  type: string
                  description: The topic to write a video about.
                duration:
                  type: string
                  enum:
                    - '60'
                    - '90'
                    - '120'
                    - '180'
                    - '240'
                    - '300'
                    - '360'
                    - '420'
                    - '480'
                    - '540'
                    - '600'
                    - '660'
                    - '720'
                    - '780'
                    - '840'
                    - '900'
                  description: Desired duration in seconds of the final script. This is a
                    best-effort basis (always verify credit cost).
                locale:
                  type: string
                  enum: &a1
                    - af-ZA
                    - id-ID
                    - ms-MY
                    - ca-ES
                    - cs-CZ
                    - da-DK
                    - de-DE
                    - en-US
                    - es-ES
                    - es-419
                    - fr-CA
                    - fr-FR
                    - hr-HR
                    - it-IT
                    - hu-HU
                    - nl-NL
                    - no-NO
                    - pl-PL
                    - pt-BR
                    - pt-PT
                    - ro-RO
                    - sk-SK
                    - fi-FI
                    - sv-SE
                    - vi-VN
                    - tr-TR
                    - el-GR
                    - ru-RU
                    - sr-SP
                    - uk-UA
                    - hy-AM
                    - he-IL
                    - ur-PK
                    - ar-SA
                    - hi-IN
                    - th-TH
                    - ko-KR
                    - ja-JP
                    - zh-CN
                    - zh-TW
                    - auto
                  default: auto
                  description: The locale of the video.
              required:
                - topic
                - duration
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftVideo'
                description: Auto-generated scenes for a story-driven video.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /videos/drafts/url:
    post:
      operationId: draftVideoFromURL
      summary: Draft video from URL
      description: Retrieve the content of a webpage and write a video based on it.
        ___Only text is currently supported___ -- the AI cannot watch videos.
        After calling this endpoint, call [Create
        Video](#tag/videos/POST/videos) with the results to create the video.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: URL of a webpage to summarize into a video. Only textual data can
                    be processed; sites that block requests may fail.
                prompt:
                  type: string
                  description: Instructions for the AI that is reading the webpage and writing the
                    script.
                locale:
                  type: string
                  enum: *a1
                  default: auto
                  description: The locale of the video.
              required:
                - url
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftVideo'
                description: Auto-generated scenes from a webpage.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /videos/drafts/script:
    post:
      operationId: draftVideoFromScript
      summary: Draft video from script
      description: Write a video using the provided script. After calling this
        endpoint, call [Create Video](#tag/videos/POST/videos) with the results
        to create the video.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                script:
                  type: string
                  description: The content you want the AI to narrate. It will split it up into
                    logical scenes, and illustrate each scene.
              required:
                - script
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftVideo'
                description: Scenes generated from a custom script.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /videos/drafts/quiz:
    post:
      operationId: draftQuizVideo
      summary: Draft quiz video
      description: Make a quiz on the provided topic. After calling this endpoint,
        call [Create Video](#tag/videos/POST/videos) with the results to create
        the video.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                topic:
                  type: string
                  description: The topic you would like to make a quiz about.
                locale:
                  type: string
                  enum: *a1
                  default: auto
                  description: The locale of the video.
              required:
                - topic
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftQuizVideo'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /videos/drafts/news:
    post:
      operationId: draftNewsVideo
      summary: Draft news video
      description: Retrieve the latest news on the provided topic, then generate video
        scenes. After calling this endpoint, call [Create
        Video](#tag/videos/POST/videos) with the results to create the video.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                topic:
                  type: string
                  description: The topic you would like the AI to retrieve news about.
                locale:
                  type: string
                  enum: *a1
                  default: auto
                  description: The locale of the video.
              required:
                - topic
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftVideo'
                description: Auto-generated scenes for a news-style video.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /videos/{id}:
    get:
      operationId: getVideo
      summary: Get video
      parameters:
        - in: path
          name: id
          description: The unique ID of the video to retrieve.
          schema:
            type: string
            format: uuid
            description: The unique ID of the video to retrieve.
          required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Video'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /videos:
    get:
      operationId: getVideos
      summary: List videos
      parameters:
        - in: query
          name: page
          description: The page number to retrieve.
          schema:
            type: number
            default: 0
            description: The page number to retrieve.
        - in: query
          name: limit
          description: The maximum number of items per page.
          schema:
            type: number
            maximum: 100
            default: 20
            description: The maximum number of items per page.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  videos:
                    type: array
                    items:
                      $ref: '#/components/schemas/Video'
                    description: Array of videos.
                  has_more:
                    type: boolean
                    description: Indicates if more items are available.
                required:
                  - videos
                  - has_more
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
    post:
      operationId: createVideo
      summary: Create video
      description: >-
        Before using this endpoint, call one of the following endpoints to
        generate and review your video's content:

        - [Draft video](#tag/videos/POST/videos/drafts)

        - [Draft video from URL](#tag/videos/POST/videos/drafts/url)

        - [Draft video from script](#tag/videos/POST/videos/drafts/script)

        - [Draft quiz video](#tag/videos/POST/videos/drafts/quiz)

        - [Draft news video](#tag/videos/POST/videos/drafts/news)


        Once you (or your LLM) are happy, you can pass the content to this
        endpoint to create and render the video.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                content_type:
                  type: string
                  enum: &a2
                    - Custom
                    - News
                    - Quiz
                    - History
                    - Scary
                    - Motivational
                    - Bedtime
                    - FunFacts
                    - LifeTips
                    - ELI5
                    - Philosophy
                    - Blog
                    - Ad
                  default: Custom
                locale:
                  type: string
                  enum: *a1
                  default: auto
                  description: Locale for the generated video.
                image_style_id:
                  type: string
                  format: uuid
                  description: The ID of the image style to use. Use the [List image
                    styles](#tag/images/GET/presets/{type}) endpoint to get a
                    list of available image styles. If left empty, the AI
                    chooses.
                image_model:
                  type: string
                  enum: &a3
                    - OpenAI
                    - Flux Ultra/Max
                    - Flux Pro
                    - Flux 2 Pro
                  description: Image model for the generated video.
                image_quality:
                  type: string
                  enum: &a4
                    - low
                    - medium
                    - high
                  description: Image quality for the generated video.
                image_style_raw_mode:
                  type: boolean
                  description: Whether to use the raw image style mode. If true, the image style
                    will be ignored.
                image_style_custom_prompt:
                  type: string
                  description: Custom prompt for the image style. If you provide a custom prompt,
                    the image style will be ignored.
                animation_model:
                  type: string
                  enum: &a5
                    - None
                    - Seedance
                    - Kling
                    - Hailuo02Standard
                    - Hailuo02Pro
                    - Veo3
                    - SeedanceTTV
                  description: Default animation model for scene images when not specified
                    individually.
                animation_model_preset:
                  type: string
                  enum: &a6
                    - fully_animated
                    - first_scene_only
                    - first_image_each_scene
                  description: Default animation preset for scene images when not specified
                    individually.
                connection_ids:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: List of publishing connection ids. Use the [List
                    connections](#tag/connections/GET) endpoint to get a list of
                    available connections
                aspect_ratio:
                  type: string
                  enum: &a7
                    - 9:16
                    - 16:9
                    - 1:1
                  default: 9:16
                  description: Aspect ratio of the video. Not required for News videos.
                voice_playback_rate:
                  type: number
                  minimum: 50
                  maximum: 200
                  default: 100
                  description: Voice playback speed percentage.
                voice_volume:
                  type: number
                  minimum: 0
                  maximum: 100
                  default: 100
                  description: Voice volume percentage.
                soundtrack_playback_rate:
                  type: number
                  minimum: 50
                  maximum: 200
                  default: 100
                  description: Soundtrack playback speed percentage.
                soundtrack_volume:
                  type: number
                  minimum: 0
                  maximum: 100
                  default: 100
                  description: Soundtrack volume percentage.
                title:
                  type: string
                  description: The title of the video.
                caption:
                  type: string
                  description: The description shown beside the video when posted to social media.
                scenes:
                  type: array
                  items:
                    $ref: '#/components/schemas/DraftScene'
                  description: A list of scenes that make up the video. Not required for Quiz
                    videos
                quiz:
                  type: object
                  properties:
                    questions:
                      type: array
                      items:
                        type: object
                        properties:
                          question:
                            type: string
                            description: A quiz question.
                          options:
                            type: array
                            items:
                              type: object
                              properties:
                                text:
                                  type: string
                                correct:
                                  type: boolean
                              required:
                                - text
                                - correct
                        required:
                          - question
                          - options
                    results:
                      type: object
                      properties:
                        header:
                          type: string
                          description: The header shown at the top of the quiz results.
                        explanation:
                          type: string
                          description: The text the AI narrates when showing the quiz results.
                        categories:
                          type: array
                          items:
                            type: object
                            properties:
                              score_range:
                                type: string
                                description: The number of questions viewers in this category got right (e.g.,
                                  "1-2").
                              title:
                                type: string
                                description: The title of the category.
                            required:
                              - score_range
                              - title
                      required:
                        - header
                        - explanation
                        - categories
                  required:
                    - questions
                    - results
                  description: Quiz content to be converted into a single video. Required for Quiz
                    videos.
                ad:
                  type: object
                  properties:
                    product_id:
                      type: string
                      format: uuid
                      description: The ad product ID.
                    type:
                      type: string
                      enum:
                        - JustTheHook
                        - HookAndVideo
                        - HookAndRealVideos
                      description: The ad type.
                    ugc_media:
                      anyOf:
                        - type: object
                          properties:
                            url:
                              type:
                                - string
                                - 'null'
                            deletedAt:
                              type:
                                - string
                                - 'null'
                            metadata: {}
                            lastError:
                              type:
                                - string
                                - 'null'
                            associatedProductId:
                              type:
                                - string
                                - 'null'
                            type:
                              type: string
                              const: UgcCreator
                            source:
                              type:
                                - string
                                - 'null'
                              enum:
                                - Ugc
                                - null
                            category:
                              type: string
                              const: Ugc
                            data:
                              type: object
                              properties:
                                id:
                                  type: string
                                hook:
                                  type:
                                    - string
                                    - 'null'
                              required:
                                - id
                            state:
                              type: string
                              const: completed
                          required:
                            - url
                            - type
                            - source
                            - category
                            - data
                            - state
                        - type: object
                          properties:
                            url:
                              type:
                                - string
                                - 'null'
                            deletedAt:
                              type:
                                - string
                                - 'null'
                            metadata:
                              type: object
                              properties:
                                sourceImageUrl:
                                  type: string
                                muxPlaybackId:
                                  type:
                                    - string
                                    - 'null'
                                narratingText:
                                  type:
                                    - string
                                    - 'null'
                              required:
                                - sourceImageUrl
                                - muxPlaybackId
                            lastError:
                              type:
                                - string
                                - 'null'
                            associatedProductId:
                              type:
                                - string
                                - 'null'
                            type:
                              type: string
                              const: UgcVideo
                            source:
                              type:
                                - string
                                - 'null'
                              enum:
                                - Ugc
                                - null
                            category:
                              type: string
                              const: Ugc
                            data:
                              type: object
                              properties:
                                id:
                                  type: string
                                ugcCreatorId:
                                  type: string
                                ugcPresetId:
                                  type: string
                                createdAt:
                                  type: string
                                hook:
                                  type:
                                    - string
                                    - 'null'
                              required:
                                - id
                                - ugcCreatorId
                                - ugcPresetId
                                - createdAt
                            state:
                              type: string
                              enum: &a8
                                - pending
                                - generating
                                - completed
                                - error
                          required:
                            - url
                            - metadata
                            - type
                            - source
                            - category
                            - data
                            - state
                      description: The ad UGC media.
                    media_id:
                      type: string
                      format: uuid
                      description: The ad media ID. Required for HookAndVideo type.
                  required:
                    - product_id
                    - type
                    - ugc_media
                  description: Ad content to be converted into a single video. Required for Ad
                    videos.
                voice_id:
                  type: string
                  description: The voice to use for speech generation. See the [List
                    voices](#tag/voices/GET/voices) endpoint. If left empty, the
                    AI chooses.
                soundtrack_id:
                  type: string
                  format: uuid
                  description: Id of the soundtrack to use for background music. See the [List
                    music](#tag/music/GET/music/genres) endpoint for available
                    genres, and the [List music
                    tracks](#tag/music/GET/music/tracks) endpoint for available
                    soundtracks. If left empty, the AI chooses.
                publish_at:
                  type: string
                  description: Scheduled time for publishing the video. Format in ISO 8601. If
                    left empty, it will be published 1 hour after the video is
                    created.
              required:
                - connection_ids
                - title
                - caption
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Video'
                description: Response after creating a single video.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /videos/topics:
    post:
      operationId: generateVideoTopics
      summary: Generate video topics
      description: Generate ideas for around 50 videos within a given topic. You can
        then pass these to the [Create video](#tag/videos/POST/videos) endpoint.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                parent_topic:
                  type: string
                  description: Base idea or theme for generating custom topics.
                locale:
                  type: string
                  enum: *a1
                  default: auto
                  description: Locale for topic generation.
                number_of_topics:
                  type: number
                  maximum: 100
                  default: 50
                  description: Approximate number of topics to generate (max 100).
                content_type:
                  type: string
                  enum: *a2
                  default: Custom
                  description: Content type of the video.
              description: Parameters for generating video topic suggestions.
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  description: A generated topic.
                description: List of generated video topics.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /series:
    post:
      operationId: createSeries
      summary: Create series
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                content_type:
                  type: string
                  enum: *a2
                  default: Custom
                locale:
                  type: string
                  enum: *a1
                  default: auto
                  description: Locale for the generated video.
                image_style_id:
                  type: string
                  format: uuid
                  description: The ID of the image style to use. Use the [List image
                    styles](#tag/images/GET/presets/{type}) endpoint to get a
                    list of available image styles. If left empty, the AI
                    chooses.
                image_model:
                  type: string
                  enum: *a3
                  description: Image model for the generated video.
                image_quality:
                  type: string
                  enum: *a4
                  description: Image quality for the generated video.
                image_style_raw_mode:
                  type: boolean
                  description: Whether to use the raw image style mode. If true, the image style
                    will be ignored.
                image_style_custom_prompt:
                  type: string
                  description: Custom prompt for the image style. If you provide a custom prompt,
                    the image style will be ignored.
                animation_model:
                  type: string
                  enum: *a5
                  description: Default animation model for scene images when not specified
                    individually.
                animation_model_preset:
                  type: string
                  enum: *a6
                  description: Default animation preset for scene images when not specified
                    individually.
                connection_ids:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: List of publishing connection ids. Use the [List
                    connections](#tag/connections/GET) endpoint to get a list of
                    available connections
                aspect_ratio:
                  type: string
                  enum: *a7
                  default: 9:16
                  description: Aspect ratio of the video. Not required for News videos.
                voice_playback_rate:
                  type: number
                  minimum: 50
                  maximum: 200
                  default: 100
                  description: Voice playback speed percentage.
                voice_volume:
                  type: number
                  minimum: 0
                  maximum: 100
                  default: 100
                  description: Voice volume percentage.
                soundtrack_playback_rate:
                  type: number
                  minimum: 50
                  maximum: 200
                  default: 100
                  description: Soundtrack playback speed percentage.
                soundtrack_volume:
                  type: number
                  minimum: 0
                  maximum: 100
                  default: 100
                  description: Soundtrack volume percentage.
                schedule:
                  type: object
                  properties:
                    timeZone:
                      type: string
                      enum: &a11
                        - Pacific/Pago_Pago
                        - America/Adak
                        - Pacific/Honolulu
                        - Pacific/Marquesas
                        - America/Anchorage
                        - America/Tijuana
                        - America/Los_Angeles
                        - America/Phoenix
                        - America/Denver
                        - America/Guatemala
                        - America/Chicago
                        - America/Chihuahua
                        - Pacific/Easter
                        - America/Mexico_City
                        - America/Regina
                        - America/Bogota
                        - America/Cancun
                        - America/New_York
                        - America/Port-au-Prince
                        - America/Havana
                        - America/Fort_Wayne
                        - America/Asuncion
                        - America/Halifax
                        - America/Caracas
                        - America/Cuiaba
                        - America/La_Paz
                        - America/Santiago
                        - America/Grand_Turk
                        - America/St_Johns
                        - America/Araguaina
                        - America/Sao_Paulo
                        - America/Cayenne
                        - America/Argentina/Buenos_Aires
                        - America/Godthab
                        - America/Montevideo
                        - America/Miquelon
                        - America/Bahia
                        - America/Noronha
                        - Atlantic/Azores
                        - Atlantic/Cape_Verde
                        - Europe/London
                        - Africa/Abidjan
                        - Europe/Berlin
                        - Europe/Belgrade
                        - Europe/Brussels
                        - Africa/Lagos
                        - Africa/Casablanca
                        - Africa/Windhoek
                        - Europe/Bucharest
                        - Asia/Beirut
                        - Africa/Cairo
                        - Asia/Damascus
                        - Asia/Gaza
                        - Africa/Maputo
                        - Europe/Kiev
                        - Asia/Jerusalem
                        - Europe/Kaliningrad
                        - Africa/Tripoli
                        - Asia/Amman
                        - Asia/Baghdad
                        - Europe/Istanbul
                        - Asia/Riyadh
                        - Europe/Minsk
                        - Europe/Moscow
                        - Africa/Nairobi
                        - Asia/Tehran
                        - Asia/Dubai
                        - Europe/Volgograd
                        - Asia/Baku
                        - Europe/Samara
                        - Indian/Mauritius
                        - Asia/Tbilisi
                        - Asia/Yerevan
                        - Asia/Kabul
                        - Asia/Tashkent
                        - Asia/Yekaterinburg
                        - Asia/Karachi
                        - Asia/Almaty
                        - Asia/Kolkata
                        - Asia/Colombo
                        - Asia/Kathmandu
                        - Asia/Dhaka
                        - Asia/Rangoon
                        - Asia/Novosibirsk
                        - Asia/Bangkok
                        - Asia/Barnaul
                        - Asia/Hovd
                        - Asia/Krasnoyarsk
                        - Asia/Tomsk
                        - Asia/Shanghai
                        - Asia/Irkutsk
                        - Asia/Kuala_Lumpur
                        - Australia/Perth
                        - Asia/Taipei
                        - Asia/Ulaanbaatar
                        - Asia/Pyongyang
                        - Australia/Eucla
                        - Asia/Chita
                        - Asia/Tokyo
                        - Asia/Seoul
                        - Asia/Yakutsk
                        - Australia/Adelaide
                        - Australia/Darwin
                        - Australia/Brisbane
                        - Australia/Sydney
                        - Pacific/Port_Moresby
                        - Australia/Hobart
                        - Asia/Vladivostok
                        - Australia/Lord_Howe
                        - Pacific/Bougainville
                        - Asia/Srednekolymsk
                        - Asia/Magadan
                        - Pacific/Norfolk
                        - Asia/Sakhalin
                        - Pacific/Noumea
                        - Asia/Anadyr
                        - Pacific/Auckland
                        - Pacific/Fiji
                        - Pacific/Chatham
                        - Pacific/Tongatapu
                        - Pacific/Apia
                        - Pacific/Kiritimati
                    times:
                      type: array
                      items:
                        type: object
                        properties:
                          dayOfWeek:
                            type: number
                          timeOfDay:
                            type: number
                        required:
                          - dayOfWeek
                          - timeOfDay
                  required:
                    - timeZone
                    - times
                  description: Publishing schedule for the video (optional).
                duration:
                  type: number
                  minimum: 0
                  maximum: 900
                  description: The desired video duration in seconds. Must be <= 900. Not required
                    for news.
                topics:
                  type: array
                  items:
                    type: object
                    properties:
                      topic:
                        type: string
                        minLength: 1
                        maxLength: 400
                        description: Topic of each video in the series.
                    required:
                      - topic
                  description: Array of series topics.
                ad:
                  type: object
                  properties:
                    product_id:
                      type: string
                      format: uuid
                      description: The ad product ID.
                    type:
                      type: string
                      enum:
                        - JustTheHook
                        - HookAndVideo
                        - HookAndRealVideos
                      description: The ad type.
                    ugc_media:
                      type: array
                      items:
                        anyOf:
                          - type: object
                            properties:
                              url:
                                type:
                                  - string
                                  - 'null'
                              deletedAt:
                                type:
                                  - string
                                  - 'null'
                              metadata: {}
                              lastError:
                                type:
                                  - string
                                  - 'null'
                              associatedProductId:
                                type:
                                  - string
                                  - 'null'
                              type:
                                type: string
                                const: UgcCreator
                              source:
                                type:
                                  - string
                                  - 'null'
                                enum:
                                  - Ugc
                                  - null
                              category:
                                type: string
                                const: Ugc
                              data:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  hook:
                                    type:
                                      - string
                                      - 'null'
                                required:
                                  - id
                              state:
                                type: string
                                const: completed
                            required:
                              - url
                              - type
                              - source
                              - category
                              - data
                              - state
                          - type: object
                            properties:
                              url:
                                type:
                                  - string
                                  - 'null'
                              deletedAt:
                                type:
                                  - string
                                  - 'null'
                              metadata:
                                type: object
                                properties:
                                  sourceImageUrl:
                                    type: string
                                  muxPlaybackId:
                                    type:
                                      - string
                                      - 'null'
                                  narratingText:
                                    type:
                                      - string
                                      - 'null'
                                required:
                                  - sourceImageUrl
                                  - muxPlaybackId
                              lastError:
                                type:
                                  - string
                                  - 'null'
                              associatedProductId:
                                type:
                                  - string
                                  - 'null'
                              type:
                                type: string
                                const: UgcVideo
                              source:
                                type:
                                  - string
                                  - 'null'
                                enum:
                                  - Ugc
                                  - null
                              category:
                                type: string
                                const: Ugc
                              data:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  ugcCreatorId:
                                    type: string
                                  ugcPresetId:
                                    type: string
                                  createdAt:
                                    type: string
                                  hook:
                                    type:
                                      - string
                                      - 'null'
                                required:
                                  - id
                                  - ugcCreatorId
                                  - ugcPresetId
                                  - createdAt
                              state:
                                type: string
                                enum: *a8
                            required:
                              - url
                              - metadata
                              - type
                              - source
                              - category
                              - data
                              - state
                      description: The ad UGC media.
                    media_ids:
                      type: array
                      items:
                        type: string
                        format: uuid
                      description: The ad media ID. Required for HookAndVideo type.
                  required:
                    - product_id
                    - type
                    - ugc_media
                  description: Ad content to be converted into a single video. Required for Ad
                    videos.
                parent_topic:
                  type: string
                  description: Base idea or theme for generating custom topics. Required for
                    Custom and Quiz series
                voice_ids:
                  type: array
                  items:
                    type: string
                  description: List of voice IDs to use. See the [List
                    voices](#tag/voices/GET/voices) endpoint. If left empty, the
                    AI chooses.
                soundtrack_ids:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: List of soundtrack IDs to use for background music. See the [List
                    music](#tag/music/GET/music/genres) endpoint for available
                    genres, and the [List music
                    tracks](#tag/music/GET/music/tracks) endpoint for available
                    soundtracks. If left empty, the AI chooses.
              required:
                - connection_ids
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Series'
                description: Response after creating a video series.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
    get:
      operationId: getAllSeries
      summary: List series
      parameters:
        - in: query
          name: page
          description: The page number to retrieve.
          schema:
            type: number
            default: 0
            description: The page number to retrieve.
        - in: query
          name: limit
          description: The maximum number of items per page.
          schema:
            type: number
            maximum: 200
            default: 50
            description: The maximum number of items per page.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  series:
                    type: array
                    items:
                      $ref: '#/components/schemas/Series'
                    description: Array of video series.
                  has_more:
                    type: boolean
                    description: Indicates if more items are available.
                required:
                  - series
                  - has_more
                description: Response for listing video series.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /series/{id}:
    get:
      operationId: getSeries
      summary: Get series
      parameters:
        - in: path
          name: id
          description: The unique ID of the video series to retrieve.
          schema:
            type: string
            format: uuid
            description: The unique ID of the video series to retrieve.
          required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Series'
                properties:
                  episodes:
                    type: array
                    items:
                      $ref: '#/components/schemas/Video'
                    description: List of episodes associated with this series.
                required:
                  - episodes
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /connections:
    get:
      operationId: getConnections
      summary: List connections
      description: List all the video publishing destinations you have configured.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Connection'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /health:
    get:
      operationId: checkHealth
      summary: Health check
      description: Check if the service is running. This endpoint does not require
        authentication.
      security: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - ok
                    description: Indicates if the server is healthy.
                required:
                  - status
                description: Health status response.
  /images:
    post:
      operationId: createImage
      summary: Create image
      description: Create an image from a prompt.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  description: The prompt to generate the image from.
                aspect_ratio:
                  type: string
                  enum: *a7
                  description: The aspect ratio of the image.
                image_style_id:
                  type:
                    - string
                    - 'null'
                  format: uuid
                  description: The ID of the image style to use. Use the [List image
                    styles](#tag/images/GET/presets/{type}) endpoint to get a
                    list of available image styles.
                scene_id:
                  type:
                    - string
                    - 'null'
                  format: uuid
                  description: If you want to add the generated image to a video scene you can
                    specify it here.
                wait_for_generation:
                  type: boolean
                  default: false
                  description: If false, this endpoint immediately returns the incomplete image
                    record, and you can poll the [Get
                    image](#tag/images/GET/media/get/{id}) endpoint until the
                    task completes. If true, this endpoint waits until the image
                    generation completes, then returns the complete image
                    record. Defaults to false.
                model:
                  type: string
                quality:
                  type: string
                  enum:
                    - low
                    - medium
                    - high
                  default: high
                source_media_id:
                  type:
                    - string
                    - 'null'
                  format: uuid
                  description: The ID of the media to use as a source for the image.
                associated_product_id:
                  type:
                    - string
                    - 'null'
                  description: The ID of the product to associate this image with.
              required:
                - prompt
                - aspect_ratio
              additionalProperties: false
              description: Parameters required to generate an image.
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Image'
                description: The newly created image record.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
    get:
      operationId: getImages
      summary: List images
      description: Get all the images you have generated.
      parameters:
        - in: query
          name: page
          description: The page number to retrieve.
          schema:
            type: number
            default: 0
            description: The page number to retrieve.
        - in: query
          name: limit
          description: The maximum number of items per page.
          schema:
            type: number
            maximum: 200
            default: 50
            description: The maximum number of items per page.
        - in: query
          name: for_public
          description: If 1, only public images are returned.
          schema:
            type: number
            default: 0
            description: If 1, only public images are returned.
        - in: query
          name: associatedProductId
          description: Filter images by associated product ID.
          schema:
            type:
              - string
              - 'null'
            description: Filter images by associated product ID.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  images:
                    type: array
                    items:
                      $ref: '#/components/schemas/Image'
                    description: A list of generated images.
                  has_more:
                    type: boolean
                    description: Indicates if more items are available.
                required:
                  - images
                  - has_more
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /images/{id}:
    get:
      operationId: getImage
      summary: Get image
      parameters:
        - in: path
          name: id
          description: The unique ID of the image record to retrieve.
          schema:
            type: string
            format: uuid
            description: The unique ID of the image record to retrieve.
          required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                anyOf:
                  - anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          url:
                            type:
                              - string
                              - 'null'
                          associated_product_id:
                            type:
                              - string
                              - 'null'
                          type:
                            type: string
                            enum: &a13
                              - GeneratedImage
                              - GeneratedImagePreset
                          state:
                            type: string
                            enum: &a14
                              - pending
                              - generating
                              - completed
                              - error
                              - request_smart_motion
                              - placeholder
                          created_at:
                            type: string
                            description: Date and time (ISO 8601) when the media was created.
                          updated_at:
                            type:
                              - string
                              - 'null'
                          prompt:
                            type: string
                          is_nsfw:
                            type: boolean
                          aspect_ratio:
                            type: string
                            enum: *a7
                            default: 9:16
                          image_style_id:
                            type:
                              - string
                              - 'null'
                            format: uuid
                        required:
                          - id
                          - url
                          - type
                          - state
                          - created_at
                          - prompt
                          - is_nsfw
                          - aspect_ratio
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          url:
                            type:
                              - string
                              - 'null'
                          associated_product_id:
                            type:
                              - string
                              - 'null'
                          type:
                            type: string
                            enum: &a15
                              - GeneratedVideo
                              - GeneratedVideoPreset
                              - GeneratedVideoFromCloning
                          state:
                            type: string
                            enum: &a16
                              - pending
                              - generating
                              - completed
                              - error
                              - request_smart_motion
                          created_at:
                            type: string
                            description: Date and time (ISO 8601) when the media was created.
                          updated_at:
                            type:
                              - string
                              - 'null'
                          first_frame_image_id:
                            type:
                              - string
                              - 'null'
                        required:
                          - id
                          - url
                          - type
                          - state
                          - created_at
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          url:
                            type:
                              - string
                              - 'null'
                          associated_product_id:
                            type:
                              - string
                              - 'null'
                          type:
                            type: string
                            const: LumaGeneratedVideo
                          state:
                            type: string
                            enum: &a17
                              - pending
                              - generating
                              - completed
                              - error
                          created_at:
                            type: string
                            description: Date and time (ISO 8601) when the media was created.
                          updated_at:
                            type:
                              - string
                              - 'null'
                        required:
                          - id
                          - url
                          - type
                          - state
                          - created_at
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          url:
                            type:
                              - string
                              - 'null'
                          associated_product_id:
                            type:
                              - string
                              - 'null'
                          type:
                            type: string
                            const: Segmentation
                          state:
                            type: string
                            enum: &a9
                              - pending
                              - generating
                              - completed
                              - error
                          created_at:
                            type: string
                            description: Date and time (ISO 8601) when the media was created.
                          updated_at:
                            type:
                              - string
                              - 'null'
                        required:
                          - id
                          - url
                          - type
                          - state
                          - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      user_id:
                        type: string
                        format: uuid
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                        const: Image
                      state:
                        type: string
                        const: completed
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - user_id
                      - type
                      - state
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      user_id:
                        type: string
                        format: uuid
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                        const: Video
                      state:
                        type: string
                        const: completed
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - user_id
                      - type
                      - state
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                        const: UgcCreator
                      state:
                        type: string
                        const: completed
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - type
                      - state
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                        const: UgcVideo
                      state:
                        type: string
                        enum: *a8
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - type
                      - state
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                        const: VideoClip
                      state:
                        type: string
                        const: completed
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - type
                      - state
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                        const: Segmentation
                      state:
                        type: string
                        enum: *a9
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - type
                      - state
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      state:
                        type: string
                        enum: &a10
                          - uploading
                          - error
                          - completed
                          - request_smart_motion
                      type:
                        type: string
                        enum: &a18
                          - UserImage
                          - UserImagePreset
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - state
                      - type
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      state:
                        type: string
                        enum: *a10
                      type:
                        type: string
                        const: UserImageFromPicker
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - state
                      - type
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      state:
                        type: string
                        enum: *a10
                      type:
                        type: string
                        const: UserVideo
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - state
                      - type
                      - created_at
                  - type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      url:
                        type:
                          - string
                          - 'null'
                      associated_product_id:
                        type:
                          - string
                          - 'null'
                      type:
                        type: string
                        const: UserImageSegmentation
                      state:
                        type: string
                        enum: &a20
                          - pending
                          - generating
                          - error
                          - completed
                      created_at:
                        type: string
                        description: Date and time (ISO 8601) when the media was created.
                      updated_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - url
                      - type
                      - state
                      - created_at
                description: Details of the requested image record.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /images/styles:
    get:
      operationId: getImageStyles
      summary: List image styles
      description: Get all the image styles available for creating images.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ImageStyle'
                description: A list of predefined image styles.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /audio/speech:
    post:
      operationId: createSpeech
      summary: Create speech
      description: Generate speech from provided text.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  description: The text to generate speech from.
                locale:
                  type: string
                  enum: *a1
                  default: auto
                  description: The locale of the text.
                voice_id:
                  type: string
                  description: The voice to use for speech generation. See the [List
                    voices](#tag/voices/GET/voices) endpoint.
                wait_for_generation:
                  type: boolean
                  default: false
                  description: If false, this endpoint immediately returns the incomplete speech
                    record, and you can poll the [Get
                    speech](#tag/voices/GET/media/get/{id}) endpoint until the
                    task completes. If true, this endpoint waits until the
                    speech generation completes, then returns the complete
                    speech record. Defaults to false.
              required:
                - text
                - voice_id
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Audio'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /audio:
    get:
      operationId: getAllAudio
      summary: List audio
      description: Get all the speech generations you have created.
      parameters:
        - in: query
          name: page
          description: The page number to retrieve.
          schema:
            type: number
            default: 0
            description: The page number to retrieve.
        - in: query
          name: limit
          description: The maximum number of items per page.
          schema:
            type: number
            maximum: 200
            default: 50
            description: The maximum number of items per page.
        - in: query
          name: for_public
          description: If 1, only public audio is returned.
          schema:
            type: number
            default: 0
            description: If 1, only public audio is returned.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  audio:
                    type: array
                    items:
                      $ref: '#/components/schemas/Audio'
                    description: Array of audio records.
                  has_more:
                    type: boolean
                    description: Indicates if more items are available.
                required:
                  - audio
                  - has_more
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /audio/{id}:
    get:
      operationId: getAudio
      summary: Get audio
      parameters:
        - in: path
          name: id
          description: The unique ID of the audio record to retrieve.
          schema:
            type: string
            format: uuid
            description: The unique ID of the audio record to retrieve.
          required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Audio'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /audio/voices:
    get:
      operationId: getVoices
      summary: List voices
      description: Gets a list of all voices available for text-to-speech.
      parameters:
        - in: query
          name: locale
          description: The locale for which to retrieve voices.
          schema:
            type: string
            enum: *a1
            default: auto
            description: The locale for which to retrieve voices.
        - in: query
          name: page
          description: The page number to retrieve.
          schema:
            type: number
            default: 0
            description: The page number to retrieve.
        - in: query
          name: limit
          description: The maximum number of items per page.
          schema:
            type: number
            maximum: 10000000
            default: 20
            description: The maximum number of items per page.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Voice'
                description: A list of available TTS voices.
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /audio/voices/{id}:
    get:
      operationId: getVoice
      summary: Get voice
      parameters:
        - in: path
          name: id
          description: The unique ID of the voice to retrieve.
          schema:
            type: string
            description: The unique ID of the voice to retrieve.
          required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Voice'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /credits:
    get:
      operationId: getUsage
      summary: Get usage
      description: Get usage information.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  balance:
                    type: object
                    properties:
                      credits:
                        type: number
                        description: General purpose credits.
                    required:
                      - credits
                    description: Response object containing usage information for various credit
                      types.
                required:
                  - balance
  /webhook_endpoints:
    get:
      operationId: listWebhookEndpoints
      summary: List webhook endpoints
      description: List your webhook endpoints. The signing secret is never returned.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: Unique ID of the webhook endpoint.
                    url:
                      type: string
                      format: uri
                      description: The URL events are delivered to.
                    events:
                      type: array
                      items:
                        type: string
                      description: The event types this endpoint is subscribed to.
                    description:
                      type:
                        - string
                        - 'null'
                      description: Optional label for the endpoint.
                    status:
                      type: string
                      enum:
                        - active
                        - paused
                      description: Whether the endpoint is currently receiving deliveries.
                    created_at:
                      type: string
                      description: When the endpoint was created (ISO 8601).
                    updated_at:
                      type: string
                      description: When the endpoint was last updated (ISO 8601).
                  required:
                    - id
                    - url
                    - events
                    - description
                    - status
                    - created_at
                    - updated_at
                  description: A webhook endpoint subscription. The signing secret is never
                    returned here.
                description: Your webhook endpoints, newest first.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
    post:
      operationId: createWebhookEndpoint
      summary: Create webhook endpoint
      description: Subscribe a URL to lifecycle events. The returned `secret` is shown
        only once — persist it to verify the `ShortGenius-Signature` of
        deliveries.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  format: uri
                  description: The HTTPS URL that event payloads are delivered to.
                events:
                  type: array
                  items:
                    type: string
                    enum:
                      - '*'
                      - video.created
                      - video.completed
                      - video.published
                      - series.created
                      - image.completed
                      - audio.completed
                  minItems: 1
                  description: Event types to subscribe to. Use `*` to receive every event.
                description:
                  type: string
                  maxLength: 500
                  description: Optional human-readable label for the endpoint.
              required:
                - url
                - events
        required: true
      responses:
        '201':
          description: Webhook endpoint created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Unique ID of the newly created webhook endpoint.
                  secret:
                    type: string
                    description: The signing secret, returned exactly once. Persist it to verify the
                      `ShortGenius-Signature` header of deliveries.
                required:
                  - id
                  - secret
                description: The created webhook endpoint. The `secret` is shown only at
                  creation time.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
        '422':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
  /webhook_endpoints/{id}:
    delete:
      operationId: deleteWebhookEndpoint
      summary: Delete webhook endpoint
      description: Delete a webhook endpoint. Deliveries to it stop immediately.
      parameters:
        - in: path
          name: id
          description: The unique ID of the webhook endpoint to delete.
          schema:
            type: string
            description: The unique ID of the webhook endpoint to delete.
          required: true
      responses:
        '200':
          description: Webhook endpoint deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The ID of the deleted webhook endpoint.
                  deleted:
                    type: boolean
                    description: Always true when the endpoint was deleted.
                required:
                  - id
                  - deleted
                description: Confirmation that the webhook endpoint was deleted.
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type:
                      - string
                      - 'null'
                    description: Error message describing the reason for failure.
                description: An error response object.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Your ShortGenius API token
  schemas:
    MusicGenre:
      type: object
      properties:
        name:
          type: string
          description: The name of the genre (e.g., "Classical").
          example: Classical
        recommended_for_locales:
          type: array
          items:
            type: string
            enum: &a12
              - af-ZA
              - id-ID
              - ms-MY
              - ca-ES
              - cs-CZ
              - da-DK
              - de-DE
              - en-US
              - es-ES
              - es-419
              - fr-CA
              - fr-FR
              - hr-HR
              - it-IT
              - hu-HU
              - nl-NL
              - no-NO
              - pl-PL
              - pt-BR
              - pt-PT
              - ro-RO
              - sk-SK
              - fi-FI
              - sv-SE
              - vi-VN
              - tr-TR
              - el-GR
              - ru-RU
              - sr-SP
              - uk-UA
              - hy-AM
              - he-IL
              - ur-PK
              - ar-SA
              - hi-IN
              - th-TH
              - ko-KR
              - ja-JP
              - zh-CN
              - zh-TW
          description: The languages this genre is particularly popular in.
      required:
        - name
        - recommended_for_locales
      description: A music genre.
    Song:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the track.
        name:
          type: string
        preview_url:
          type: string
      required:
        - id
        - name
        - preview_url
      description: Metadata about a music track.
    DraftVideo:
      type: object
      properties:
        title:
          type: string
          description: The title of the video.
        caption:
          type: string
          minLength: 10
          description: The description shown beside the video when posted to social media.
        scenes:
          type: array
          items:
            $ref: '#/components/schemas/DraftScene'
        image_style_recommendations:
          type: array
          items:
            type: object
            properties:
              preset_id:
                type: string
                format: uuid
                description: ID of the recommended image style preset.
              reason:
                type: string
                description: Reason why this style is recommended for the video.
            required:
              - preset_id
              - reason
          description: AI-generated image style recommendations for the video.
        selected_image_style_preset_id:
          type: string
          format: uuid
          description: ID of the currently selected image style preset.
      required:
        - title
        - caption
        - scenes
    DraftScene:
      type: object
      properties:
        title:
          type:
            - string
            - 'null'
          description: If a news video, the headline for the story. Otherwise, blank.
        caption:
          type: string
          description: The text narrated during the scene.
        image_query:
          type:
            - string
            - 'null'
          description: The query for images search.
        first_image_description:
          type:
            - string
            - 'null'
          description: The prompt for the first AI generated image.
        second_image_description:
          type:
            - string
            - 'null'
          description: The prompt for the second AI generated image.
        first_image_animation_model:
          type: string
          enum: *a5
          description: Animation model for the first image.
        second_image_animation_model:
          type: string
          enum: *a5
          description: Animation model for the second image.
      required:
        - caption
      description: Scene suitable for a video.
    DraftQuizVideo:
      type: object
      properties:
        title:
          type: string
          description: The title of the video.
        caption:
          type: string
          description: The description shown beside the video when posted to social media.
        quiz:
          type: object
          properties:
            questions:
              type: array
              items:
                type: object
                properties:
                  question:
                    type: string
                    description: A quiz question.
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        text:
                          type: string
                        correct:
                          type: boolean
                      required:
                        - text
                        - correct
                required:
                  - question
                  - options
            results:
              type: object
              properties:
                header:
                  type: string
                  description: The header shown at the top of the quiz results.
                explanation:
                  type: string
                  description: The text the AI narrates when showing the quiz results.
                categories:
                  type: array
                  items:
                    type: object
                    properties:
                      score_range:
                        type: string
                        description: The number of questions viewers in this category got right (e.g.,
                          "1-2").
                      title:
                        type: string
                        description: The title of the category.
                    required:
                      - score_range
                      - title
              required:
                - header
                - explanation
                - categories
          required:
            - questions
            - results
      required:
        - title
        - caption
        - quiz
      description: Scenes suitable for a quiz-style video.
    Video:
      type: object
      properties:
        id:
          type: string
          format: uuid
        title:
          type:
            - string
            - 'null'
          maxLength: 100
        caption:
          type:
            - string
            - 'null'
          maxLength: 4000
        created_at:
          type: string
          description: Date and time (ISO 8601) when the video was created.
        updated_at:
          type:
            - string
            - 'null'
          description: Date and time (ISO 8601) when the video was last updated.
        series_id:
          type: string
          format: uuid
          description: ID of the associated series.
        publishing_state:
          type: string
          enum:
            - pending
            - processing
            - completed
            - skipped
            - error
          description: Upload status of the video.
        publish_at:
          type:
            - string
            - 'null'
          description: Date and time (ISO 8601) when the video was fully uploaded.
      required:
        - id
        - created_at
        - series_id
        - publishing_state
        - publish_at
      description: Details about the created or retrieved video, including scenes and
        their media.
    Series:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique ID of the series.
        created_at:
          type: string
          description: Date and time (ISO 8601) when the series was created.
        updated_at:
          type:
            - string
            - 'null'
          description: Date and time (ISO 8601) when the series was last updated.
        next_posting_at:
          type:
            - string
            - 'null'
          description: Date and time (ISO 8601) when the next video will be posted.
        type:
          type: string
          enum:
            - SingleVideo
            - Series
          description: Type of the series (e.g., automatically generated).
        schedule:
          type:
            - object
            - 'null'
          properties:
            time_zone:
              type: string
              enum: *a11
            times:
              type: array
              items:
                type: object
                properties:
                  day_of_week:
                    type: number
                  time_of_day:
                    type: number
                required:
                  - day_of_week
                  - time_of_day
          required:
            - time_zone
            - times
          description: The publishing schedule for the video series.
        content_type:
          type:
            - string
            - 'null'
          enum:
            - Custom
            - News
            - Quiz
            - History
            - Scary
            - Motivational
            - Bedtime
            - FunFacts
            - LifeTips
            - ELI5
            - Philosophy
            - Blog
            - Ad
            - null
          description: Indicates the type of content in this series.
        name:
          type:
            - string
            - 'null'
          description: User-friendly name for the series.
        aspect_ratio:
          type: string
          enum: *a7
          description: Aspect ratio of the series videos.
        soundtrack_behavior:
          type: string
          enum:
            - MutedAfter60s
            - FullMusic
            - NoMusic
          description: Behavior of the soundtrack.
        prompt:
          type:
            - string
            - 'null'
          description: A custom topic for the series.
        tiktok_settings:
          type:
            - object
            - 'null'
          properties:
            disable_duet:
              type:
                - boolean
                - 'null'
            disable_stitch:
              type:
                - boolean
                - 'null'
            disable_comment:
              type:
                - boolean
                - 'null'
            privacy_level:
              type:
                - string
                - 'null'
              enum:
                - PUBLIC_TO_EVERYONE
                - FOLLOWER_OF_CREATOR
                - MUTUAL_FOLLOW_FRIENDS
                - SELF_ONLY
                - null
            disclose_video_content:
              type:
                - boolean
                - 'null'
            brand_content_toggle:
              type:
                - boolean
                - 'null'
            brand_organic_toggle:
              type:
                - boolean
                - 'null'
            consent_to_use:
              type:
                - boolean
                - 'null'
          description: Settings for the TikTok platform.
        youtube_settings:
          type:
            - object
            - 'null'
          properties:
            privacy_level:
              type:
                - string
                - 'null'
              enum:
                - public
                - unlisted
                - private
                - null
            self_declared_made_for_kids:
              type:
                - boolean
                - 'null'
          description: Settings for the YouTube platform.
        x_settings:
          type:
            - object
            - 'null'
          properties:
            post_as_a_thread:
              type:
                - boolean
                - 'null'
          description: Settings for the X/Twitter platform.
        locale:
          type: string
          enum: *a12
          description: Locale of the video series.
        soundtrack:
          type:
            - object
            - 'null'
          properties:
            tracks:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: Unique ID of the soundtrack.
                  url:
                    type: string
                    description: URL of the soundtrack.
                required:
                  - url
              description: Soundtracks for the series.
            recommendations:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: Unique ID of the recommended soundtrack.
                  url:
                    type: string
                    description: URL of the recommended soundtrack.
                  reason:
                    type: string
                    description: Reason for the recommended soundtrack.
                required:
                  - url
                  - reason
            playback_rate:
              type: number
              description: Soundtrack playback rate.
            volume:
              type: number
              description: Soundtrack volume.
          required:
            - tracks
            - recommendations
            - playback_rate
            - volume
          description: Soundtrack configuration for the series. Null if no soundtrack is
            configured.
        thumbnail:
          type:
            - object
            - 'null'
          properties:
            caption_color:
              anyOf:
                - type: string
                  const: transparent
                - type: string
                - type: array
                  items:
                    type: string
            caption_stroke_color:
              type: string
            caption_stroke_width:
              type: number
            caption_alignment:
              type: string
              enum: &a26
                - top-left
                - top-center
                - top-right
                - middle-left
                - middle-center
                - middle-right
                - bottom-left
                - bottom-center
                - bottom-right
            caption_font_family:
              type: string
            caption_font_size:
              type: number
            caption_text_transform:
              type: string
              enum: &a27
                - lowercase
                - none
                - uppercase
            text:
              type:
                - string
                - 'null'
            theme:
              type: string
              enum:
                - None
                - Photo
                - TikTokTint
                - TikTokGlitch
            media:
              anyOf:
                - anyOf:
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata: {}
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Image
                        category:
                          type: string
                          const: Stock
                          default: Stock
                        state:
                          type: string
                          const: completed
                        source:
                          type: string
                          const: Google
                        data:
                          type: object
                          properties:
                            kind:
                              type: string
                            title:
                              type: string
                            html_title:
                              type: string
                            link:
                              type: string
                            display_link:
                              type: string
                            snippet:
                              type: string
                            html_snippet:
                              type: string
                            mime:
                              type: string
                            file_format:
                              type: string
                            image:
                              type: object
                              properties:
                                context_link:
                                  type: string
                                height:
                                  type: number
                                width:
                                  type: number
                                byte_size:
                                  type: number
                                thumbnail_link:
                                  type: string
                                thumbnail_height:
                                  type: number
                                thumbnail_width:
                                  type: number
                              required:
                                - context_link
                                - height
                                - width
                                - byte_size
                                - thumbnail_link
                                - thumbnail_height
                                - thumbnail_width
                          required:
                            - kind
                            - title
                            - html_title
                            - link
                            - display_link
                            - snippet
                            - html_snippet
                            - mime
                            - file_format
                            - image
                      required:
                        - url
                        - type
                        - category
                        - state
                        - source
                        - data
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata: {}
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Image
                        category:
                          type: string
                          const: Stock
                          default: Stock
                        state:
                          type: string
                          const: completed
                        source:
                          type: string
                          const: Pexels
                        data:
                          type: object
                          properties:
                            id:
                              type: number
                            width:
                              type: number
                            height:
                              type: number
                            url:
                              type: string
                            alt:
                              type:
                                - string
                                - 'null'
                            avg_color:
                              type:
                                - string
                                - 'null'
                            photographer:
                              type: string
                            photographer_url:
                              type: string
                            photographer_id:
                              type: number
                            liked:
                              type: boolean
                            src:
                              type: object
                              properties:
                                original:
                                  type: string
                                large2x:
                                  type: string
                                large:
                                  type: string
                                medium:
                                  type: string
                                small:
                                  type: string
                                portrait:
                                  type: string
                                landscape:
                                  type: string
                                tiny:
                                  type: string
                              required:
                                - original
                                - large2x
                                - large
                                - medium
                                - small
                                - portrait
                                - landscape
                                - tiny
                          required:
                            - id
                            - width
                            - height
                            - url
                            - alt
                            - avg_color
                            - photographer
                            - photographer_url
                            - photographer_id
                            - liked
                            - src
                      required:
                        - url
                        - type
                        - category
                        - state
                        - source
                        - data
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata: {}
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Video
                        category:
                          type: string
                          const: Stock
                          default: Stock
                        state:
                          type: string
                          const: completed
                        source:
                          type: string
                          const: Pexels
                        data:
                          type: object
                          properties:
                            id:
                              type: number
                            width:
                              type: number
                            height:
                              type: number
                            url:
                              type: string
                            image:
                              type: string
                            full_res:
                              type:
                                - string
                                - 'null'
                            tags:
                              type: array
                              items:
                                type: string
                            duration:
                              type: number
                            user:
                              type: object
                              properties:
                                id:
                                  type: number
                                name:
                                  type: string
                                url:
                                  type: string
                              required:
                                - id
                                - name
                                - url
                            video_files:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: number
                                  quality:
                                    type:
                                      - string
                                      - 'null'
                                    enum:
                                      - hd
                                      - sd
                                      - uhd
                                      - null
                                  file_type:
                                    type: string
                                  width:
                                    type:
                                      - number
                                      - 'null'
                                  height:
                                    type:
                                      - number
                                      - 'null'
                                  link:
                                    type: string
                                  fps:
                                    type:
                                      - number
                                      - 'null'
                                required:
                                  - id
                                  - quality
                                  - file_type
                                  - width
                                  - height
                                  - link
                                  - fps
                            video_pictures:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: number
                                  picture:
                                    type: string
                                  nr:
                                    type: number
                                required:
                                  - id
                                  - picture
                                  - nr
                          required:
                            - id
                            - width
                            - height
                            - url
                            - image
                            - full_res
                            - tags
                            - duration
                            - user
                            - video_files
                            - video_pictures
                      required:
                        - url
                        - type
                        - category
                        - state
                        - source
                        - data
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata: {}
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Image
                        category:
                          type: string
                          const: Stock
                          default: Stock
                        state:
                          type: string
                          const: completed
                        source:
                          type: string
                          const: Pixabay
                        data:
                          type: object
                          properties:
                            id:
                              type: number
                            tags:
                              type: string
                            page_u_r_l:
                              type: string
                            preview_u_r_l:
                              type: string
                            webformat_u_r_l:
                              type: string
                            large_image_u_r_l:
                              type: string
                            views:
                              type: number
                            downloads:
                              type: number
                            likes:
                              type: number
                            comments:
                              type: number
                            user_id:
                              type: number
                            user:
                              type: string
                            user_image_u_r_l:
                              type: string
                            full_h_d_u_r_l:
                              type: string
                            image_u_r_l:
                              type: string
                            vector_u_r_l:
                              type: string
                          required:
                            - id
                            - page_u_r_l
                            - preview_u_r_l
                            - webformat_u_r_l
                            - large_image_u_r_l
                            - views
                            - downloads
                            - likes
                            - comments
                            - user_id
                            - user
                            - user_image_u_r_l
                      required:
                        - url
                        - type
                        - category
                        - state
                        - source
                        - data
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata: {}
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Video
                        category:
                          type: string
                          const: Stock
                          default: Stock
                        state:
                          type: string
                          const: completed
                        source:
                          type: string
                          const: Pixabay
                        data:
                          type: object
                          properties:
                            id:
                              type: number
                            page_u_r_l:
                              type: string
                            videos:
                              type: object
                              properties:
                                large:
                                  type: object
                                  properties:
                                    url:
                                      type: string
                                    width:
                                      type: number
                                    height:
                                      type: number
                                    size:
                                      type: number
                                    thumbnail:
                                      type: string
                                  required:
                                    - url
                                    - width
                                    - height
                                    - size
                                    - thumbnail
                                medium:
                                  type: object
                                  properties:
                                    url:
                                      type: string
                                    width:
                                      type: number
                                    height:
                                      type: number
                                    size:
                                      type: number
                                    thumbnail:
                                      type: string
                                  required:
                                    - url
                                    - width
                                    - height
                                    - size
                                    - thumbnail
                                small:
                                  type: object
                                  properties:
                                    url:
                                      type: string
                                    width:
                                      type: number
                                    height:
                                      type: number
                                    size:
                                      type: number
                                    thumbnail:
                                      type: string
                                  required:
                                    - url
                                    - width
                                    - height
                                    - size
                                    - thumbnail
                                tiny:
                                  type: object
                                  properties:
                                    url:
                                      type: string
                                    width:
                                      type: number
                                    height:
                                      type: number
                                    size:
                                      type: number
                                    thumbnail:
                                      type: string
                                  required:
                                    - url
                                    - width
                                    - height
                                    - size
                                    - thumbnail
                              required:
                                - large
                                - medium
                                - small
                                - tiny
                            tags:
                              type: string
                            duration:
                              type: number
                            views:
                              type: number
                            downloads:
                              type: number
                            likes:
                              type: number
                            comments:
                              type: number
                            user_id:
                              type: number
                            user:
                              type: string
                            user_image_u_r_l:
                              type: string
                          required:
                            - id
                            - page_u_r_l
                            - videos
                            - views
                            - downloads
                            - likes
                            - comments
                            - user_id
                            - user
                            - user_image_u_r_l
                      required:
                        - url
                        - type
                        - category
                        - state
                        - source
                        - data
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata: {}
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Image
                        category:
                          type: string
                          const: Stock
                          default: Stock
                        state:
                          type: string
                          const: completed
                        source:
                          type: string
                          const: Unsplash
                        data:
                          type: object
                          properties:
                            id:
                              type: string
                            created_at:
                              type: string
                            updated_at:
                              type: string
                            urls:
                              type: object
                              properties:
                                full:
                                  type: string
                                raw:
                                  type: string
                                regular:
                                  type: string
                                small:
                                  type: string
                                thumb:
                                  type: string
                              required:
                                - full
                                - raw
                                - regular
                                - small
                                - thumb
                            alt_description:
                              type:
                                - string
                                - 'null'
                            blur_hash:
                              type:
                                - string
                                - 'null'
                            color:
                              type:
                                - string
                                - 'null'
                            description:
                              type:
                                - string
                                - 'null'
                            height:
                              type: number
                            likes:
                              type: number
                            links:
                              type: object
                              properties:
                                self:
                                  type: string
                                html:
                                  type: string
                                download:
                                  type: string
                                download_location:
                                  type: string
                              required:
                                - self
                                - html
                                - download
                                - download_location
                            promoted_at:
                              type:
                                - string
                                - 'null'
                            width:
                              type: number
                            user:
                              type: object
                              properties:
                                id:
                                  type: string
                                bio:
                                  type:
                                    - string
                                    - 'null'
                                first_name:
                                  type: string
                                instagram_username:
                                  type:
                                    - string
                                    - 'null'
                                last_name:
                                  type:
                                    - string
                                    - 'null'
                                links:
                                  type: object
                                  properties:
                                    followers:
                                      type:
                                        - string
                                        - 'null'
                                    following:
                                      type:
                                        - string
                                        - 'null'
                                    html:
                                      type: string
                                    likes:
                                      type: string
                                    photos:
                                      type: string
                                    portfolio:
                                      type:
                                        - string
                                        - 'null'
                                    self:
                                      type: string
                                  required:
                                    - html
                                    - likes
                                    - photos
                                    - self
                                location:
                                  type:
                                    - string
                                    - 'null'
                                name:
                                  type: string
                                portfolio_url:
                                  type:
                                    - string
                                    - 'null'
                                profile_image:
                                  type: object
                                  properties:
                                    small:
                                      type: string
                                    medium:
                                      type: string
                                    large:
                                      type: string
                                  required:
                                    - small
                                    - medium
                                    - large
                                total_collections:
                                  type: number
                                total_likes:
                                  type: number
                                total_photos:
                                  type: number
                                twitter_username:
                                  type:
                                    - string
                                    - 'null'
                                updated_at:
                                  type: string
                                username:
                                  type: string
                              required:
                                - id
                                - bio
                                - first_name
                                - instagram_username
                                - last_name
                                - links
                                - location
                                - name
                                - portfolio_url
                                - profile_image
                                - total_collections
                                - total_likes
                                - total_photos
                                - twitter_username
                                - updated_at
                                - username
                          required:
                            - id
                            - created_at
                            - updated_at
                            - urls
                            - alt_description
                            - blur_hash
                            - color
                            - description
                            - height
                            - likes
                            - links
                            - promoted_at
                            - width
                            - user
                      required:
                        - url
                        - type
                        - category
                        - state
                        - source
                        - data
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata: {}
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Image
                        category:
                          type: string
                          const: Stock
                          default: Stock
                        state:
                          type: string
                          const: completed
                        source:
                          type: string
                          const: Wikimedia
                        data:
                          type: object
                          properties:
                            pageid:
                              type: number
                            ns:
                              type: number
                            title:
                              type: string
                            index:
                              type: number
                            imagerepository:
                              type: string
                            imageinfo:
                              type: array
                              items:
                                type: object
                                properties:
                                  url:
                                    type: string
                                    format: uri
                                  descriptionurl:
                                    type: string
                                    format: uri
                                  descriptionshorturl:
                                    type: string
                                    format: uri
                                  mime:
                                    type: string
                                required:
                                  - url
                                  - descriptionurl
                                  - descriptionshorturl
                          required:
                            - pageid
                            - ns
                            - title
                            - index
                            - imagerepository
                            - imageinfo
                      required:
                        - url
                        - type
                        - category
                        - state
                        - source
                        - data
                - anyOf:
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            prompt:
                              type: string
                            translated_prompt:
                              type:
                                - string
                                - 'null'
                            rephrased_prompt:
                              type:
                                - string
                                - 'null'
                            image_style_preset_id:
                              type:
                                - string
                                - 'null'
                              format: uuid
                            image_style_custom_prompt:
                              type:
                                - string
                                - 'null'
                            aspect_ratio:
                              type:
                                - string
                                - 'null'
                            width:
                              type:
                                - number
                                - 'null'
                            height:
                              type:
                                - number
                                - 'null'
                            cloned_media_id:
                              type:
                                - string
                                - 'null'
                              format: uuid
                            from_system_media:
                              type:
                                - boolean
                                - 'null'
                            original_image_url:
                              type:
                                - string
                                - 'null'
                            quality:
                              type:
                                - string
                                - 'null'
                              enum:
                                - low
                                - medium
                                - high
                                - null
                            animation_model:
                              type:
                                - string
                                - 'null'
                            animation_prompt:
                              type:
                                - string
                                - 'null'
                            product_id:
                              type:
                                - string
                                - 'null'
                              format: uuid
                            model_params:
                              type:
                                - object
                                - 'null'
                              additionalProperties: {}
                            preset_id:
                              type:
                                - string
                                - 'null'
                            variant_id:
                              type:
                                - string
                                - 'null'
                            category_id:
                              type:
                                - string
                                - 'null'
                          required:
                            - prompt
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          enum: *a13
                        source:
                          type:
                            - string
                            - 'null'
                        category:
                          anyOf:
                            - type: string
                              const: AIGenerated
                            - type: string
                              const: ImageAd
                        state:
                          type: string
                          enum: *a14
                        data:
                          type:
                            - object
                            - 'null'
                          properties:
                            path:
                              type:
                                - string
                                - 'null'
                            results:
                              type: object
                              additionalProperties: {}
                            result:
                              type:
                                - string
                                - 'null'
                            artifacts:
                              type: array
                              items:
                                type: object
                                properties:
                                  seed:
                                    type: number
                                  finish_reason:
                                    type: string
                            result_image_url:
                              type:
                                - string
                                - 'null'
                            watermarked_image_url:
                              type:
                                - string
                                - 'null'
                            has_watermark:
                              type:
                                - boolean
                                - 'null'
                      required:
                        - id
                        - url
                        - metadata
                        - type
                        - source
                        - category
                        - state
                        - data
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            source_image_url:
                              type:
                                - string
                                - 'null'
                            source_image_metadata:
                              type:
                                - object
                                - 'null'
                              additionalProperties: {}
                            source_image_data:
                              type:
                                - object
                                - 'null'
                              additionalProperties: {}
                            parent_media_id:
                              type:
                                - string
                                - 'null'
                            animation_prompt:
                              type:
                                - string
                                - 'null'
                            animation_model:
                              type:
                                - string
                                - 'null'
                            image_style_preset_id:
                              type:
                                - string
                                - 'null'
                              format: uuid
                            image_style_custom_prompt:
                              type:
                                - string
                                - 'null'
                            mux_playback_id:
                              type:
                                - string
                                - 'null'
                            model_params:
                              type:
                                - object
                                - 'null'
                              additionalProperties: {}
                            duration_in_seconds:
                              type:
                                - number
                                - 'null'
                            preset_id:
                              type:
                                - string
                                - 'null'
                            variant_id:
                              type:
                                - string
                                - 'null'
                            category_id:
                              type:
                                - string
                                - 'null'
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          enum: *a15
                        source:
                          type:
                            - string
                            - 'null'
                        category:
                          type: string
                          const: AIGenerated
                        state:
                          type: string
                          enum: *a16
                        data:
                          type:
                            - object
                            - 'null'
                          properties:
                            path:
                              type:
                                - string
                                - 'null'
                            result:
                              type:
                                - object
                                - 'null'
                              properties:
                                video:
                                  type: object
                                  properties:
                                    url:
                                      type: string
                                    content_type:
                                      type:
                                        - string
                                        - 'null'
                                    file_name:
                                      type:
                                        - string
                                        - 'null'
                                    file_size:
                                      type:
                                        - number
                                        - 'null'
                                    file_data:
                                      type:
                                        - string
                                        - 'null'
                                    duration:
                                      type:
                                        - number
                                        - 'null'
                                    fps:
                                      type:
                                        - number
                                        - 'null'
                                    width:
                                      type:
                                        - number
                                        - 'null'
                                    height:
                                      type:
                                        - number
                                        - 'null'
                                  required:
                                    - url
                              required:
                                - video
                            result_video_url:
                              type:
                                - string
                                - 'null'
                            watermarked_video_url:
                              type:
                                - string
                                - 'null'
                            has_watermark:
                              type:
                                - boolean
                                - 'null'
                      required:
                        - id
                        - url
                        - metadata
                        - type
                        - source
                        - category
                        - state
                        - data
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            prompt:
                              type: string
                            source_image_url:
                              type:
                                - string
                                - 'null'
                            parent_media_id:
                              type:
                                - string
                                - 'null'
                          required:
                            - prompt
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: LumaGeneratedVideo
                        source:
                          type:
                            - string
                            - 'null'
                          enum:
                            - luma-ai
                            - null
                        category:
                          type: string
                          const: AIGenerated
                        state:
                          type: string
                          enum: *a17
                        data:
                          type:
                            - object
                            - 'null'
                          properties:
                            luma_id:
                              type:
                                - string
                                - 'null'
                      required:
                        - id
                        - url
                        - metadata
                        - type
                        - source
                        - category
                        - state
                        - data
                - anyOf:
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            content_type:
                              type:
                                - string
                                - 'null'
                            preset_id:
                              type:
                                - string
                                - 'null'
                            variant_id:
                              type:
                                - string
                                - 'null'
                            category_id:
                              type:
                                - string
                                - 'null'
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        source:
                          type: string
                          enum: &a19
                            - Upload
                            - ImagePicker
                        category:
                          anyOf:
                            - type: string
                              const: UserUploaded
                            - type: string
                              const: UserUploadedAd
                        state:
                          type: string
                          enum: *a10
                        type:
                          type: string
                          enum: *a18
                        data:
                          type: object
                          properties:
                            upload_id:
                              type: string
                            key:
                              type: string
                            alt:
                              type:
                                - string
                                - 'null'
                            uploaded_at:
                              type:
                                - string
                                - 'null'
                          required:
                            - upload_id
                            - key
                            - alt
                            - uploaded_at
                      required:
                        - id
                        - url
                        - metadata
                        - source
                        - category
                        - state
                        - type
                        - data
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            content_type:
                              type:
                                - string
                                - 'null'
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        source:
                          type: string
                          enum: *a19
                        category:
                          anyOf:
                            - type: string
                              const: UserUploaded
                            - type: string
                              const: UserUploadedAd
                        state:
                          type: string
                          enum: *a10
                        type:
                          type: string
                          const: UserVideo
                        data:
                          type: object
                          properties:
                            upload_id:
                              type: string
                            key:
                              type: string
                            alt:
                              type:
                                - string
                                - 'null'
                            uploaded_at:
                              type:
                                - string
                                - 'null'
                          required:
                            - upload_id
                            - key
                            - alt
                            - uploaded_at
                      required:
                        - id
                        - url
                        - metadata
                        - source
                        - category
                        - state
                        - type
                        - data
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            content_type:
                              type:
                                - string
                                - 'null'
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        source:
                          type: string
                          enum: *a19
                        category:
                          anyOf:
                            - type: string
                              const: UserUploaded
                            - type: string
                              const: UserUploadedAd
                        state:
                          type: string
                          enum: *a10
                        type:
                          type: string
                          const: UserAudio
                        data:
                          type: object
                          properties:
                            upload_id:
                              type: string
                            key:
                              type: string
                            alt:
                              type:
                                - string
                                - 'null'
                            uploaded_at:
                              type:
                                - string
                                - 'null'
                            name:
                              type:
                                - string
                                - 'null'
                          required:
                            - upload_id
                            - key
                            - alt
                            - uploaded_at
                      required:
                        - id
                        - url
                        - metadata
                        - source
                        - category
                        - state
                        - type
                        - data
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            content_type:
                              type:
                                - string
                                - 'null'
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        source:
                          type: string
                          enum: *a19
                        category:
                          type: string
                          const: UserUploaded
                        type:
                          type: string
                          const: UserImageSegmentation
                        data:
                          type: object
                          properties:
                            source_media:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                url:
                                  type:
                                    - string
                                    - 'null'
                              required:
                                - id
                                - url
                            results:
                              type: object
                              properties:
                                image:
                                  type: object
                                  properties:
                                    url:
                                      type: string
                                    content_type:
                                      type: string
                                    file_name:
                                      type: string
                                    file_size:
                                      type: number
                                    file_data:
                                      type: string
                                    width:
                                      type: number
                                    height:
                                      type: number
                                  required:
                                    - url
                                mask_image:
                                  type:
                                    - object
                                    - 'null'
                                  properties:
                                    url:
                                      type: string
                                    content_type:
                                      type: string
                                    file_name:
                                      type: string
                                    file_size:
                                      type: number
                                    file_data:
                                      type: string
                                    width:
                                      type: number
                                    height:
                                      type: number
                                  required:
                                    - url
                              required:
                                - image
                          required:
                            - source_media
                        state:
                          type: string
                          enum: *a20
                      required:
                        - id
                        - url
                        - metadata
                        - source
                        - category
                        - type
                        - data
                        - state
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            content_type:
                              type:
                                - string
                                - 'null'
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        source:
                          type: string
                          enum: *a19
                        category:
                          anyOf:
                            - type: string
                              const: UserUploaded
                            - type: string
                              const: UserUploadedAd
                            - type: string
                              const: Stock
                        state:
                          type: string
                          enum: *a10
                        type:
                          type: string
                          const: UserImageFromPicker
                        data:
                          type: object
                          properties:
                            source_image: {}
                      required:
                        - id
                        - url
                        - metadata
                        - source
                        - category
                        - state
                        - type
                        - data
                - type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                    url:
                      type:
                        - string
                        - 'null'
                    deleted_at:
                      type:
                        - string
                        - 'null'
                    metadata:
                      type: object
                      properties:
                        source_media: {}
                    last_error:
                      type:
                        - string
                        - 'null'
                    associated_product_id:
                      type:
                        - string
                        - 'null'
                    type:
                      type: string
                      const: Segmentation
                    source:
                      type: string
                      enum:
                        - GeneratedImage
                        - GeneratedImagePreset
                        - Image
                        - UserImage
                    category:
                      type: string
                      enum:
                        - AIGenerated
                        - Stock
                    data:
                      type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        path:
                          type:
                            - string
                            - 'null'
                        data:
                          type:
                            - object
                            - 'null'
                          properties:
                            width:
                              type: number
                            height:
                              type: number
                          required:
                            - width
                            - height
                        results:
                          type: object
                          properties:
                            image:
                              type: object
                              properties:
                                url:
                                  type: string
                                content_type:
                                  type: string
                                file_name:
                                  type: string
                                file_size:
                                  type: number
                                file_data:
                                  type: string
                                width:
                                  type: number
                                height:
                                  type: number
                              required:
                                - url
                            mask_image:
                              type:
                                - object
                                - 'null'
                              properties:
                                url:
                                  type: string
                                content_type:
                                  type: string
                                file_name:
                                  type: string
                                file_size:
                                  type: number
                                file_data:
                                  type: string
                                width:
                                  type: number
                                height:
                                  type: number
                              required:
                                - url
                          required:
                            - image
                    state:
                      type: string
                      enum: *a9
                  required:
                    - id
                    - url
                    - metadata
                    - type
                    - source
                    - category
                    - data
                    - state
                - type: object
                  properties:
                    url:
                      type:
                        - string
                        - 'null'
                    deleted_at:
                      type:
                        - string
                        - 'null'
                    metadata:
                      type: object
                      properties:
                        mux_playback_id:
                          type:
                            - string
                            - 'null'
                        start_time:
                          type:
                            - number
                            - 'null'
                        end_time:
                          type:
                            - number
                            - 'null'
                        duration_till_end:
                          type:
                            - number
                            - 'null'
                      required:
                        - mux_playback_id
                        - start_time
                        - end_time
                        - duration_till_end
                    last_error:
                      type:
                        - string
                        - 'null'
                    associated_product_id:
                      type:
                        - string
                        - 'null'
                    type:
                      type: string
                      const: VideoClip
                    source:
                      type:
                        - string
                        - 'null'
                      enum:
                        - Gameplay
                        - null
                    category:
                      type: string
                      const: Gameplay
                    state:
                      type: string
                      const: completed
                    data:
                      type: object
                      properties:
                        id:
                          type: string
                        collection_id:
                          type: string
                      required:
                        - id
                        - collection_id
                  required:
                    - url
                    - metadata
                    - type
                    - source
                    - category
                    - state
                    - data
                - anyOf:
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata: {}
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: UgcCreator
                        source:
                          type:
                            - string
                            - 'null'
                          enum:
                            - Ugc
                            - null
                        category:
                          type: string
                          const: Ugc
                        data:
                          type: object
                          properties:
                            id:
                              type: string
                            hook:
                              type:
                                - string
                                - 'null'
                          required:
                            - id
                        state:
                          type: string
                          const: completed
                      required:
                        - url
                        - type
                        - source
                        - category
                        - data
                        - state
                    - type: object
                      properties:
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            source_image_url:
                              type: string
                            mux_playback_id:
                              type:
                                - string
                                - 'null'
                            narrating_text:
                              type:
                                - string
                                - 'null'
                          required:
                            - source_image_url
                            - mux_playback_id
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: UgcVideo
                        source:
                          type:
                            - string
                            - 'null'
                          enum:
                            - Ugc
                            - null
                        category:
                          type: string
                          const: Ugc
                        data:
                          type: object
                          properties:
                            id:
                              type: string
                            ugc_creator_id:
                              type: string
                            ugc_preset_id:
                              type: string
                            created_at:
                              type: string
                            hook:
                              type:
                                - string
                                - 'null'
                          required:
                            - id
                            - ugc_creator_id
                            - ugc_preset_id
                            - created_at
                        state:
                          type: string
                          enum: *a8
                      required:
                        - url
                        - metadata
                        - type
                        - source
                        - category
                        - data
                        - state
                - anyOf:
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            asset_id:
                              type: string
                            asset_version_id:
                              type: string
                            asset_render_id:
                              type: string
                            aspect_ratio:
                              type:
                                - string
                                - 'null'
                              enum:
                                - Portrait 9:16
                                - Landscape 16:9
                                - Square 1:1
                                - null
                          required:
                            - asset_id
                            - asset_version_id
                            - asset_render_id
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Block
                        source:
                          type: string
                          const: Block
                        category:
                          type: string
                          const: Asset
                        state:
                          type: string
                          enum:
                            - pending
                            - generating
                            - completed
                            - error
                        data:
                          type: object
                          properties:
                            thumbnail_url:
                              type:
                                - string
                                - 'null'
                            mux_playback_id:
                              type:
                                - string
                                - 'null'
                            duration:
                              type:
                                - number
                                - 'null'
                      required:
                        - id
                        - url
                        - metadata
                        - type
                        - source
                        - category
                        - state
                        - data
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            asset_id:
                              type: string
                            asset_version_id:
                              type: string
                            asset_render_id:
                              type: string
                            aspect_ratio:
                              type:
                                - string
                                - 'null'
                          required:
                            - asset_id
                            - asset_version_id
                            - asset_render_id
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Graphic
                        source:
                          type: string
                          const: Graphic
                        category:
                          type: string
                          const: Asset
                        state:
                          type: string
                          enum:
                            - pending
                            - generating
                            - completed
                            - error
                        data:
                          type: object
                      required:
                        - id
                        - url
                        - metadata
                        - type
                        - source
                        - category
                        - state
                        - data
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        url:
                          type:
                            - string
                            - 'null'
                        deleted_at:
                          type:
                            - string
                            - 'null'
                        metadata:
                          type: object
                          properties:
                            element_id:
                              type: string
                            element_category:
                              type: string
                              enum: &a22
                                - backgrounds
                                - animations
                                - components
                                - text-animations
                            aspect_ratio:
                              type: string
                              enum: &a23
                                - square
                                - 9:16
                                - 16:9
                            props:
                              type:
                                - object
                                - 'null'
                              additionalProperties: {}
                            configuration_settings:
                              type:
                                - object
                                - 'null'
                              additionalProperties: {}
                            render_dimensions:
                              type:
                                - object
                                - 'null'
                              properties:
                                width:
                                  type: number
                                height:
                                  type: number
                              required:
                                - width
                                - height
                          required:
                            - element_id
                            - element_category
                            - aspect_ratio
                            - props
                            - configuration_settings
                            - render_dimensions
                        last_error:
                          type:
                            - string
                            - 'null'
                        associated_product_id:
                          type:
                            - string
                            - 'null'
                        type:
                          type: string
                          const: Element
                        source:
                          type: string
                          const: Element
                        category:
                          type: string
                          enum: &a24
                            - Background
                            - Animation
                            - Component
                            - TextAnimation
                        state:
                          type: string
                          enum: &a25
                            - pending
                            - generating
                            - completed
                            - error
                        data:
                          type: object
                          properties:
                            thumbnail_url:
                              type:
                                - string
                                - 'null'
                            duration:
                              type:
                                - number
                                - 'null'
                            render_job_id:
                              type:
                                - string
                                - 'null'
                      required:
                        - id
                        - url
                        - metadata
                        - type
                        - source
                        - category
                        - state
                        - data
                - type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                    url:
                      type:
                        - string
                        - 'null'
                    deleted_at:
                      type:
                        - string
                        - 'null'
                    metadata:
                      type: object
                      properties:
                        content_type:
                          type:
                            - string
                            - 'null'
                        brand_domain:
                          type: string
                        asset_type:
                          type: string
                        width:
                          type:
                            - number
                            - 'null'
                        height:
                          type:
                            - number
                            - 'null'
                      required:
                        - brand_domain
                        - asset_type
                    last_error:
                      type:
                        - string
                        - 'null'
                    associated_product_id:
                      type:
                        - string
                        - 'null'
                    type:
                      type: string
                      const: BrandImage
                    source:
                      type: string
                      const: BrandFetch
                    category:
                      type: string
                      const: Brand
                    state:
                      type: string
                      enum:
                        - completed
                        - error
                    data:
                      type: object
                      properties:
                        original_url:
                          type: string
                        asset_key:
                          type: string
                        uploaded_at:
                          type: string
                        image_format:
                          type: string
                          enum:
                            - png
                            - jpg
                            - jpeg
                            - webp
                      required:
                        - asset_key
                        - uploaded_at
                  required:
                    - id
                    - url
                    - metadata
                    - type
                    - source
                    - category
                    - state
                    - data
                - type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                    url:
                      type:
                        - string
                        - 'null'
                    deleted_at:
                      type:
                        - string
                        - 'null'
                    metadata:
                      type: object
                      properties:
                        ad_id:
                          type: string
                        ad_name:
                          type:
                            - string
                            - 'null'
                        creative_id:
                          type: string
                        page_id:
                          type:
                            - string
                            - 'null'
                        instagram_user_id:
                          type:
                            - string
                            - 'null'
                        link:
                          type:
                            - string
                            - 'null'
                        image_hash:
                          type:
                            - string
                            - 'null'
                        call_to_action_type:
                          type:
                            - string
                            - 'null'
                        image_url:
                          type:
                            - string
                            - 'null'
                        thumbnail_url:
                          type:
                            - string
                            - 'null'
                      required:
                        - ad_id
                        - creative_id
                    last_error:
                      type:
                        - string
                        - 'null'
                    associated_product_id:
                      type:
                        - string
                        - 'null'
                    type:
                      type: string
                      const: MetaAd
                    source:
                      type: string
                      const: Meta
                    category:
                      type: string
                      const: Ad
                    state:
                      type: string
                      enum:
                        - completed
                  required:
                    - id
                    - url
                    - metadata
                    - type
                    - source
                    - category
                    - state
                - type: object
                  properties:
                    url:
                      type:
                        - string
                        - 'null'
                    deleted_at:
                      type:
                        - string
                        - 'null'
                    metadata:
                      type: object
                      properties:
                        text:
                          type:
                            - string
                            - 'null'
                        locale:
                          type:
                            - string
                            - 'null'
                          enum:
                            - af-ZA
                            - id-ID
                            - ms-MY
                            - ca-ES
                            - cs-CZ
                            - da-DK
                            - de-DE
                            - en-US
                            - es-ES
                            - es-419
                            - fr-CA
                            - fr-FR
                            - hr-HR
                            - it-IT
                            - hu-HU
                            - nl-NL
                            - no-NO
                            - pl-PL
                            - pt-BR
                            - pt-PT
                            - ro-RO
                            - sk-SK
                            - fi-FI
                            - sv-SE
                            - vi-VN
                            - tr-TR
                            - el-GR
                            - ru-RU
                            - sr-SP
                            - uk-UA
                            - hy-AM
                            - he-IL
                            - ur-PK
                            - ar-SA
                            - hi-IN
                            - th-TH
                            - ko-KR
                            - ja-JP
                            - zh-CN
                            - zh-TW
                            - null
                        voice:
                          type:
                            - object
                            - 'null'
                          properties:
                            id:
                              type: string
                            owner_id:
                              type:
                                - string
                                - 'null'
                            name:
                              type: string
                            description:
                              type:
                                - string
                                - 'null'
                            locale:
                              type:
                                - string
                                - 'null'
                              enum:
                                - af-ZA
                                - id-ID
                                - ms-MY
                                - ca-ES
                                - cs-CZ
                                - da-DK
                                - de-DE
                                - en-US
                                - es-ES
                                - es-419
                                - fr-CA
                                - fr-FR
                                - hr-HR
                                - it-IT
                                - hu-HU
                                - nl-NL
                                - no-NO
                                - pl-PL
                                - pt-BR
                                - pt-PT
                                - ro-RO
                                - sk-SK
                                - fi-FI
                                - sv-SE
                                - vi-VN
                                - tr-TR
                                - el-GR
                                - ru-RU
                                - sr-SP
                                - uk-UA
                                - hy-AM
                                - he-IL
                                - ur-PK
                                - ar-SA
                                - hi-IN
                                - th-TH
                                - ko-KR
                                - ja-JP
                                - zh-CN
                                - zh-TW
                                - null
                            avatar:
                              type:
                                - string
                                - 'null'
                            flag:
                              type:
                                - string
                                - 'null'
                            preview_url:
                              type:
                                - string
                                - 'null'
                            usage_character_count7d:
                              type:
                                - number
                                - 'null'
                            usage_character_count1y:
                              type:
                                - number
                                - 'null'
                            tags:
                              type:
                                - object
                                - 'null'
                              properties:
                                language:
                                  type:
                                    - string
                                    - 'null'
                                accent:
                                  type:
                                    - string
                                    - 'null'
                                age:
                                  type:
                                    - string
                                    - 'null'
                                category:
                                  type:
                                    - string
                                    - 'null'
                                gender:
                                  type:
                                    - string
                                    - 'null'
                                tone:
                                  type:
                                    - string
                                    - 'null'
                                use_case:
                                  type:
                                    - string
                                    - 'null'
                            source:
                              type: string
                              enum: &a21
                                - Cartesia
                                - CartesiaClonedVoice
                                - ElevenLabs
                                - ElevenLabsShared
                                - FishAudio
                                - FishAudioClonedVoice
                                - OpenAI
                          required:
                            - id
                            - name
                            - description
                            - locale
                            - preview_url
                            - tags
                            - source
                        voice_id:
                          type:
                            - string
                            - 'null'
                        owner_id:
                          type:
                            - string
                            - 'null'
                            - 'null'
                        prompt:
                          type:
                            - string
                            - 'null'
                        duration_ms:
                          type:
                            - number
                            - 'null'
                        composition_plan:
                          type: 'null'
                        generation_type:
                          type:
                            - string
                            - 'null'
                          enum:
                            - prompt
                            - compositionPlan
                            - null
                        asset_id:
                          type:
                            - string
                            - 'null'
                          format: uuid
                        song_metadata:
                          type:
                            - object
                            - 'null'
                          properties:
                            title:
                              type:
                                - string
                                - 'null'
                            description:
                              type:
                                - string
                                - 'null'
                            genres:
                              type:
                                - array
                                - 'null'
                              items:
                                type: string
                            languages:
                              type:
                                - array
                                - 'null'
                              items:
                                type: string
                            is_explicit:
                              type:
                                - boolean
                                - 'null'
                        background_image_url:
                          type:
                            - string
                            - 'null'
                    last_error:
                      type:
                        - string
                        - 'null'
                    associated_product_id:
                      type:
                        - string
                        - 'null'
                    type:
                      type: string
                      const: GeneratedAudio
                    source:
                      type: string
                      enum: *a21
                    category:
                      type: string
                      enum: &a28
                        - AIGeneratedAudio
                        - AIGeneratedAudioForVideo
                        - AIGeneratedMusic
                    state:
                      type: string
                      enum: &a29
                        - pending
                        - generating
                        - completed
                        - error
                    transcript:
                      type:
                        - object
                        - 'null'
                      properties:
                        words:
                          type: array
                          items:
                            type: object
                            properties:
                              text:
                                type: string
                              start:
                                type: number
                              end:
                                type: number
                              confidence:
                                type: number
                            required:
                              - text
                              - start
                              - end
                      required:
                        - words
                    data:
                      type:
                        - object
                        - 'null'
                      properties:
                        path:
                          type:
                            - string
                            - 'null'
                        transcript_state:
                          type:
                            - string
                            - 'null'
                          enum:
                            - pending
                            - generating
                            - completed
                            - error
                            - null
                        duration:
                          type:
                            - number
                            - 'null'
                        lufs:
                          type:
                            - number
                            - 'null'
                        lufs_output:
                          type:
                            - string
                            - 'null'
                  required:
                    - url
                    - metadata
                    - type
                    - source
                    - category
                    - state
                    - data
                - type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                    url:
                      type:
                        - string
                        - 'null'
                    deleted_at:
                      type:
                        - string
                        - 'null'
                    metadata:
                      type: object
                      properties:
                        element_id:
                          type: string
                        element_category:
                          type: string
                          enum: *a22
                        aspect_ratio:
                          type: string
                          enum: *a23
                        props:
                          type:
                            - object
                            - 'null'
                          additionalProperties: {}
                        configuration_settings:
                          type:
                            - object
                            - 'null'
                          additionalProperties: {}
                        render_dimensions:
                          type:
                            - object
                            - 'null'
                          properties:
                            width:
                              type: number
                            height:
                              type: number
                          required:
                            - width
                            - height
                      required:
                        - element_id
                        - element_category
                        - aspect_ratio
                        - props
                        - configuration_settings
                        - render_dimensions
                    last_error:
                      type:
                        - string
                        - 'null'
                    associated_product_id:
                      type:
                        - string
                        - 'null'
                    type:
                      type: string
                      const: Element
                    source:
                      type: string
                      const: Element
                    category:
                      type: string
                      enum: *a24
                    state:
                      type: string
                      enum: *a25
                    data:
                      type: object
                      properties:
                        thumbnail_url:
                          type:
                            - string
                            - 'null'
                        duration:
                          type:
                            - number
                            - 'null'
                        render_job_id:
                          type:
                            - string
                            - 'null'
                  required:
                    - id
                    - url
                    - metadata
                    - type
                    - source
                    - category
                    - state
                    - data
                - type: 'null'
          required:
            - text
            - theme
            - media
          description: Thumbnail for the series.
        styles:
          type:
            - object
            - 'null'
          properties:
            caption_active_word_background_color:
              anyOf:
                - type: string
                  const: transparent
                - type: string
                - type: array
                  items:
                    type: string
            caption_active_word_color:
              anyOf:
                - type: string
                  const: transparent
                - type: string
                - type: array
                  items:
                    type: string
                - type: 'null'
            caption_active_word_stroke_width:
              type: number
            caption_active_word_stroke_color:
              type: string
            caption_alignment:
              type: string
              enum: *a26
            caption_animation:
              type: string
              enum:
                - ZoomIn
            caption_background_color:
              anyOf:
                - type: string
                  const: transparent
                - type: string
                - type: array
                  items:
                    type: string
            caption_background_disabled:
              type: boolean
            caption_color:
              anyOf:
                - type: string
                  const: transparent
                - type: string
                - type: array
                  items:
                    type: string
            caption_display:
              type: string
              enum:
                - karaoke
                - phrase
                - word
                - none
            caption_font_family:
              type: string
            caption_font_size:
              type: number
            caption_keyword_color:
              anyOf:
                - type: string
                  const: transparent
                - type: string
                - type: array
                  items:
                    type: string
                - type: 'null'
            caption_rotate_occasionally:
              type: boolean
            caption_stroke_width:
              type: number
            caption_stroke_color:
              type: string
            caption_text_transform:
              type: string
              enum: *a27
          description: Styles for the series videos.
        image_style:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
              format: uuid
              description: Unique ID of the current image style.
            recommendations:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Unique ID of the recommended image style.
                  reason:
                    type: string
                    description: Reason for the recommended image style.
                required:
                  - id
                  - reason
          description: Image style for series. Null if no image style is configured.
        voice:
          type:
            - object
            - 'null'
          properties:
            voices:
              type: array
              items:
                $ref: '#/components/schemas/Voice'
              description: Voices for the series.
            playback_rate:
              type: number
              description: Voice playback rate.
            volume:
              type: number
              description: Voice volume.
          required:
            - voices
            - playback_rate
            - volume
          description: Voice configuration for the series. Null if no voice is configured.
        custom_watermark:
          type:
            - object
            - 'null'
          properties:
            caption_color:
              anyOf:
                - type: string
                  const: transparent
                - type: string
                - type: array
                  items:
                    type: string
            caption_stroke_color:
              type: string
            caption_stroke_width:
              type: number
            caption_alignment:
              type: string
              enum: *a26
            caption_font_family:
              type: string
            caption_font_size:
              type: number
            caption_text_transform:
              type: string
              enum: *a27
            text:
              type: string
              default: ''
          required:
            - text
          description: Custom watermark for the series (paid plans only).
        connections:
          type: array
          items:
            $ref: '#/components/schemas/Connection'
          description: Publishing connections for the series.
        hashtags:
          type:
            - string
            - 'null'
          description: List of custom hashtags for the series.
      required:
        - id
        - created_at
        - next_posting_at
        - type
        - schedule
        - aspect_ratio
        - soundtrack_behavior
        - locale
        - soundtrack
        - styles
        - image_style
        - voice
        - connections
      description: Public series information.
    Voice:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the voice.
        name:
          type: string
          description: Name of the voice.
        description:
          type:
            - string
            - 'null'
          description: Description of the voice.
        avatar_url:
          type:
            - string
            - 'null'
          description: Avatar url of the voice.
        flag_url:
          type:
            - string
            - 'null'
          description: Flag url of the voice.
        tags:
          type:
            - object
            - 'null'
          properties:
            language:
              type:
                - string
                - 'null'
            accent:
              type:
                - string
                - 'null'
            age:
              type:
                - string
                - 'null'
            category:
              type:
                - string
                - 'null'
            gender:
              type:
                - string
                - 'null'
            tone:
              type:
                - string
                - 'null'
            useCase:
              type:
                - string
                - 'null'
          description: Tags of the voice. Describe the characteristics of the voice.
        preview_url:
          type:
            - string
            - 'null'
          description: URL of the preview audio of the voice.
        locale:
          type:
            - string
            - 'null'
          enum:
            - af-ZA
            - id-ID
            - ms-MY
            - ca-ES
            - cs-CZ
            - da-DK
            - de-DE
            - en-US
            - es-ES
            - es-419
            - fr-CA
            - fr-FR
            - hr-HR
            - it-IT
            - hu-HU
            - nl-NL
            - no-NO
            - pl-PL
            - pt-BR
            - pt-PT
            - ro-RO
            - sk-SK
            - fi-FI
            - sv-SE
            - vi-VN
            - tr-TR
            - el-GR
            - ru-RU
            - sr-SP
            - uk-UA
            - hy-AM
            - he-IL
            - ur-PK
            - ar-SA
            - hi-IN
            - th-TH
            - ko-KR
            - ja-JP
            - zh-CN
            - zh-TW
            - null
          description: Locale of the voice.
        source:
          type: string
          enum: *a21
          description: Source of the voice.
      required:
        - id
        - name
        - description
        - tags
        - preview_url
        - locale
        - source
      description: A text-to-speech voice
    Connection:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique ID for the connection.
        type:
          type: string
          enum:
            - Email
            - TikTok
            - YouTube
            - X
            - Facebook
            - Instagram
          description: The publishing destination.
        name:
          type:
            - string
            - 'null'
          description: User-friendly name for the connection.
      required:
        - id
        - type
      description: A connection to a publishing destination
    Image:
      type: object
      properties:
        id:
          type: string
          format: uuid
        url:
          type:
            - string
            - 'null'
        associatedProductId:
          type:
            - string
            - 'null'
        type:
          type: string
          enum: *a13
        state:
          type: string
          enum: *a14
        created_at:
          type: string
          description: Date and time (ISO 8601) when the media was created.
        updated_at:
          type:
            - string
            - 'null'
          description: Date and time (ISO 8601) when the media was last updated.
        prompt:
          type: string
        is_nsfw:
          type: boolean
        aspect_ratio:
          type: string
          enum: *a7
          default: 9:16
          description: Aspect ratio of the generated image.
        image_style_id:
          type:
            - string
            - 'null'
          format: uuid
      required:
        - id
        - url
        - type
        - state
        - created_at
        - prompt
        - is_nsfw
        - aspect_ratio
    ImageStyle:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique ID of the image style.
        name:
          type: string
          description: Name of the image style.
        privacy:
          type: string
          enum:
            - Private
            - Public
            - System
          description: Privacy of the image style.
        prompt:
          type: string
          description: Prompt for the image style.
        examples:
          type: array
          items:
            type: string
          description: Examples of the image style.
      required:
        - id
        - name
        - privacy
        - prompt
        - examples
      description: A predefined image style
    Audio:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique ID of the audio.
        created_at:
          type: string
          description: Date and time (ISO 8601) when the audio media was created.
        updated_at:
          type:
            - string
            - 'null'
          description: Date and time (ISO 8601) when the audio media was last updated.
        url:
          type:
            - string
            - 'null'
          description: URL of the audio. Only available after the audio is generated.
        user_id:
          type: string
          format: uuid
          description: ID of the user who generated the audio.
        transcript:
          type:
            - object
            - 'null'
          properties:
            words:
              type: array
              items:
                type: object
                properties:
                  text:
                    type: string
                  start:
                    type: number
                  end:
                    type: number
                  confidence:
                    type: number
                required:
                  - text
                  - start
                  - end
          required:
            - words
          description: Transcript of the audio with timestamps. Only available after the
            audio is generated.
        category:
          type: string
          enum: *a28
          description: Category of the audio.
        state:
          type: string
          enum: *a29
          description: State of the audio generation.
        text:
          type:
            - string
            - 'null'
          description: Source text of the audio.
        locale:
          type:
            - string
            - 'null'
          enum:
            - af-ZA
            - id-ID
            - ms-MY
            - ca-ES
            - cs-CZ
            - da-DK
            - de-DE
            - en-US
            - es-ES
            - es-419
            - fr-CA
            - fr-FR
            - hr-HR
            - it-IT
            - hu-HU
            - nl-NL
            - no-NO
            - pl-PL
            - pt-BR
            - pt-PT
            - ro-RO
            - sk-SK
            - fi-FI
            - sv-SE
            - vi-VN
            - tr-TR
            - el-GR
            - ru-RU
            - sr-SP
            - uk-UA
            - hy-AM
            - he-IL
            - ur-PK
            - ar-SA
            - hi-IN
            - th-TH
            - ko-KR
            - ja-JP
            - zh-CN
            - zh-TW
            - null
          description: Locale of the audio to guide the AI. Auto-detected if not provided.
        voice:
          $ref: '#/components/schemas/Voice'
          description: Voice used to generate the audio.
        duration:
          type:
            - number
            - 'null'
          description: Duration of the generated audio. Only available after the audio is
            generated.
        lufs:
          type:
            - number
            - 'null'
          description: Loudness normalization value in LUFS. Only available after the
            audio is generated.
      required:
        - id
        - created_at
        - url
        - user_id
        - category
        - state
      description: Details about the created or retrieved audio media.
