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

# HappyHorse 1.0

Alibaba Happy Horse 1.0 with native audio, plus text-to-video, image-to-video, reference-to-video, and video edit workflows.


## OpenAPI

````yaml /openapi.json post /generation/happyhorse/happyhorse-1.0
openapi: 3.1.0
info:
  title: skills.video OpenAPI
  version: 1.0.0
  description: OpenAPI schema for skills.video API endpoints.
servers:
  - url: https://open.skills.video/api/v1
security: []
paths:
  /generation/happyhorse/happyhorse-1.0:
    post:
      summary: HappyHorse 1.0
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/happyhorse_happyhorse_1_0CreateRequest'
          multipart/form-data:
            schema:
              $ref: >-
                #/components/schemas/happyhorse_happyhorse_1_0MultipartCreateRequest
      responses:
        '200':
          description: Generation submission accepted
          content:
            application/json:
              example:
                id: gen_123
                status: IN_QUEUE
                input:
                  prompt: a cat walking through neon rain
                  duration: 5
                  aspect_ratio: '16:9'
                  'n': 1
                usage:
                  total: 20
                  subscription: 20
                  permanent: 0
              schema:
                $ref: '#/components/schemas/happyhorse_happyhorse_1_0Prediction'
        '400':
          description: >-
            Video generation request was rejected as invalid or model is not
            supported.
          content:
            application/json:
              example:
                error: VIDEO_GENERATION_INVALID_INPUT
                code: VIDEO_GENERATION_INVALID_INPUT
                message: '''prompt'' parameter is required'
              schema:
                anyOf:
                  - $ref: '#/components/schemas/VideoGenerationErrorResponse'
                  - $ref: '#/components/schemas/TemplateErrorResponse'
                  - $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required or failed
          content:
            application/json:
              example:
                error: UNAUTHORIZED
                code: UNAUTHORIZED
                message: Unauthorized
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Workspace does not have enough credits to run this generation.
          content:
            application/json:
              example:
                error: INSUFFICIENT_CREDITS
                code: VIDEO_GENERATION_INSUFFICIENT_CREDITS
                message: Insufficient credits for this generation.
              schema:
                $ref: '#/components/schemas/VideoGenerationErrorResponse'
        '403':
          description: Workspace access is forbidden or Seedance verification is required.
          content:
            application/json:
              example:
                error: WORKSPACE_FORBIDDEN
                code: WORKSPACE_FORBIDDEN
                message: You do not have access to this workspace.
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ErrorResponse'
                  - $ref: '#/components/schemas/SeedanceVerificationErrorResponse'
        '404':
          description: Resource, model, or template not found.
          content:
            application/json:
              example:
                error: TEMPLATE_NOT_FOUND
                code: TEMPLATE_NOT_FOUND
                message: Template not found.
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ErrorResponse'
                  - $ref: '#/components/schemas/TemplateErrorResponse'
        '422':
          description: Upstream moderation rejected the request content.
          content:
            application/json:
              example:
                error: VIDEO_GENERATION_CONTENT_REJECTED
                code: VIDEO_GENERATION_CONTENT_REJECTED
                message: Request content was rejected by the moderation policy.
              schema:
                $ref: '#/components/schemas/VideoGenerationErrorResponse'
        '429':
          description: Generation rate limit exceeded upstream.
          content:
            application/json:
              example:
                error: VIDEO_GENERATION_RATE_LIMITED
                code: VIDEO_GENERATION_RATE_LIMITED
                message: Rate limit exceeded. Please retry later.
              schema:
                $ref: '#/components/schemas/VideoGenerationErrorResponse'
        '500':
          description: >-
            Video generation failed before provider execution completed.
            Response includes code and message fields.
          content:
            application/json:
              example:
                error: VIDEO_GENERATION_FAILED
                code: VIDEO_GENERATION_FAILED
                message: Generation failed.
              schema:
                anyOf:
                  - $ref: '#/components/schemas/VideoGenerationErrorResponse'
                  - $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: >-
            Video generation failed. Returned when the upstream provider reports
            a generic failure.
          content:
            application/json:
              example:
                error: VIDEO_GENERATION_FAILED
                code: VIDEO_GENERATION_FAILED
                message: Generation failed.
              schema:
                $ref: '#/components/schemas/VideoGenerationErrorResponse'
        '503':
          description: Upstream generation provider is unavailable.
          content:
            application/json:
              example:
                error: VIDEO_GENERATION_PROVIDER_UNAVAILABLE
                code: VIDEO_GENERATION_PROVIDER_UNAVAILABLE
                message: Upstream generation provider is temporarily unavailable.
              schema:
                $ref: '#/components/schemas/VideoGenerationErrorResponse'
        '504':
          description: Video generation exceeded the upstream timeout.
          content:
            application/json:
              example:
                error: VIDEO_GENERATION_TIMEOUT
                code: VIDEO_GENERATION_TIMEOUT
                message: Generation timed out.
              schema:
                $ref: '#/components/schemas/VideoGenerationErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    happyhorse_happyhorse_1_0CreateRequest:
      $ref: '#/components/schemas/happyhorse_happyhorse_1_0Input'
      title: Input
      xMeta:
        input_video_duration: video_url
        video_duration: video_url
    happyhorse_happyhorse_1_0MultipartCreateRequest:
      title: Input
      xMeta:
        input_video_duration: video_url
        video_duration: video_url
      allOf:
        - title: Input
          xMeta:
            input_video_duration: video_url
            video_duration: video_url
          type: object
          properties:
            feature:
              description: >-
                Workflow type: text-to-video, image-to-video,
                reference-to-video, or edit-video.
              title: Feature
              order: 0
              default: text-to-video
              type: string
              enum:
                - text-to-video
                - image-to-video
                - reference-to-video
                - edit-video
            prompt:
              description: >-
                Prompt describing the video scene, motion, style, or requested
                edit.
              title: Prompt
              order: 1
              type: string
              minLength: 1
            image_url:
              description: >-
                Source image URL for image-to-video. When using
                application/json, send a public URL. When using
                multipart/form-data, send either a public URL or a binary file
                upload.
              title: Image
              order: 2
              x-cli-aliases:
                - image
              anyOf:
                - anyOf:
                    - format: uri
                      type: string
                    - format: binary
                      type: string
                - type: 'null'
            image_urls:
              description: >-
                Reference image URLs for reference-to-video. Single-image
                requests may also use this as a compatibility alias.
              title: Reference Images
              order: 3
              x-cli-aliases:
                - image
                - images
              maxItems: 9
              type: array
              items:
                description: >-
                  When using application/json, send a public URL. When using
                  multipart/form-data, send either a public URL or a binary file
                  upload.
                anyOf:
                  - format: uri
                    type: string
                  - format: binary
                    type: string
            reference_image_urls:
              description: >-
                Reference image URLs. reference-to-video supports 1-9 images;
                edit-video supports up to 5 guide images.
              title: Reference Images
              order: 4
              x-cli-aliases:
                - reference-image
                - reference-images
              maxItems: 9
              type: array
              items:
                description: >-
                  When using application/json, send a public URL. When using
                  multipart/form-data, send either a public URL or a binary file
                  upload.
                anyOf:
                  - format: uri
                    type: string
                  - format: binary
                    type: string
            video_url:
              description: >-
                Source video URL for edit-video. When using application/json,
                send a public URL. When using multipart/form-data, send either a
                public URL or a binary file upload.
              title: Video
              order: 6
              x-cli-aliases:
                - video
              anyOf:
                - anyOf:
                    - format: uri
                      type: string
                    - format: binary
                      type: string
                - type: 'null'
            resolution:
              description: Output video resolution tier.
              title: Resolution
              order: 7
              default: 1080p
              type: string
              enum:
                - 720p
                - 1080p
            aspect_ratio:
              description: >-
                Output video aspect ratio for text-to-video and
                reference-to-video.
              title: Aspect Ratio
              order: 8
              default: '16:9'
              type: string
              enum:
                - '16:9'
                - '9:16'
                - '1:1'
                - '4:3'
                - '3:4'
            duration:
              description: Output video duration in seconds.
              title: Duration
              order: 9
              default: 5
              type: integer
              minimum: 3
              maximum: 15
            audio_setting:
              description: >-
                Audio handling for edit-video. 'origin' preserves the input
                video's audio.
              title: Audio Setting
              order: 10
              default: auto
              type: string
              enum:
                - auto
                - origin
            seed:
              description: Random seed for reproducible generation.
              title: Seed
              order: 11
              anyOf:
                - type: integer
                  minimum: 0
                  maximum: 2147483647
                - type: 'null'
          additionalProperties: {}
        - anyOf:
            - title: Text to Video
              type: object
              properties:
                feature:
                  type: string
                  enum:
                    - text-to-video
                prompt: {}
                aspect_ratio: {}
                resolution: {}
                duration: {}
                seed: {}
              required:
                - prompt
              additionalProperties: {}
            - title: Image to Video
              allOf:
                - title: Image to Video
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - image-to-video
                    image_url:
                      x-cli-aliases:
                        - image
                    image_urls:
                      x-cli-aliases:
                        - image
                        - images
                      minItems: 1
                      maxItems: 1
                      type: array
                      items:
                        description: >-
                          When using application/json, send a public URL. When
                          using multipart/form-data, send either a public URL or
                          a binary file upload.
                        anyOf:
                          - format: uri
                            type: string
                          - format: binary
                            type: string
                    prompt: {}
                    resolution: {}
                    duration: {}
                    seed: {}
                  additionalProperties: {}
                - anyOf:
                    - type: object
                      properties:
                        image_url:
                          x-cli-aliases:
                            - image
                      required:
                        - image_url
                      additionalProperties: {}
                    - type: object
                      properties:
                        image_urls:
                          x-cli-aliases:
                            - image
                            - images
                      required:
                        - image_urls
                      additionalProperties: {}
            - title: Reference to Video
              allOf:
                - title: Reference to Video
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - reference-to-video
                    prompt: {}
                    image_urls:
                      x-cli-aliases:
                        - image
                        - images
                      minItems: 1
                      type: array
                      items:
                        description: >-
                          When using application/json, send a public URL. When
                          using multipart/form-data, send either a public URL or
                          a binary file upload.
                        anyOf:
                          - format: uri
                            type: string
                          - format: binary
                            type: string
                    reference_image_urls:
                      x-cli-aliases:
                        - reference-image
                        - reference-images
                      minItems: 1
                      type: array
                      items:
                        description: >-
                          When using application/json, send a public URL. When
                          using multipart/form-data, send either a public URL or
                          a binary file upload.
                        anyOf:
                          - format: uri
                            type: string
                          - format: binary
                            type: string
                    aspect_ratio: {}
                    resolution: {}
                    duration: {}
                    seed: {}
                  required:
                    - prompt
                  additionalProperties: {}
                - anyOf:
                    - type: object
                      properties:
                        image_urls:
                          x-cli-aliases:
                            - image
                            - images
                      required:
                        - image_urls
                      additionalProperties: {}
                    - type: object
                      properties:
                        reference_image_urls:
                          x-cli-aliases:
                            - reference-image
                            - reference-images
                      required:
                        - reference_image_urls
                      additionalProperties: {}
            - title: Edit Video
              type: object
              properties:
                feature:
                  type: string
                  enum:
                    - edit-video
                prompt: {}
                video_url:
                  x-cli-aliases:
                    - video
                reference_image_urls:
                  x-cli-aliases:
                    - reference-image
                    - reference-images
                  maxItems: 5
                  type: array
                  items:
                    description: >-
                      When using application/json, send a public URL. When using
                      multipart/form-data, send either a public URL or a binary
                      file upload.
                    anyOf:
                      - format: uri
                        type: string
                      - format: binary
                        type: string
                resolution: {}
                audio_setting: {}
                seed: {}
              required:
                - prompt
                - video_url
              additionalProperties: {}
    happyhorse_happyhorse_1_0Prediction:
      type: object
      properties:
        id:
          description: Generation id.
          type: string
        status:
          $ref: '#/components/schemas/QueueState'
        input:
          $ref: '#/components/schemas/happyhorse_happyhorse_1_0InputOutput'
          title: Input
          xMeta:
            input_video_duration: video_url
            video_duration: video_url
          description: Normalized input payload for the generation task.
        usage:
          $ref: '#/components/schemas/Usage'
        code:
          $ref: '#/components/schemas/__schema1'
        message:
          $ref: '#/components/schemas/__schema2'
      required:
        - id
        - status
        - input
        - usage
      additionalProperties: false
    VideoGenerationErrorResponse:
      type: object
      properties:
        error:
          description: >-
            Legacy machine-readable error field. Prefer `code` for new
            integrations.
          type: string
        code:
          description: >-
            Video generation error code. `*_FAILED` is the generic fallback;
            more specific codes (`*_TIMEOUT`, `*_RATE_LIMITED`,
            `*_PROVIDER_UNAVAILABLE`, `*_UNSUPPORTED_MODEL`, `*_INVALID_INPUT`,
            `*_INSUFFICIENT_CREDITS`, `*_CONTENT_REJECTED`) are surfaced when
            applicable.
          type: string
          enum:
            - VIDEO_GENERATION_FAILED
            - VIDEO_GENERATION_TIMEOUT
            - VIDEO_GENERATION_RATE_LIMITED
            - VIDEO_GENERATION_PROVIDER_UNAVAILABLE
            - VIDEO_GENERATION_UNSUPPORTED_MODEL
            - VIDEO_GENERATION_INVALID_INPUT
            - VIDEO_GENERATION_INSUFFICIENT_CREDITS
            - VIDEO_GENERATION_CONTENT_REJECTED
        message:
          description: Human readable error message. Upstream vendor names are redacted.
          type: string
        errors:
          description: Field-level validation errors when available.
          type: array
          items:
            type: object
            properties:
              path:
                type: string
              message:
                type: string
              code:
                type: string
            required:
              - path
              - message
              - code
            additionalProperties: false
        details:
          description: Additional structured error details when available.
        requested:
          description: Requested credits when the error is insufficient credits.
          type: number
        available:
          description: Available credits when the error is insufficient credits.
          type: number
      required:
        - code
        - message
      additionalProperties: false
    TemplateErrorResponse:
      type: object
      properties:
        error:
          description: >-
            Legacy machine-readable error field. Prefer `code` for new
            integrations.
          type: string
        code:
          description: Template error code.
          type: string
          enum:
            - TEMPLATE_NOT_FOUND
            - TEMPLATE_MODEL_MISMATCH
            - TEMPLATE_INVALID_INPUT
            - TEMPLATE_TRANSFORM_FAILED
        message:
          description: Human readable template error message.
          type: string
        errors:
          description: Field-level template validation errors when available.
          type: array
          items:
            type: object
            properties:
              path:
                type: string
              message:
                type: string
              code:
                type: string
            required:
              - path
              - message
              - code
            additionalProperties: false
        details:
          description: Additional structured error details when available.
      required:
        - code
        - message
      additionalProperties: false
    ErrorResponse:
      type: object
      properties:
        error:
          description: >-
            Legacy machine-readable error field. Prefer `code` for new
            integrations. This may contain an unprefixed compatibility code for
            older clients.
          type: string
        code:
          description: Machine-readable error code. Use this to branch in client code.
          type: string
        message:
          description: Human readable error message.
          type: string
        errors:
          description: Field-level validation errors when available.
          type: array
          items:
            type: object
            properties:
              path:
                type: string
              message:
                type: string
              code:
                type: string
            required:
              - path
              - message
              - code
            additionalProperties: false
        details:
          description: Additional structured error details when available.
      required:
        - code
        - message
      additionalProperties: false
    SeedanceVerificationErrorResponse:
      type: object
      properties:
        error:
          description: >-
            Legacy machine-readable error field. Prefer `code` for new
            integrations.
          type: string
        code:
          description: Seedance verification error code.
          type: string
          const: SEEDANCE_VERIFICATION_REQUIRED
        message:
          description: Human readable verification error message.
          type: string
        verification:
          description: Current Seedance verification state when available.
          anyOf:
            - {}
            - type: 'null'
      required:
        - code
        - message
      additionalProperties: false
    happyhorse_happyhorse_1_0Input:
      title: Input
      oneOf:
        - title: Text To Video
          allOf:
            - title: Input
              xMeta:
                input_video_duration: video_url
                video_duration: video_url
              type: object
              properties:
                feature:
                  description: >-
                    Workflow type: text-to-video, image-to-video,
                    reference-to-video, or edit-video.
                  title: Feature
                  order: 0
                  type: string
                  const: text-to-video
                prompt:
                  description: >-
                    Prompt describing the video scene, motion, style, or
                    requested edit.
                  title: Prompt
                  order: 1
                  type: string
                  minLength: 1
                image_url:
                  description: Source image URL for image-to-video.
                  title: Image
                  format: uri
                  order: 2
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                image_urls:
                  description: >-
                    Reference image URLs for reference-to-video. Single-image
                    requests may also use this as a compatibility alias.
                  title: Reference Images
                  order: 3
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  description: >-
                    Reference image URLs. reference-to-video supports 1-9
                    images; edit-video supports up to 5 guide images.
                  title: Reference Images
                  order: 4
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                video_url:
                  description: Source video URL for edit-video.
                  title: Video
                  format: uri
                  order: 6
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                resolution:
                  description: Output video resolution tier.
                  title: Resolution
                  order: 7
                  default: 1080p
                  type: string
                  enum:
                    - 720p
                    - 1080p
                aspect_ratio:
                  description: >-
                    Output video aspect ratio for text-to-video and
                    reference-to-video.
                  title: Aspect Ratio
                  order: 8
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                duration:
                  description: Output video duration in seconds.
                  title: Duration
                  order: 9
                  default: 5
                  type: integer
                  minimum: 3
                  maximum: 15
                audio_setting:
                  description: >-
                    Audio handling for edit-video. 'origin' preserves the input
                    video's audio.
                  title: Audio Setting
                  order: 10
                  default: auto
                  type: string
                  enum:
                    - auto
                    - origin
                seed:
                  description: Random seed for reproducible generation.
                  title: Seed
                  order: 11
                  anyOf:
                    - type: integer
                      minimum: 0
                      maximum: 2147483647
                    - type: 'null'
              additionalProperties: {}
            - title: Text to Video
              type: object
              properties:
                feature:
                  type: string
                  const: text-to-video
                prompt: {}
                aspect_ratio: {}
                resolution: {}
                duration: {}
                seed: {}
              required:
                - prompt
              additionalProperties: {}
        - title: Image To Video
          allOf:
            - title: Input
              xMeta:
                input_video_duration: video_url
                video_duration: video_url
              type: object
              properties:
                feature:
                  description: >-
                    Workflow type: text-to-video, image-to-video,
                    reference-to-video, or edit-video.
                  title: Feature
                  order: 0
                  type: string
                  const: image-to-video
                prompt:
                  description: >-
                    Prompt describing the video scene, motion, style, or
                    requested edit.
                  title: Prompt
                  order: 1
                  type: string
                  minLength: 1
                image_url:
                  description: Source image URL for image-to-video.
                  title: Image
                  format: uri
                  order: 2
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                image_urls:
                  description: >-
                    Reference image URLs for reference-to-video. Single-image
                    requests may also use this as a compatibility alias.
                  title: Reference Images
                  order: 3
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  description: >-
                    Reference image URLs. reference-to-video supports 1-9
                    images; edit-video supports up to 5 guide images.
                  title: Reference Images
                  order: 4
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                video_url:
                  description: Source video URL for edit-video.
                  title: Video
                  format: uri
                  order: 6
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                resolution:
                  description: Output video resolution tier.
                  title: Resolution
                  order: 7
                  default: 1080p
                  type: string
                  enum:
                    - 720p
                    - 1080p
                aspect_ratio:
                  description: >-
                    Output video aspect ratio for text-to-video and
                    reference-to-video.
                  title: Aspect Ratio
                  order: 8
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                duration:
                  description: Output video duration in seconds.
                  title: Duration
                  order: 9
                  default: 5
                  type: integer
                  minimum: 3
                  maximum: 15
                audio_setting:
                  description: >-
                    Audio handling for edit-video. 'origin' preserves the input
                    video's audio.
                  title: Audio Setting
                  order: 10
                  default: auto
                  type: string
                  enum:
                    - auto
                    - origin
                seed:
                  description: Random seed for reproducible generation.
                  title: Seed
                  order: 11
                  anyOf:
                    - type: integer
                      minimum: 0
                      maximum: 2147483647
                    - type: 'null'
              additionalProperties: {}
            - title: Image to Video
              type: object
              properties:
                feature:
                  type: string
                  const: image-to-video
                image_url: {}
                image_urls:
                  minItems: 1
                  maxItems: 1
                  type: array
                  items:
                    format: uri
                    type: string
                prompt: {}
                resolution: {}
                duration: {}
                seed: {}
              additionalProperties: {}
        - title: Reference To Video
          allOf:
            - title: Input
              xMeta:
                input_video_duration: video_url
                video_duration: video_url
              type: object
              properties:
                feature:
                  description: >-
                    Workflow type: text-to-video, image-to-video,
                    reference-to-video, or edit-video.
                  title: Feature
                  order: 0
                  type: string
                  const: reference-to-video
                prompt:
                  description: >-
                    Prompt describing the video scene, motion, style, or
                    requested edit.
                  title: Prompt
                  order: 1
                  type: string
                  minLength: 1
                image_url:
                  description: Source image URL for image-to-video.
                  title: Image
                  format: uri
                  order: 2
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                image_urls:
                  description: >-
                    Reference image URLs for reference-to-video. Single-image
                    requests may also use this as a compatibility alias.
                  title: Reference Images
                  order: 3
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  description: >-
                    Reference image URLs. reference-to-video supports 1-9
                    images; edit-video supports up to 5 guide images.
                  title: Reference Images
                  order: 4
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                video_url:
                  description: Source video URL for edit-video.
                  title: Video
                  format: uri
                  order: 6
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                resolution:
                  description: Output video resolution tier.
                  title: Resolution
                  order: 7
                  default: 1080p
                  type: string
                  enum:
                    - 720p
                    - 1080p
                aspect_ratio:
                  description: >-
                    Output video aspect ratio for text-to-video and
                    reference-to-video.
                  title: Aspect Ratio
                  order: 8
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                duration:
                  description: Output video duration in seconds.
                  title: Duration
                  order: 9
                  default: 5
                  type: integer
                  minimum: 3
                  maximum: 15
                audio_setting:
                  description: >-
                    Audio handling for edit-video. 'origin' preserves the input
                    video's audio.
                  title: Audio Setting
                  order: 10
                  default: auto
                  type: string
                  enum:
                    - auto
                    - origin
                seed:
                  description: Random seed for reproducible generation.
                  title: Seed
                  order: 11
                  anyOf:
                    - type: integer
                      minimum: 0
                      maximum: 2147483647
                    - type: 'null'
              additionalProperties: {}
            - title: Reference to Video
              type: object
              properties:
                feature:
                  type: string
                  const: reference-to-video
                prompt: {}
                image_urls:
                  minItems: 1
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  minItems: 1
                  type: array
                  items:
                    format: uri
                    type: string
                aspect_ratio: {}
                resolution: {}
                duration: {}
                seed: {}
              required:
                - prompt
              additionalProperties: {}
        - title: Edit Video
          allOf:
            - title: Input
              xMeta:
                input_video_duration: video_url
                video_duration: video_url
              type: object
              properties:
                feature:
                  description: >-
                    Workflow type: text-to-video, image-to-video,
                    reference-to-video, or edit-video.
                  title: Feature
                  order: 0
                  type: string
                  const: edit-video
                prompt:
                  description: >-
                    Prompt describing the video scene, motion, style, or
                    requested edit.
                  title: Prompt
                  order: 1
                  type: string
                  minLength: 1
                image_url:
                  description: Source image URL for image-to-video.
                  title: Image
                  format: uri
                  order: 2
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                image_urls:
                  description: >-
                    Reference image URLs for reference-to-video. Single-image
                    requests may also use this as a compatibility alias.
                  title: Reference Images
                  order: 3
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  description: >-
                    Reference image URLs. reference-to-video supports 1-9
                    images; edit-video supports up to 5 guide images.
                  title: Reference Images
                  order: 4
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                video_url:
                  description: Source video URL for edit-video.
                  title: Video
                  format: uri
                  order: 6
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                resolution:
                  description: Output video resolution tier.
                  title: Resolution
                  order: 7
                  default: 1080p
                  type: string
                  enum:
                    - 720p
                    - 1080p
                aspect_ratio:
                  description: >-
                    Output video aspect ratio for text-to-video and
                    reference-to-video.
                  title: Aspect Ratio
                  order: 8
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                duration:
                  description: Output video duration in seconds.
                  title: Duration
                  order: 9
                  default: 5
                  type: integer
                  minimum: 3
                  maximum: 15
                audio_setting:
                  description: >-
                    Audio handling for edit-video. 'origin' preserves the input
                    video's audio.
                  title: Audio Setting
                  order: 10
                  default: auto
                  type: string
                  enum:
                    - auto
                    - origin
                seed:
                  description: Random seed for reproducible generation.
                  title: Seed
                  order: 11
                  anyOf:
                    - type: integer
                      minimum: 0
                      maximum: 2147483647
                    - type: 'null'
              additionalProperties: {}
            - title: Edit Video
              type: object
              properties:
                feature:
                  type: string
                  const: edit-video
                prompt: {}
                video_url: {}
                reference_image_urls:
                  maxItems: 5
                  type: array
                  items:
                    format: uri
                    type: string
                resolution: {}
                audio_setting: {}
                seed: {}
              required:
                - prompt
                - video_url
              additionalProperties: {}
    QueueState:
      description: Queue status
      type: string
      enum:
        - IN_QUEUE
        - IN_PROGRESS
        - COMPLETED
        - FAILED
        - CANCELED
    happyhorse_happyhorse_1_0InputOutput:
      $ref: '#/components/schemas/__schema18'
      title: Input
      xMeta:
        input_video_duration: video_url
        video_duration: video_url
    Usage:
      description: Credit usage breakdown for the request
      type: object
      properties:
        total:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        subscription:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        permanent:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      required:
        - total
        - subscription
        - permanent
      additionalProperties: false
    __schema1:
      description: >-
        Machine-readable generation error code. Present when `status` is
        `FAILED`.
      type: string
    __schema2:
      description: >-
        Sanitized human-readable failure message. Present when `status` is
        `FAILED`.
      type: string
    __schema18:
      title: Input
      oneOf:
        - title: Text To Video
          allOf:
            - title: Input
              xMeta:
                input_video_duration: video_url
                video_duration: video_url
              type: object
              properties:
                feature:
                  description: >-
                    Workflow type: text-to-video, image-to-video,
                    reference-to-video, or edit-video.
                  title: Feature
                  order: 0
                  type: string
                  const: text-to-video
                prompt:
                  description: >-
                    Prompt describing the video scene, motion, style, or
                    requested edit.
                  title: Prompt
                  order: 1
                  type: string
                  minLength: 1
                image_url:
                  description: Source image URL for image-to-video.
                  title: Image
                  format: uri
                  order: 2
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                image_urls:
                  description: >-
                    Reference image URLs for reference-to-video. Single-image
                    requests may also use this as a compatibility alias.
                  title: Reference Images
                  order: 3
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  description: >-
                    Reference image URLs. reference-to-video supports 1-9
                    images; edit-video supports up to 5 guide images.
                  title: Reference Images
                  order: 4
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                video_url:
                  description: Source video URL for edit-video.
                  title: Video
                  format: uri
                  order: 6
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                resolution:
                  description: Output video resolution tier.
                  title: Resolution
                  order: 7
                  default: 1080p
                  type: string
                  enum:
                    - 720p
                    - 1080p
                aspect_ratio:
                  description: >-
                    Output video aspect ratio for text-to-video and
                    reference-to-video.
                  title: Aspect Ratio
                  order: 8
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                duration:
                  description: Output video duration in seconds.
                  title: Duration
                  order: 9
                  default: 5
                  type: integer
                  minimum: 3
                  maximum: 15
                audio_setting:
                  description: >-
                    Audio handling for edit-video. 'origin' preserves the input
                    video's audio.
                  title: Audio Setting
                  order: 10
                  default: auto
                  type: string
                  enum:
                    - auto
                    - origin
                seed:
                  description: Random seed for reproducible generation.
                  title: Seed
                  order: 11
                  anyOf:
                    - type: integer
                      minimum: 0
                      maximum: 2147483647
                    - type: 'null'
              additionalProperties: {}
            - title: Text to Video
              type: object
              properties:
                feature:
                  type: string
                  const: text-to-video
                prompt: {}
                aspect_ratio: {}
                resolution: {}
                duration: {}
                seed: {}
              required:
                - prompt
              additionalProperties: {}
        - title: Image To Video
          allOf:
            - title: Input
              xMeta:
                input_video_duration: video_url
                video_duration: video_url
              type: object
              properties:
                feature:
                  description: >-
                    Workflow type: text-to-video, image-to-video,
                    reference-to-video, or edit-video.
                  title: Feature
                  order: 0
                  type: string
                  const: image-to-video
                prompt:
                  description: >-
                    Prompt describing the video scene, motion, style, or
                    requested edit.
                  title: Prompt
                  order: 1
                  type: string
                  minLength: 1
                image_url:
                  description: Source image URL for image-to-video.
                  title: Image
                  format: uri
                  order: 2
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                image_urls:
                  description: >-
                    Reference image URLs for reference-to-video. Single-image
                    requests may also use this as a compatibility alias.
                  title: Reference Images
                  order: 3
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  description: >-
                    Reference image URLs. reference-to-video supports 1-9
                    images; edit-video supports up to 5 guide images.
                  title: Reference Images
                  order: 4
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                video_url:
                  description: Source video URL for edit-video.
                  title: Video
                  format: uri
                  order: 6
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                resolution:
                  description: Output video resolution tier.
                  title: Resolution
                  order: 7
                  default: 1080p
                  type: string
                  enum:
                    - 720p
                    - 1080p
                aspect_ratio:
                  description: >-
                    Output video aspect ratio for text-to-video and
                    reference-to-video.
                  title: Aspect Ratio
                  order: 8
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                duration:
                  description: Output video duration in seconds.
                  title: Duration
                  order: 9
                  default: 5
                  type: integer
                  minimum: 3
                  maximum: 15
                audio_setting:
                  description: >-
                    Audio handling for edit-video. 'origin' preserves the input
                    video's audio.
                  title: Audio Setting
                  order: 10
                  default: auto
                  type: string
                  enum:
                    - auto
                    - origin
                seed:
                  description: Random seed for reproducible generation.
                  title: Seed
                  order: 11
                  anyOf:
                    - type: integer
                      minimum: 0
                      maximum: 2147483647
                    - type: 'null'
              additionalProperties: {}
            - title: Image to Video
              type: object
              properties:
                feature:
                  type: string
                  const: image-to-video
                image_url: {}
                image_urls:
                  minItems: 1
                  maxItems: 1
                  type: array
                  items:
                    format: uri
                    type: string
                prompt: {}
                resolution: {}
                duration: {}
                seed: {}
              additionalProperties: {}
        - title: Reference To Video
          allOf:
            - title: Input
              xMeta:
                input_video_duration: video_url
                video_duration: video_url
              type: object
              properties:
                feature:
                  description: >-
                    Workflow type: text-to-video, image-to-video,
                    reference-to-video, or edit-video.
                  title: Feature
                  order: 0
                  type: string
                  const: reference-to-video
                prompt:
                  description: >-
                    Prompt describing the video scene, motion, style, or
                    requested edit.
                  title: Prompt
                  order: 1
                  type: string
                  minLength: 1
                image_url:
                  description: Source image URL for image-to-video.
                  title: Image
                  format: uri
                  order: 2
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                image_urls:
                  description: >-
                    Reference image URLs for reference-to-video. Single-image
                    requests may also use this as a compatibility alias.
                  title: Reference Images
                  order: 3
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  description: >-
                    Reference image URLs. reference-to-video supports 1-9
                    images; edit-video supports up to 5 guide images.
                  title: Reference Images
                  order: 4
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                video_url:
                  description: Source video URL for edit-video.
                  title: Video
                  format: uri
                  order: 6
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                resolution:
                  description: Output video resolution tier.
                  title: Resolution
                  order: 7
                  default: 1080p
                  type: string
                  enum:
                    - 720p
                    - 1080p
                aspect_ratio:
                  description: >-
                    Output video aspect ratio for text-to-video and
                    reference-to-video.
                  title: Aspect Ratio
                  order: 8
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                duration:
                  description: Output video duration in seconds.
                  title: Duration
                  order: 9
                  default: 5
                  type: integer
                  minimum: 3
                  maximum: 15
                audio_setting:
                  description: >-
                    Audio handling for edit-video. 'origin' preserves the input
                    video's audio.
                  title: Audio Setting
                  order: 10
                  default: auto
                  type: string
                  enum:
                    - auto
                    - origin
                seed:
                  description: Random seed for reproducible generation.
                  title: Seed
                  order: 11
                  anyOf:
                    - type: integer
                      minimum: 0
                      maximum: 2147483647
                    - type: 'null'
              additionalProperties: {}
            - title: Reference to Video
              type: object
              properties:
                feature:
                  type: string
                  const: reference-to-video
                prompt: {}
                image_urls:
                  minItems: 1
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  minItems: 1
                  type: array
                  items:
                    format: uri
                    type: string
                aspect_ratio: {}
                resolution: {}
                duration: {}
                seed: {}
              required:
                - prompt
              additionalProperties: {}
        - title: Edit Video
          allOf:
            - title: Input
              xMeta:
                input_video_duration: video_url
                video_duration: video_url
              type: object
              properties:
                feature:
                  description: >-
                    Workflow type: text-to-video, image-to-video,
                    reference-to-video, or edit-video.
                  title: Feature
                  order: 0
                  type: string
                  const: edit-video
                prompt:
                  description: >-
                    Prompt describing the video scene, motion, style, or
                    requested edit.
                  title: Prompt
                  order: 1
                  type: string
                  minLength: 1
                image_url:
                  description: Source image URL for image-to-video.
                  title: Image
                  format: uri
                  order: 2
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                image_urls:
                  description: >-
                    Reference image URLs for reference-to-video. Single-image
                    requests may also use this as a compatibility alias.
                  title: Reference Images
                  order: 3
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                reference_image_urls:
                  description: >-
                    Reference image URLs. reference-to-video supports 1-9
                    images; edit-video supports up to 5 guide images.
                  title: Reference Images
                  order: 4
                  maxItems: 9
                  type: array
                  items:
                    format: uri
                    type: string
                video_url:
                  description: Source video URL for edit-video.
                  title: Video
                  format: uri
                  order: 6
                  anyOf:
                    - format: uri
                      type: string
                    - type: 'null'
                resolution:
                  description: Output video resolution tier.
                  title: Resolution
                  order: 7
                  default: 1080p
                  type: string
                  enum:
                    - 720p
                    - 1080p
                aspect_ratio:
                  description: >-
                    Output video aspect ratio for text-to-video and
                    reference-to-video.
                  title: Aspect Ratio
                  order: 8
                  default: '16:9'
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                duration:
                  description: Output video duration in seconds.
                  title: Duration
                  order: 9
                  default: 5
                  type: integer
                  minimum: 3
                  maximum: 15
                audio_setting:
                  description: >-
                    Audio handling for edit-video. 'origin' preserves the input
                    video's audio.
                  title: Audio Setting
                  order: 10
                  default: auto
                  type: string
                  enum:
                    - auto
                    - origin
                seed:
                  description: Random seed for reproducible generation.
                  title: Seed
                  order: 11
                  anyOf:
                    - type: integer
                      minimum: 0
                      maximum: 2147483647
                    - type: 'null'
              additionalProperties: {}
            - title: Edit Video
              type: object
              properties:
                feature:
                  type: string
                  const: edit-video
                prompt: {}
                video_url: {}
                reference_image_urls:
                  maxItems: 5
                  type: array
                  items:
                    format: uri
                    type: string
                resolution: {}
                audio_setting: {}
                seed: {}
              required:
                - prompt
                - video_url
              additionalProperties: {}
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API Key for API endpoints

````