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

# HappyHorse 1.0 Video Edit

> The HappyHorse video editing model supports input videos and reference images, and performs editing tasks such as style transformation and partial replacement in combination with text instructions.

## Query Task Status

After submitting a task, use the unified query endpoint to check progress and retrieve results:

<Card title="Get Task Info" icon="magnifying-glass" href="/models/common/get-task-info">
  Learn how to query task status and retrieve generation results
</Card>

<Tip>
  For production use, we recommend using the `callback_url` parameter to receive automatic notifications when generation completes, rather than polling the status endpoint.
</Tip>

## Related Resources

<CardGroup cols={2}>
  <Card title="Models Overview" icon="store" href="/models/quickstart">
    Explore all available models
  </Card>

  <Card title="Common API" icon="gear" href="/common-api/get-account-credits">
    Check credits and account usage
  </Card>
</CardGroup>


## OpenAPI

````yaml models/happyhorse/video-edit.json post /api/v1/client/job/CreateTask
openapi: 3.0.0
info:
  title: Crun HappyHorse 1.0 Video Edit API
  description: crun.ai HappyHorse 1.0 Video API Documentation
  version: 1.0.0
  contact:
    name: Technical Support
    email: support@crun.ai
servers:
  - url: https://api.crun.ai
    description: API Server
security:
  - ApiKeyAuth: []
paths:
  /api/v1/client/job/CreateTask:
    post:
      summary: Edit video using HappyHorse 1.0 video edit
      operationId: happyhorse-1-0-video-edit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              properties:
                model:
                  type: string
                  enum:
                    - happyhorse-1-0-video-edit
                  description: |-
                    The model name to use for generation. Required field.

                    - Must be `happyhorse-1-0-video-edit` for this endpoint
                callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. Callback URL for receiving task completion
                    notifications.
                  example: https://your-domain.com/api/callback
                input:
                  type: object
                  description: Input parameters for the HappyHorse 1.0 video editing task.
                  required:
                    - prompt
                    - video_url
                  properties:
                    prompt:
                      type: string
                      description: Text prompt describing the video edit.
                      minLength: 1
                      maxLength: 5000
                      example: >-
                        Transform the scene into a snowy mountain trail while
                        preserving the subject motion.
                    video_url:
                      type: string
                      format: uri
                      description: >-
                        Publicly accessible URL of the video to edit.


                        **Video restrictions**:

                        - The URL must be publicly accessible.

                        - Supported formats: MP4, MOV. H.264 encoding is
                        recommended.

                        - Duration: 3 to 60 seconds.

                        - Resolution: long side up to 2160 pixels, short side at
                        least 320 pixels.

                        - Aspect ratio: 1:2.5 to 2.5:1.

                        - File size: up to 100 MB.

                        - Frame rate: greater than 8 fps.


                        **Output duration**:

                        - Output video duration is 3 to 15 seconds.

                        - When the input video is 15 seconds or shorter, the
                        output duration remains the same as the input.

                        - When the input video is longer than 15 seconds, the
                        system automatically uses the first 15 seconds as the
                        effective segment, so the maximum output duration is 15
                        seconds.
                      example: https://example.com/input-video.mp4
                    img_urls:
                      type: array
                      description: >-
                        Optional reference image URLs.


                        **Image restrictions**:

                        - Supported formats: JPEG, JPG, PNG, WEBP.

                        - Resolution: width and height must both be at least 300
                        pixels.

                        - Aspect ratio: 1:2.5 to 2.5:1.

                        - File size: up to 20 MB per image.
                      items:
                        type: string
                        format: uri
                      maxItems: 5
                      example:
                        - https://example.com/reference-style.jpg
                    resolution:
                      type: string
                      description: Output video resolution.
                      enum:
                        - 720P
                        - 1080P
                      default: 720P
                      example: 720P
                    region:
                      type: string
                      description: >-
                        Service region. mainland: China Mainland, global:
                        International
                      enum:
                        - mainland
                        - global
                      nullable: true
                      default: null
                      example: global
                    audio_setting:
                      type: string
                      description: >-
                        Audio setting. `auto` processes audio automatically,
                        while `origin` keeps the original audio.
                      enum:
                        - auto
                        - origin
                      default: auto
                      example: auto
                    input_compliance:
                      type: string
                      nullable: true
                      description: >-
                        Optional input compliance check switch. Use `enable` to
                        turn input checks on, `disable` to turn them off, or
                        omit/pass `null` to use the default setting.
                      enum:
                        - disable
                        - enable
                      default: null
                      example: enable
                    output_compliance:
                      type: string
                      nullable: true
                      description: >-
                        Optional output compliance check switch. Use `enable` to
                        turn output checks on, `disable` to turn them off, or
                        omit/pass `null` to use the default setting.
                      enum:
                        - disable
                        - enable
                      default: null
                      example: enable
            example:
              model: happyhorse-1-0-video-edit
              callback_url: https://your-domain.com/api/callback
              input:
                prompt: >-
                  Transform the scene into a snowy mountain trail while
                  preserving the subject motion.
                video_url: https://example.com/input-video.mp4
                img_urls:
                  - https://example.com/reference-style.jpg
                resolution: 720P
                region: global
                audio_setting: auto
                input_compliance: enable
                output_compliance: enable
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          task_id:
                            type: string
                            description: >-
                              Task ID, can be used with Get Task Details
                              endpoint to query task status
                            example: task_12345678
              example:
                code: 200
                message: success
                data:
                  task_id: task_12345678
        '422':
          description: Validation Error
        '500':
          $ref: '#/components/responses/Error'
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          enum:
            - 200
            - 401
            - 402
            - 404
            - 422
            - 429
            - 455
            - 500
            - 501
            - 505
          description: Response status code
        message:
          type: string
          description: Response message, error description when failed
          example: success
  responses:
    Error:
      description: Server Error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        All APIs require authentication via API Key.


        Get API Key:

        1. Visit [API Key Management Page](https://crun.ai/user-api-key) to get
        your API Key


        Usage:

        Add to request header:


        x-api-key: YOUR_API_KEY

````