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

# Create a new motion graphics video generation job

> Creates a new motion graphics generation job. Submit your prompt and desired output formats to queue a video for generation.



## OpenAPI

````yaml POST /videos
openapi: 3.1.0
info:
  version: 1.0.0
  title: Hera.Video API
  description: API for motion graphics video generation
servers:
  - url: https://api.hera.video/v1
security: []
paths:
  /videos:
    post:
      summary: Create a new motion graphics video generation job
      description: >-
        Creates a new motion graphics generation job. Submit your prompt and
        desired output formats to queue a video for generation.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVideoInput'
      responses:
        '200':
          description: Job successfully queued. Returns a job/video ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateVideoOutput'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CreateVideoInput:
      type: object
      properties:
        prompt:
          type: string
          description: >-
            Text prompt describing the motion graphics/video to generate. Be
            specific about subject, style, motion, and colors for best results.
          example: A spinning rainbow wheel.
        reference_image_url:
          type: string
          description: >-
            URL of a single reference image to guide visual style or content.
            Use reference_image_urls instead if you have multiple images.
        reference_image_urls:
          type: array
          items:
            type: string
          maxItems: 5
          description: >-
            Up to 5 reference image URLs to guide visual style or content.
            Preferred over reference_image_url when providing multiple images.
        reference_video_url:
          type: string
          description: Optional URL of a reference video.
        duration_seconds:
          type: number
          description: >-
            Duration (in seconds) for the generated video. Optional. Range:
            1–120. If omitted, default or parent is used.
          maximum: 120
          example: 8
        style_id:
          type: string
          description: Optional ID of a style to use for styling the video.
        brand_kit_id:
          type: string
          description: >-
            [Deprecated] Optional ID of a style to use for styling the video.
            Use `style_id` instead.
          deprecated: true
        parent_video_id:
          type: string
          description: >-
            Video ID or template ID to use as a starting point for this
            generation. Useful for iterations on a previous result or starting
            from a template.
        assets:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - image
                  - video
                  - audio
                  - font
                  - csv
                description: 'Asset type: image, video, audio, font, or csv.'
              url:
                type: string
                description: >-
                  URL of the asset file. Use the POST /files endpoint to upload
                  local files and get a URL.
            required:
              - type
              - url
          description: >-
            Optional array of asset files to include in the video generation.
            Each asset has a type and a URL.
        outputs:
          type: array
          items:
            $ref: '#/components/schemas/ExternalExportConfig'
          maxItems: 10
          description: >-
            Array of output configurations (1–10). Each specifies format,
            aspect_ratio, fps, and resolution. A good default is one entry: {
            format: "mp4", aspect_ratio: "16:9", fps: "30", resolution: "1080p"
            }.
          example:
            - format: mp4
              aspect_ratio: '16:9'
              fps: '30'
              resolution: 1080p
        prompt_sections:
          type: array
          items:
            type: object
            properties:
              text:
                type: string
                description: Copy text for this scene/section.
              ref_images:
                type: array
                items:
                  type: string
                description: >-
                  Filenames (or URLs) of reference images for this section,
                  matched by filename against the request's reference images. A
                  section with ref_images becomes a visual scene.
            required:
              - text
          description: >-
            Optional structured sections describing the video scene-by-scene.
            When provided, routes the request through the preset-launch
            pipeline. Text-only sections become preset scenes; sections with
            ref_images become visual scenes.
      required:
        - prompt
        - outputs
      description: Request body to create a new motion graphics export job.
    CreateVideoOutput:
      type: object
      properties:
        video_id:
          type: string
          description: Unique ID of the job/video that was created.
        project_url:
          type: string
          description: Optional URL to view the project in the user interface.
      required:
        - video_id
      description: Response for a successfully queued video generation job.
    ExternalExportConfig:
      type: object
      properties:
        format:
          $ref: '#/components/schemas/ExternalExportFormatEnum'
        aspect_ratio:
          $ref: '#/components/schemas/ExternalExportAspectRatioEnum'
        fps:
          anyOf:
            - type: string
              enum:
                - '24'
            - type: string
              enum:
                - '25'
            - type: string
              enum:
                - '30'
            - type: string
              enum:
                - '60'
          description: Frames per second for this export output.
        resolution:
          $ref: '#/components/schemas/ExternalExportResolutionEnum'
      required:
        - format
        - aspect_ratio
        - fps
        - resolution
      description: >-
        Configuration for an export output. Defines the file format, aspect
        ratio, frame rate, and resolution.
    ExternalExportFormatEnum:
      type: string
      enum:
        - mp4
        - prores
        - webm
        - gif
      description: Output format for this export (e.g. mp4, prores, webm, gif).
    ExternalExportAspectRatioEnum:
      type: string
      enum:
        - '16:9'
        - '9:16'
        - '1:1'
        - '4:5'
      description: Aspect ratio for this export (e.g. '16:9', '9:16', '1:1', '4:5').
    ExternalExportResolutionEnum:
      type: string
      enum:
        - 360p
        - 480p
        - 720p
        - 1080p
        - 4k
      description: Resolution for this export output (e.g. '1080p', '720p').
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your API key for authenticating requests.

````